diff --git a/Controller/ApiDriverController.php b/Controller/ApiDriverController.php index 300c54c..009f4dc 100644 --- a/Controller/ApiDriverController.php +++ b/Controller/ApiDriverController.php @@ -187,8 +187,10 @@ final class ApiDriverController extends Controller { $path = $this->createDriverDir($driver); + $collection = null; + if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], files: $uploadedFiles, @@ -198,7 +200,6 @@ final class ApiDriverController extends Controller pathSettings: PathSettings::FILE_PATH ); - $collection = null; foreach ($uploaded as $media) { $this->createModelRelation( $request->header->account, @@ -235,54 +236,51 @@ final class ApiDriverController extends Controller } } - if (!empty($mediaFiles = $request->getDataJson('media'))) { - $collection = null; + $mediaFiles = $request->getDataJson('media'); + foreach ($mediaFiles as $file) { + /** @var \Modules\Media\Models\Media $media */ + $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); - foreach ($mediaFiles as $file) { - /** @var \Modules\Media\Models\Media $media */ - $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); + $this->createModelRelation( + $request->header->account, + $driver->id, + $media->id, + DriverMapper::class, + 'files', + '', + $request->getOrigin() + ); - $this->createModelRelation( - $request->header->account, - $driver->id, - $media->id, - DriverMapper::class, - 'files', - '', - $request->getOrigin() - ); + $ref = new Reference(); + $ref->name = $media->name; + $ref->source = new NullMedia($media->id); + $ref->createdBy = new NullAccount($request->header->account); + $ref->setVirtualPath($path); - $ref = new Reference(); - $ref->name = $media->name; - $ref->source = new NullMedia($media->id); - $ref->createdBy = new NullAccount($request->header->account); - $ref->setVirtualPath($path); + $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); - $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); + if ($collection === null) { + /** @var \Modules\Media\Models\Collection $collection */ + $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } + if ($collection->id === 0) { + $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( + $path, + $request->header->account, + __DIR__ . '/../../../Modules/Media/Files' . $path + ); } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $ref->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); } + + $this->createModelRelation( + $request->header->account, + $collection->id, + $ref->id, + CollectionMapper::class, + 'sources', + '', + $request->getOrigin() + ); } } @@ -334,7 +332,7 @@ final class ApiDriverController extends Controller $uploaded = []; if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], files: $uploadedFiles, @@ -395,18 +393,17 @@ final class ApiDriverController extends Controller } } - if (!empty($mediaFiles = $request->getDataJson('media'))) { - foreach ($mediaFiles as $media) { - $this->createModelRelation( - $request->header->account, - $driver->id, - (int) $media, - DriverMapper::class, - 'files', - '', - $request->getOrigin() - ); - } + $mediaFiles = $request->getDataJson('media'); + foreach ($mediaFiles as $media) { + $this->createModelRelation( + $request->header->account, + $driver->id, + (int) $media, + DriverMapper::class, + 'files', + '', + $request->getOrigin() + ); } $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to driver.', [ diff --git a/Controller/ApiVehicleController.php b/Controller/ApiVehicleController.php index 4ea096d..cef09c2 100755 --- a/Controller/ApiVehicleController.php +++ b/Controller/ApiVehicleController.php @@ -562,8 +562,10 @@ final class ApiVehicleController extends Controller { $path = $this->createVehicleDir($vehicle); + $collection = null; + if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], files: $uploadedFiles, @@ -573,7 +575,6 @@ final class ApiVehicleController extends Controller pathSettings: PathSettings::FILE_PATH ); - $collection = null; foreach ($uploaded as $media) { $this->createModelRelation( $request->header->account, @@ -610,54 +611,51 @@ final class ApiVehicleController extends Controller } } - if (!empty($mediaFiles = $request->getDataJson('media'))) { - $collection = null; + $mediaFiles = $request->getDataJson('media'); + foreach ($mediaFiles as $file) { + /** @var \Modules\Media\Models\Media $media */ + $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); - foreach ($mediaFiles as $file) { - /** @var \Modules\Media\Models\Media $media */ - $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); + $this->createModelRelation( + $request->header->account, + $vehicle->id, + $media->id, + VehicleMapper::class, + 'files', + '', + $request->getOrigin() + ); - $this->createModelRelation( - $request->header->account, - $vehicle->id, - $media->id, - VehicleMapper::class, - 'files', - '', - $request->getOrigin() - ); + $ref = new Reference(); + $ref->name = $media->name; + $ref->source = new NullMedia($media->id); + $ref->createdBy = new NullAccount($request->header->account); + $ref->setVirtualPath($path); - $ref = new Reference(); - $ref->name = $media->name; - $ref->source = new NullMedia($media->id); - $ref->createdBy = new NullAccount($request->header->account); - $ref->setVirtualPath($path); + $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); - $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); + if ($collection === null) { + /** @var \Modules\Media\Models\Collection $collection */ + $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } + if ($collection->id === 0) { + $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( + $path, + $request->header->account, + __DIR__ . '/../../../Modules/Media/Files' . $path + ); } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $ref->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); } + + $this->createModelRelation( + $request->header->account, + $collection->id, + $ref->id, + CollectionMapper::class, + 'sources', + '', + $request->getOrigin() + ); } } @@ -710,7 +708,7 @@ final class ApiVehicleController extends Controller $uploaded = []; if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], files: $uploadedFiles, @@ -771,18 +769,17 @@ final class ApiVehicleController extends Controller } } - if (!empty($mediaFiles = $request->getDataJson('media'))) { - foreach ($mediaFiles as $media) { - $this->createModelRelation( - $request->header->account, - $vehicle->id, - (int) $media, - VehicleMapper::class, - 'files', - '', - $request->getOrigin() - ); - } + $mediaFiles = $request->getDataJson('media'); + foreach ($mediaFiles as $media) { + $this->createModelRelation( + $request->header->account, + $vehicle->id, + (int) $media, + VehicleMapper::class, + 'files', + '', + $request->getOrigin() + ); } $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to vehicle.', [ diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 1384607..dcd1e43 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -442,6 +442,8 @@ final class BackendController extends Controller $view->data['inspections'] = $inspections; + // @feature Create a new read mapper function that returns relation models instead of its own model + // https://github.com/Karaka-Management/phpOMS/issues/320 $query = new Builder($this->app->dbPool->get()); $results = $query->selectAs(VehicleMapper::HAS_MANY['files']['external'], 'file') ->from(VehicleMapper::TABLE) @@ -527,6 +529,8 @@ final class BackendController extends Controller ->where('type/l11n/language', $response->header->l11n->language) ->execute(); + // @feature Create a new read mapper function that returns relation models instead of its own model + // https://github.com/Karaka-Management/phpOMS/issues/320 $query = new Builder($this->app->dbPool->get()); $results = $query->selectAs(DriverMapper::HAS_MANY['files']['external'], 'file') ->from(DriverMapper::TABLE)