mirror of
https://github.com/Karaka-Management/oms-Attribute.git
synced 2026-02-14 16:38:41 +00:00
fix default respone generation
This commit is contained in:
parent
03bdf66747
commit
d5a48d2837
|
|
@ -24,7 +24,7 @@ use phpOMS\Localization\BaseStringL11n;
|
||||||
use phpOMS\Localization\ISO639x1Enum;
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
|
||||||
trait ApiTraitController
|
trait ApiAttributeTraitController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Method to create item attribute from request.
|
* Method to create item attribute from request.
|
||||||
|
|
@ -27,7 +27,6 @@ use Modules\Attribute\Models\NullAttributeValue;
|
||||||
use phpOMS\Localization\BaseStringL11n;
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
use phpOMS\Localization\ISO639x1Enum;
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
use phpOMS\Message\Http\RequestStatusCode;
|
use phpOMS\Message\Http\RequestStatusCode;
|
||||||
use phpOMS\Message\NotificationLevel;
|
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
use phpOMS\Message\ResponseAbstract;
|
use phpOMS\Message\ResponseAbstract;
|
||||||
use phpOMS\Model\Message\FormValidation;
|
use phpOMS\Model\Message\FormValidation;
|
||||||
|
|
@ -58,8 +57,8 @@ final class ApiController extends Controller
|
||||||
public function apiAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
if (!empty($val = $this->validateAttributeCreate($request))) {
|
if (!empty($val = $this->validateAttributeCreate($request))) {
|
||||||
$response->data['attribute_create'] = new FormValidation($val);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -67,7 +66,8 @@ final class ApiController extends Controller
|
||||||
$attribute = $this->createAttributeFromRequest($request);
|
$attribute = $this->createAttributeFromRequest($request);
|
||||||
$this->createModel($request->header->account, $attribute, AttributeMapper::class, 'attribute', $request->getOrigin());
|
$this->createModel($request->header->account, $attribute, AttributeMapper::class, 'attribute', $request->getOrigin());
|
||||||
|
|
||||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully created', $attribute);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -137,15 +137,15 @@ final class ApiController extends Controller
|
||||||
public function apiAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
if (!empty($val = $this->validateAttributeTypeL11nCreate($request))) {
|
if (!empty($val = $this->validateAttributeTypeL11nCreate($request))) {
|
||||||
$response->data['attr_type_l11n_create'] = new FormValidation($val);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attrL11n = $this->createAttributeTypeL11nFromRequest($request);
|
$attrL11n = $this->createAttributeTypeL11nFromRequest($request);
|
||||||
$this->createModel($request->header->account, $attrL11n, AttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
$this->createModel($request->header->account, $attrL11n, AttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
||||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -206,16 +206,15 @@ final class ApiController extends Controller
|
||||||
public function apiAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
if (!empty($val = $this->validateAttributeTypeCreate($request))) {
|
if (!empty($val = $this->validateAttributeTypeCreate($request))) {
|
||||||
$response->data['attr_type_create'] = new FormValidation($val);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attrType = $this->createAttributeTypeFromRequest($request);
|
$attrType = $this->createAttributeTypeFromRequest($request);
|
||||||
$this->createModel($request->header->account, $attrType, AttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
$this->createModel($request->header->account, $attrType, AttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attrType);
|
||||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute type', 'Attribute type successfully created', $attrType);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -232,7 +231,7 @@ final class ApiController extends Controller
|
||||||
$attrType = new AttributeType($request->getDataString('name') ?? '');
|
$attrType = new AttributeType($request->getDataString('name') ?? '');
|
||||||
$attrType->datatype = $request->getDataInt('datatype') ?? 0;
|
$attrType->datatype = $request->getDataInt('datatype') ?? 0;
|
||||||
$attrType->custom = $request->getDataBool('custom') ?? false;
|
$attrType->custom = $request->getDataBool('custom') ?? false;
|
||||||
$attrType->isRequired = (bool) ($request->getData('is_required') ?? false);
|
$attrType->isRequired = $request->getDataBool('is_required') ?? false;
|
||||||
$attrType->validationPattern = $request->getDataString('validation_pattern') ?? '';
|
$attrType->validationPattern = $request->getDataString('validation_pattern') ?? '';
|
||||||
$attrType->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
$attrType->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
||||||
$attrType->setFields($request->getDataInt('fields') ?? 0);
|
$attrType->setFields($request->getDataInt('fields') ?? 0);
|
||||||
|
|
@ -277,8 +276,8 @@ final class ApiController extends Controller
|
||||||
public function apiAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
if (!empty($val = $this->validateAttributeValueCreate($request))) {
|
if (!empty($val = $this->validateAttributeValueCreate($request))) {
|
||||||
$response->data['attr_value_create'] = new FormValidation($val);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -295,7 +294,7 @@ final class ApiController extends Controller
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute value', 'Attribute value successfully created', $attrValue);
|
$this->createStandardCreateResponse($request, $response, $attrValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -362,15 +361,15 @@ final class ApiController extends Controller
|
||||||
public function apiAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
if (!empty($val = $this->validateAttributeValueL11nCreate($request))) {
|
if (!empty($val = $this->validateAttributeValueL11nCreate($request))) {
|
||||||
$response->data['attr_value_l11n_create'] = new FormValidation($val);
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||||
$this->createModel($request->header->account, $attrL11n, AttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
$this->createModel($request->header->account, $attrL11n, AttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
183
Controller/ApiLocalizationTraitController.php
Normal file
183
Controller/ApiLocalizationTraitController.php
Normal file
|
|
@ -0,0 +1,183 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Jingga
|
||||||
|
*
|
||||||
|
* PHP Version 8.1
|
||||||
|
*
|
||||||
|
* @package Modules\
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Attribute\Controller;
|
||||||
|
|
||||||
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
|
use phpOMS\Localization\BaseStringL11nType;
|
||||||
|
use phpOMS\Localization\NullBaseStringL11nType;
|
||||||
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
|
||||||
|
trait ApiLocalizationTraitController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Method to create l11n from request.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return BaseStringL11n
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function createL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||||
|
{
|
||||||
|
$l11n = new BaseStringL11n();
|
||||||
|
$l11n->ref = $request->getDataInt('ref') ?? 0;
|
||||||
|
$l11n->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0);
|
||||||
|
$l11n->setLanguage(
|
||||||
|
$request->getDataString('language') ?? $request->header->l11n->language
|
||||||
|
);
|
||||||
|
$l11n->content = $request->getDataString('content') ?? '';
|
||||||
|
|
||||||
|
return $l11n;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate l11n create request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateL11nCreate(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['ref'] = !$request->hasData('ref'))
|
||||||
|
|| ($val['type'] = !$request->hasData('type'))
|
||||||
|
|| ($val['content'] = !$request->hasData('content'))
|
||||||
|
) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to update L11n from request.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param BaseStringL11n $new Model to modify
|
||||||
|
*
|
||||||
|
* @return BaseStringL11n
|
||||||
|
*
|
||||||
|
* @todo: consider to move all these FromRequest functions to the attribute module since they are the same in every module!
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function updateL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n
|
||||||
|
{
|
||||||
|
$new->setLanguage(
|
||||||
|
$request->getDataString('language') ?? $new->language
|
||||||
|
);
|
||||||
|
$new->content = $request->getDataString('content') ?? $new->content;
|
||||||
|
|
||||||
|
return $new;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate L11n update request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @todo: implement
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateL11nUpdate(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['id'] = !$request->hasData('id'))) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to create l11n type from request.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return BaseStringL11nType
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function createL11nTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
|
||||||
|
{
|
||||||
|
$l11nType = new BaseStringL11nType();
|
||||||
|
$l11nType->title = $request->getDataString('title') ?? '';
|
||||||
|
$l11nType->isRequired = $request->getDataBool('is_required') ?? false;
|
||||||
|
|
||||||
|
return $l11nType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate l11n type create request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateL11nTypeCreate(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['title'] = !$request->hasData('title'))) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to update l11n type from request.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return BaseStringL11nType
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function updateL11nTypeFromRequest(RequestAbstract $request, BaseStringL11nType $new) : BaseStringL11nType
|
||||||
|
{
|
||||||
|
$new->title = $request->getDataString('title') ?? $new->title;
|
||||||
|
$new->isRequired = $request->getDataBool('is_required') ?? $new->isRequired;
|
||||||
|
|
||||||
|
return $new;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate l11n type update request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateL11nTypeUpdate(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['id'] = !$request->hasData('id'))) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,121 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Karaka
|
|
||||||
*
|
|
||||||
* PHP Version 8.1
|
|
||||||
*
|
|
||||||
* @package Modules\Attribute\Models
|
|
||||||
* @copyright Dennis Eichhorn
|
|
||||||
* @license OMS License 2.0
|
|
||||||
* @version 1.0.0
|
|
||||||
* @link https://jingga.app
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace Modules\Attribute\Models;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute class.
|
|
||||||
*
|
|
||||||
* @package Modules\Attribute\Models
|
|
||||||
* @license OMS License 2.0
|
|
||||||
* @link https://jingga.app
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
class Attribute implements \JsonSerializable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Id.
|
|
||||||
*
|
|
||||||
* @var int
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public int $id = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* this attribute belongs to
|
|
||||||
*
|
|
||||||
* @var int
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public int $ref = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute type the attribute belongs to.
|
|
||||||
*
|
|
||||||
* @var AttributeType
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public AttributeType $type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute value the attribute belongs to.
|
|
||||||
*
|
|
||||||
* @var AttributeValue
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public AttributeValue $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->type = new NullAttributeType();
|
|
||||||
$this->value = new NullAttributeValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a deep clone of the object.
|
|
||||||
*
|
|
||||||
* @return self
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function deepClone() : self
|
|
||||||
{
|
|
||||||
$clone = clone $this;
|
|
||||||
$clone->value = clone $this->value;
|
|
||||||
|
|
||||||
return $clone;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the id of the attribute.
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function getId() : int
|
|
||||||
{
|
|
||||||
return $this->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the attribute to an array.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function toArray() : array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $this->id,
|
|
||||||
'ref' => $this->ref,
|
|
||||||
'type' => $this->type,
|
|
||||||
'value' => $this->value,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function jsonSerialize() : mixed
|
|
||||||
{
|
|
||||||
return $this->toArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user