too many changes

This commit is contained in:
Dennis Eichhorn 2023-03-11 23:38:18 +01:00
parent 0e8c3a12cf
commit a0947f2d42
8 changed files with 43 additions and 28 deletions

View File

@ -166,7 +166,27 @@ final class Installer extends InstallerAbstract
*/ */
private static function createReference(ApplicationAbstract $app, array $data) : array private static function createReference(ApplicationAbstract $app, array $data) : array
{ {
return []; /** @var \Modules\Media\Controller\ApiController $module */
$module = $app->moduleManager->getModuleInstance('Media');
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', $data['name'] ?? '');
$request->setData('virtualpath', $data['from'] ?? '/');
$request->setData('child', $data['to'] ?? '/');
$module->apiReferenceCreate($request, $response);
$responseData = $response->get('');
if (!\is_array($responseData)) {
return [];
}
return !\is_array($responseData['response'])
? $responseData['response']->toArray()
: $responseData['response'];
} }
/** /**
@ -349,15 +369,6 @@ final class Installer extends InstallerAbstract
$request->setData('media-list', \json_encode($uploadedIds)); $request->setData('media-list', \json_encode($uploadedIds));
$module->apiCollectionCreate($request, $response); $module->apiCollectionCreate($request, $response);
$responseData = $response->get('');
if (!\is_array($responseData)) {
return [];
}
return !\is_array($responseData['response'])
? $responseData['response']->toArray()
: $responseData['response'];
} }
$responseData = $response->get(''); $responseData = $response->get('');

View File

@ -634,13 +634,22 @@ final class ApiController extends Controller
if ($parentCollectionId === 0) { if ($parentCollectionId === 0) {
/** @var Collection $parentCollection */ /** @var Collection $parentCollection */
$parentCollection = CollectionMapper::get() $parentCollection = CollectionMapper::get()
->where('virtualPath', (string) ($request->getData('virtualpath') ?? '')) ->where('virtualPath', \dirname($request->getData('virtualpath') ?? ''))
->where('name', (string) ($request->getData('name') ?? '')) ->where('name', \basename($request->getData('virtualpath') ?? ''))
->execute(); ->execute();
$parentCollectionId = $parentCollection->getId(); $parentCollectionId = $parentCollection->getId();
} }
if (!$request->hasData('source')) {
$child = MediaMapper::get()
->where('virtualPath', \dirname($request->getData('child')))
->where('name', \basename($request->getData('child')))
->execute();
$request->setData('source', $child->getId());
}
$this->createModelRelation( $this->createModelRelation(
$request->header->account, $request->header->account,
$parentCollectionId, $parentCollectionId,
@ -666,10 +675,10 @@ final class ApiController extends Controller
private function createReferenceFromRequest(RequestAbstract $request) : Reference private function createReferenceFromRequest(RequestAbstract $request) : Reference
{ {
$mediaReference = new Reference(); $mediaReference = new Reference();
$mediaReference->name = (string) $request->getData('name'); $mediaReference->name = \basename($request->getData('virtualpath'));
$mediaReference->source = new NullMedia((int) $request->getData('source')); $mediaReference->source = new NullMedia((int) $request->getData('source'));
$mediaReference->createdBy = new NullAccount($request->header->account); $mediaReference->createdBy = new NullAccount($request->header->account);
$mediaReference->setVirtualPath($request->getData('virtualpath')); $mediaReference->setVirtualPath(\dirname($request->getData('virtualpath')));
return $mediaReference; return $mediaReference;
} }
@ -686,9 +695,8 @@ final class ApiController extends Controller
private function validateReferenceCreate(RequestAbstract $request) : array private function validateReferenceCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['name'] = empty($request->getData('name'))) if (($val['parent'] = (empty($request->getData('parent')) && empty($request->getData('virtualpath'))))
|| ($val['virtualpath'] = empty($request->getData('virtualpath'))) || ($val['source'] = (empty($request->getData('source')) && empty($request->getData('child'))))
|| ($val['source'] = empty($request->getData('source')))
) { ) {
return $val; return $val;
} }
@ -1328,7 +1336,7 @@ final class ApiController extends Controller
$l11nMediaType = $this->createMediaTypeL11nFromRequest($request); $l11nMediaType = $this->createMediaTypeL11nFromRequest($request);
$this->createModel($request->header->account, $l11nMediaType, MediaTypeL11nMapper::class, 'media_type_l11n', $request->getOrigin()); $this->createModel($request->header->account, $l11nMediaType, MediaTypeL11nMapper::class, 'media_type_l11n', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Category localization successfully created', $l11nMediaType); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $l11nMediaType);
} }
/** /**

View File

@ -59,5 +59,5 @@ class MediaContentMapper extends DataMapperFactory
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
public const PRIMARYFIELD ='media_parsed_id'; public const PRIMARYFIELD = 'media_parsed_id';
} }

View File

@ -79,10 +79,6 @@ class MediaMapper extends DataMapperFactory
* @since 1.0.0 * @since 1.0.0
*/ */
public const OWNS_ONE = [ public const OWNS_ONE = [
'type' => [
'mapper' => MediaTypeMapper::class,
'external' => 'media_type',
],
'source' => [ 'source' => [
'mapper' => self::class, 'mapper' => self::class,
'external' => 'media_source', 'external' => 'media_source',
@ -144,7 +140,7 @@ class MediaMapper extends DataMapperFactory
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
public const PRIMARYFIELD ='media_id'; public const PRIMARYFIELD = 'media_id';
/** /**
* Get media based on virtual path. * Get media based on virtual path.

View File

@ -54,7 +54,7 @@ final class MediaTypeL11nMapper extends DataMapperFactory
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
public const PRIMARYFIELD ='media_type_l11n_id'; public const PRIMARYFIELD = 'media_type_l11n_id';
/** /**
* Model to use by the mapper. * Model to use by the mapper.

View File

@ -76,5 +76,5 @@ final class MediaTypeMapper extends DataMapperFactory
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
public const PRIMARYFIELD ='media_type_id'; public const PRIMARYFIELD = 'media_type_id';
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "karaka/module", "name": "karaka/module",
"description": "Module for Karaka.", "description": "Module for Jingga.",
"authors": [ "authors": [
{ {
"name": "Dennis Eichhorn", "name": "Dennis Eichhorn",

View File

@ -11,7 +11,7 @@
"phpOMS-db": "1.0.0" "phpOMS-db": "1.0.0"
}, },
"creator": { "creator": {
"name": "Karaka", "name": "Jingga",
"website": "jingga.app" "website": "jingga.app"
}, },
"description": "The media module.", "description": "The media module.",