validateEditorDocTypeCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $contractType = $this->createEditorDocTypeFromRequest($request); $this->createModel($request->header->account, $contractType, EditorDocTypeMapper::class, 'contract_type', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $contractType); } /** * Method to create EditorDocType from request. * * @param RequestAbstract $request Request * * @return BaseStringL11nType * * @since 1.0.0 */ private function createEditorDocTypeFromRequest(RequestAbstract $request) : BaseStringL11nType { $contractType = new BaseStringL11nType(); $contractType->setL11n( $request->getDataString('title') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); $contractType->title = $request->getDataString('name') ?? ''; return $contractType; } /** * Validate EditorDocType create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEditorDocTypeCreate(RequestAbstract $request) : array { $val = []; if (($val['title'] = !$request->hasData('title')) ) { return $val; } return []; } /** * Api method to create EditorDocType l11n * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiEditorDocTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateEditorDocTypeL11nCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $contractTypeL11n = $this->createEditorDocTypeL11nFromRequest($request); $this->createModel($request->header->account, $contractTypeL11n, EditorDocTypeL11nMapper::class, 'contract_type_l11n', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $contractTypeL11n); } /** * Method to create EditorDocType l11n from request. * * @param RequestAbstract $request Request * * @return BaseStringL11n * * @since 1.0.0 */ private function createEditorDocTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $contractTypeL11n = new BaseStringL11n(); $contractTypeL11n->ref = $request->getDataInt('type') ?? 0; $contractTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; $contractTypeL11n->content = $request->getDataString('title') ?? ''; return $contractTypeL11n; } /** * Validate EditorDocType l11n create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEditorDocTypeL11nCreate(RequestAbstract $request) : array { $val = []; if (($val['title'] = !$request->hasData('title')) || ($val['type'] = !$request->hasData('type')) ) { return $val; } return []; } /** * Api method to update EditorDocType * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiEditorDocTypeUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateEditorDocTypeUpdate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidUpdateResponse($request, $response, $val); return; } /** @var BaseStringL11nType $old */ $old = EditorDocTypeMapper::get()->where('id', (int) $request->getData('id')); $new = $this->updateEditorDocTypeFromRequest($request, clone $old); $this->updateModel($request->header->account, $old, $new, EditorDocTypeMapper::class, 'contract_type', $request->getOrigin()); $this->createStandardUpdateResponse($request, $response, $new); } /** * Method to update EditorDocType from request. * * @param RequestAbstract $request Request * @param BaseStringL11nType $new Model to modify * * @return BaseStringL11nType * * @todo Implement API update function * * @since 1.0.0 */ public function updateEditorDocTypeFromRequest(RequestAbstract $request, BaseStringL11nType $new) : BaseStringL11nType { $new->title = $request->getDataString('name') ?? $new->title; return $new; } /** * Validate EditorDocType update request * * @param RequestAbstract $request Request * * @return array * * @todo Implement API validation function * * @since 1.0.0 */ private function validateEditorDocTypeUpdate(RequestAbstract $request) : array { $val = []; if (($val['id'] = !$request->hasData('id'))) { return $val; } return []; } /** * Api method to delete EditorDocType * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiEditorDocTypeDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateEditorDocTypeDelete($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidDeleteResponse($request, $response, $val); return; } /** @var BaseStringL11nType $contractType */ $contractType = EditorDocTypeMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModel($request->header->account, $contractType, EditorDocTypeMapper::class, 'contract_type', $request->getOrigin()); $this->createStandardDeleteResponse($request, $response, $contractType); } /** * Validate EditorDocType delete request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEditorDocTypeDelete(RequestAbstract $request) : array { $val = []; if (($val['id'] = !$request->hasData('id'))) { return $val; } return []; } /** * Api method to update EditorDocTypeL11n * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiEditorDocTypeL11nUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateEditorDocTypeL11nUpdate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidUpdateResponse($request, $response, $val); return; } /** @var BaseStringL11n $old */ $old = EditorDocTypeL11nMapper::get()->where('id', (int) $request->getData('id')); $new = $this->updateEditorDocTypeL11nFromRequest($request, clone $old); $this->updateModel($request->header->account, $old, $new, EditorDocTypeL11nMapper::class, 'contract_type_l11n', $request->getOrigin()); $this->createStandardUpdateResponse($request, $response, $new); } /** * Method to update EditorDocTypeL11n from request. * * @param RequestAbstract $request Request * @param BaseStringL11n $new Model to modify * * @return BaseStringL11n * * @since 1.0.0 */ public function updateEditorDocTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n { $new->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $new->language; $new->content = $request->getDataString('title') ?? $new->content; return $new; } /** * Validate EditorDocTypeL11n update request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEditorDocTypeL11nUpdate(RequestAbstract $request) : array { $val = []; if (($val['id'] = !$request->hasData('id'))) { return $val; } return []; } /** * Api method to delete EditorDocTypeL11n * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiEditorDocTypeL11nDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateEditorDocTypeL11nDelete($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidDeleteResponse($request, $response, $val); return; } /** @var BaseStringL11n $contractTypeL11n */ $contractTypeL11n = EditorDocTypeL11nMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModel($request->header->account, $contractTypeL11n, EditorDocTypeL11nMapper::class, 'contract_type_l11n', $request->getOrigin()); $this->createStandardDeleteResponse($request, $response, $contractTypeL11n); } /** * Validate EditorDocTypeL11n delete request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEditorDocTypeL11nDelete(RequestAbstract $request) : array { $val = []; if (($val['id'] = !$request->hasData('id'))) { return $val; } return []; } }