From a9ee9a5f32238629cefff9c4e7d3b961629e56df Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 10 Feb 2023 18:20:57 +0100 Subject: [PATCH] many small fixes --- Controller/ApiController.php | 57 +++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/Controller/ApiController.php b/Controller/ApiController.php index ccf349e..eb7f772 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -121,12 +121,20 @@ final class ApiController extends Controller ); $collection = null; - foreach ($uploaded as $media) { - MediaMapper::create()->execute($media); - WikiDocMapper::writer()->createRelationTable('media', [$media->getId()], $doc->getId()); + $this->createModelRelation( + $request->header->account, + $doc->getId(), + $media->getId(), + WikiDocMapper::class, + 'media', + '', + $request->getOrigin() + ); - $accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login . '/Knowledgebase/' . ($doc->category?->getId() ?? '0') . '/' . $doc->getId(); + $accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login + . '/Knowledgebase/' . ($doc->category?->getId() ?? '0') + . '/' . $doc->getId(); $ref = new Reference(); $ref->name = $media->name; @@ -134,7 +142,7 @@ final class ApiController extends Controller $ref->createdBy = new NullAccount($request->header->account); $ref->setVirtualPath($accountPath); - ReferenceMapper::create()->execute($ref); + $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); if ($collection === null) { $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( @@ -144,22 +152,41 @@ final class ApiController extends Controller ); } - CollectionMapper::writer()->createRelationTable('sources', [$ref->getId()], $collection->getId()); + $this->createModelRelation( + $request->header->account, + $collection->getId(), + $ref->getId(), + CollectionMapper::class, + 'sources', + '', + $request->getOrigin() + ); } } if (!empty($mediaFiles = $request->getDataJson('media'))) { $collection = null; - foreach ($mediaFiles as $media) { - WikiDocMapper::writer()->createRelationTable('media', [(int) $media], $doc->getId()); + 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, + $doc->getId(), + $media->getId(), + WikiDocMapper::class, + 'media', + '', + $request->getOrigin() + ); $ref = new Reference(); - $ref->source = new NullMedia((int) $media); + $ref->name = $media->name; + $ref->source = new NullMedia($media->getId()); $ref->createdBy = new NullAccount($request->header->account); $ref->setVirtualPath($path); - ReferenceMapper::create()->execute($ref); + $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); if ($collection === null) { $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( @@ -169,7 +196,15 @@ final class ApiController extends Controller ); } - CollectionMapper::writer()->createRelationTable('sources', [$ref->getId()], $collection->getId()); + $this->createModelRelation( + $request->header->account, + $collection->getId(), + $ref->getId(), + CollectionMapper::class, + 'sources', + '', + $request->getOrigin() + ); } } }