summaryrefslogtreecommitdiff
path: root/src/Http/Controllers/ScormPlayerController.php
diff options
context:
space:
mode:
authorSam Light <samlight1994@gmail.com>2022-09-09 15:28:41 +0100
committerSam Light <samlight1994@gmail.com>2022-09-09 15:28:41 +0100
commit157d77625644a97742f6953df6a42476c5387e2c (patch)
treea66cd826b013006e55b0d96f98546b848ef0858a /src/Http/Controllers/ScormPlayerController.php
parent615ae1005ace5c2645c7f6aa53045619fcbd1499 (diff)
Moved controller out of http folder. No need to nest!
Diffstat (limited to 'src/Http/Controllers/ScormPlayerController.php')
-rw-r--r--src/Http/Controllers/ScormPlayerController.php121
1 files changed, 0 insertions, 121 deletions
diff --git a/src/Http/Controllers/ScormPlayerController.php b/src/Http/Controllers/ScormPlayerController.php
deleted file mode 100644
index 179e78f..0000000
--- a/src/Http/Controllers/ScormPlayerController.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-namespace Lightscale\ScormPlayer\Http\Controllers;
-
-use Lightscale\ScormPlayer\Models\{
- Scorm,
- ScormSco,
- ScormScoTracking,
-};
-
-use Illuminate\Routing\Controller;
-use Illuminate\Support\Facades\Storage;
-use Illuminate\Support\Facades\File;
-use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Str;
-use Illuminate\Http\Request;
-use Illuminate\Http\Testing\MimeType;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-
-
-class ScormPlayerController extends Controller
-{
-
- private const JS_PATH = __DIR__ . '/../../../dist/js/scorm_player.js';
-
- public function player(Request $request, Scorm $module)
- {
- $sco = $request->query('sco');
- $sco = $module->scos()->findOrFail($sco);
-
- $route_data = ['sco' => $sco];
- $scorm_api_data = [
- 'routes' => [
- 'load' => route('scorm-player.scorm.load', $route_data),
- ],
- ];
-
- $js_uri = route('scorm-player.javascript', [
- 'version' => substr(md5(filemtime(self::JS_PATH)), 10, 8)
- ]);
-
- return view('scorm-player::player', compact(
- 'sco',
- 'scorm_api_data',
- 'js_uri'
- ));
- }
-
- public function serveModule(string $uuid, string $path)
- {
- $path = Storage::disk(config('scorm.disk'))->path("{$uuid}/{$path}");
- $mime = MimeType::from($path);
-
- try {
- return response()->file($path, [
- 'content-type' => $mime,
- ]);
- }
- catch(FileNotFoundException $e) {
- abort(404);
- }
- }
-
- public function scormLoad(ScormSco $sco)
- {
- $user = Auth::user();
-
- $tracking = ScormScoTracking::where([
- 'sco_id' => $sco->id,
- 'user_id' => $user->id,
- ])->first();
-
- if(!$tracking) {
- $tracking = new ScormScoTracking([
- 'uuid' => Str::uuid(),
- 'progression' => 0,
- ]);
- $tracking->user()->associate($user);
- $tracking->sco_id = $sco->id;
- $tracking->save();
- }
-
- $commit_url = route('scorm-player.scorm.commit', [
- 'tracking' => $tracking->id,
- ]);
-
- $scorm_entry = route('scorm-player.serve', [
- 'uuid' => $sco->scorm->uuid,
- 'path' => $sco->entry_url,
- ]);
-
- return [
- 'tracking_id' => $tracking->id,
- 'tracking' => $tracking->getCMIData(),
- 'entry_url' => $scorm_entry,
- 'commit_url' => $commit_url,
- ];
- }
-
- public function scormCommit(Request $request, ScormScoTracking $tracking)
- {
- $data = $request->all();
-
- $tracking->setCMIData($data);
-
- return [
- 'result' => true,
- ];
- }
-
- public function jsSource(Request $request)
- {
- return response()->file(self::JS_PATH, [
- 'Content-Type' => 'application/javascript',
- //'Cache-Control' => $cacheControl,
- //'ETag' => $etag,
- ]);
- }
-
-}