This commit is contained in:
Dennis Eichhorn 2024-02-04 20:34:11 +00:00
parent 0d4a89c498
commit b856119c1f
2 changed files with 46 additions and 48 deletions

View File

@ -197,8 +197,10 @@ final class ApiController extends Controller
/** @var \Modules\Admin\Models\Account $account */ /** @var \Modules\Admin\Models\Account $account */
$account = AccountMapper::get()->where('id', $request->header->account)->execute(); $account = AccountMapper::get()->where('id', $request->header->account)->execute();
$collection = null;
if (!empty($uploadedFiles = $request->files)) { if (!empty($uploadedFiles = $request->files)) {
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles( $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
[], [],
[], [],
$uploadedFiles, $uploadedFiles,
@ -207,8 +209,6 @@ final class ApiController extends Controller
$path, $path,
); );
$collection = null;
foreach ($uploaded as $media) { foreach ($uploaded as $media) {
$this->createModelRelation( $this->createModelRelation(
$request->header->account, $request->header->account,
@ -233,13 +233,11 @@ final class ApiController extends Controller
$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) { $collection ??= $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( $accountPath,
$accountPath, $request->header->account,
$request->header->account, __DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/Comments/' . $comment->createdAt->format('Y/m') . '/' . $comment->id
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/Comments/' . $comment->createdAt->format('Y/m') . '/' . $comment->id );
);
}
$this->createModelRelation( $this->createModelRelation(
$request->header->account, $request->header->account,
@ -253,48 +251,43 @@ final class ApiController extends Controller
} }
} }
if (!empty($mediaFiles = $request->getDataJson('media'))) { $mediaFiles = $request->getDataJson('media');
$collection = null; 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,
$comment->id,
$media->id,
CommentMapper::class,
'files',
'',
$request->getOrigin()
);
foreach ($mediaFiles as $file) { $ref = new Reference();
/** @var \Modules\Media\Models\Media $media */ $ref->name = $media->name;
$media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); $ref->source = new NullMedia($media->id);
$this->createModelRelation( $ref->createdBy = new NullAccount($request->header->account);
$request->header->account, $ref->setVirtualPath($path);
$comment->id,
$media->id,
CommentMapper::class,
'files',
'',
$request->getOrigin()
);
$ref = new Reference(); $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin());
$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()); $collection ??= $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$path,
$request->header->account,
__DIR__ . '/../../../Modules/Media/Files' . $path
);
if ($collection === null) { $this->createModelRelation(
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( $request->header->account,
$path, $collection->id,
$request->header->account, $ref->id,
__DIR__ . '/../../../Modules/Media/Files' . $path CollectionMapper::class,
); 'sources',
} '',
$request->getOrigin()
$this->createModelRelation( );
$request->header->account,
$collection->id,
$ref->id,
CollectionMapper::class,
'sources',
'',
$request->getOrigin()
);
}
} }
} }

View File

@ -0,0 +1,5 @@
{
"id": "{id}",
"title": "{title}",
"content": "{content}"
}