fix tests

This commit is contained in:
Dennis Eichhorn 2023-09-29 02:38:02 +00:00
parent 2a2ab6548f
commit 5a8c50a304
2 changed files with 18 additions and 227 deletions

View File

@ -50,6 +50,8 @@ use phpOMS\Message\ResponseAbstract;
*/ */
final class ApiController extends Controller final class ApiController extends Controller
{ {
use \Modules\Attribute\Controller\ApiAttributeTraitController;
/** /**
* Api method to create news article * Api method to create news article
* *
@ -280,59 +282,18 @@ final class ApiController extends Controller
*/ */
public function apiSupplierAttributeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiSupplierAttributeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateSupplierAttributeCreate($request))) { if (!empty($val = $this->validateAttributeCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val); $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$attribute = $this->createSupplierAttributeFromRequest($request); $attribute = $this->createAttributeFromRequest($request);
$this->createModel($request->header->account, $attribute, SupplierAttributeMapper::class, 'attribute', $request->getOrigin()); $this->createModel($request->header->account, $attribute, SupplierAttributeMapper::class, 'attribute', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attribute); $this->createStandardCreateResponse($request, $response, $attribute);
} }
/**
* Method to create supplier attribute from request.
*
* @param RequestAbstract $request Request
*
* @return Attribute
*
* @since 1.0.0
*/
private function createSupplierAttributeFromRequest(RequestAbstract $request) : Attribute
{
$attribute = new Attribute();
$attribute->ref = (int) $request->getData('supplier');
$attribute->type = new NullAttributeType((int) $request->getData('type'));
$attribute->value = new NullAttributeValue((int) $request->getData('value'));
return $attribute;
}
/**
* Validate supplier attribute create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateSupplierAttributeCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['type'] = !$request->hasData('type'))
|| ($val['value'] = !$request->hasData('value'))
|| ($val['supplier'] = !$request->hasData('supplier'))
) {
return $val;
}
return [];
}
/** /**
* Api method to create supplier attribute l11n * Api method to create supplier attribute l11n
* *
@ -348,60 +309,18 @@ final class ApiController extends Controller
*/ */
public function apiSupplierAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiSupplierAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateSupplierAttributeTypeL11nCreate($request))) { if (!empty($val = $this->validateAttributeTypeL11nCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val); $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$attrL11n = $this->createSupplierAttributeTypeL11nFromRequest($request); $attrL11n = $this->createAttributeTypeL11nFromRequest($request);
$this->createModel($request->header->account, $attrL11n, SupplierAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin()); $this->createModel($request->header->account, $attrL11n, SupplierAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attrL11n); $this->createStandardCreateResponse($request, $response, $attrL11n);
} }
/**
* Method to create supplier attribute l11n from request.
*
* @param RequestAbstract $request Request
*
* @return BaseStringL11n
*
* @since 1.0.0
*/
private function createSupplierAttributeTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{
$attrL11n = new BaseStringL11n();
$attrL11n->ref = $request->getDataInt('type') ?? 0;
$attrL11n->setLanguage(
$request->getDataString('language') ?? $request->header->l11n->language
);
$attrL11n->content = $request->getDataString('title') ?? '';
return $attrL11n;
}
/**
* Validate supplier attribute l11n create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateSupplierAttributeTypeL11nCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['title'] = !$request->hasData('title'))
|| ($val['type'] = !$request->hasData('type'))
) {
return $val;
}
return [];
}
/** /**
* Api method to create supplier attribute type * Api method to create supplier attribute type
* *
@ -417,61 +336,18 @@ final class ApiController extends Controller
*/ */
public function apiSupplierAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiSupplierAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateSupplierAttributeTypeCreate($request))) { if (!empty($val = $this->validateAttributeTypeCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val); $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$attrType = $this->createSupplierAttributeTypeFromRequest($request); $attrType = $this->createAttributeTypeFromRequest($request);
$this->createModel($request->header->account, $attrType, SupplierAttributeTypeMapper::class, 'attr_type', $request->getOrigin()); $this->createModel($request->header->account, $attrType, SupplierAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attrType); $this->createStandardCreateResponse($request, $response, $attrType);
} }
/**
* Method to create supplier attribute from request.
*
* @param RequestAbstract $request Request
*
* @return AttributeType
*
* @since 1.0.0
*/
private function createSupplierAttributeTypeFromRequest(RequestAbstract $request) : AttributeType
{
$attrType = new AttributeType($request->getDataString('name') ?? '');
$attrType->datatype = $request->getDataInt('datatype') ?? 0;
$attrType->custom = $request->getDataBool('custom') ?? false;
$attrType->isRequired = $request->getDataBool('is_required') ?? false;
$attrType->validationPattern = $request->getDataString('validation_pattern') ?? '';
$attrType->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
$attrType->setFields($request->getDataInt('fields') ?? 0);
return $attrType;
}
/**
* Validate supplier attribute create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateSupplierAttributeTypeCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['title'] = !$request->hasData('title'))
|| ($val['name'] = !$request->hasData('name'))
) {
return $val;
}
return [];
}
/** /**
* Api method to create supplier attribute value * Api method to create supplier attribute value
* *
@ -487,14 +363,19 @@ final class ApiController extends Controller
*/ */
public function apiSupplierAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiSupplierAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateSupplierAttributeValueCreate($request))) { if (!empty($val = $this->validateAttributeValueCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val); $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$attrValue = $this->createSupplierAttributeValueFromRequest($request); /** @var \Modules\Attribute\Models\AttributeType $type */
$type = SupplierAttributeTypeMapper::get()
->where('id', $request->getDataInt('type') ?? 0)
->execute();
$attrValue = $this->createAttributeValueFromRequest($request, $type);
$this->createModel($request->header->account, $attrValue, SupplierAttributeValueMapper::class, 'attr_value', $request->getOrigin()); $this->createModel($request->header->account, $attrValue, SupplierAttributeValueMapper::class, 'attr_value', $request->getOrigin());
if ($attrValue->isDefault) { if ($attrValue->isDefault) {
@ -509,54 +390,6 @@ final class ApiController extends Controller
$this->createStandardCreateResponse($request, $response, $attrValue); $this->createStandardCreateResponse($request, $response, $attrValue);
} }
/**
* Method to create supplier attribute value from request.
*
* @param RequestAbstract $request Request
*
* @return AttributeValue
*
* @since 1.0.0
*/
private function createSupplierAttributeValueFromRequest(RequestAbstract $request) : AttributeValue
{
/** @var AttributeType $type */
$type = SupplierAttributeTypeMapper::get()
->where('id', $request->getDataInt('type') ?? 0)
->execute();
$attrValue = new AttributeValue();
$attrValue->isDefault = $request->getDataBool('default') ?? false;
$attrValue->setValue($request->getData('value'), $type->datatype);
if ($request->hasData('title')) {
$attrValue->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
}
return $attrValue;
}
/**
* Validate supplier attribute value create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateSupplierAttributeValueCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['type'] = !$request->hasData('type'))
|| ($val['value'] = !$request->hasData('value'))
) {
return $val;
}
return [];
}
/** /**
* Api method to create item attribute l11n * Api method to create item attribute l11n
* *
@ -572,60 +405,18 @@ final class ApiController extends Controller
*/ */
public function apiSupplierAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiSupplierAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateSupplierAttributeValueL11nCreate($request))) { if (!empty($val = $this->validateAttributeValueL11nCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val); $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$attrL11n = $this->createSupplierAttributeValueL11nFromRequest($request); $attrL11n = $this->createAttributeValueL11nFromRequest($request);
$this->createModel($request->header->account, $attrL11n, SupplierAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin()); $this->createModel($request->header->account, $attrL11n, SupplierAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attrL11n); $this->createStandardCreateResponse($request, $response, $attrL11n);
} }
/**
* Method to create Supplier attribute l11n from request.
*
* @param RequestAbstract $request Request
*
* @return BaseStringL11n
*
* @since 1.0.0
*/
private function createSupplierAttributeValueL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{
$attrL11n = new BaseStringL11n();
$attrL11n->ref = $request->getDataInt('value') ?? 0;
$attrL11n->setLanguage(
$request->getDataString('language') ?? $request->header->l11n->language
);
$attrL11n->content = $request->getDataString('title') ?? '';
return $attrL11n;
}
/**
* Validate Supplier attribute l11n create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateSupplierAttributeValueL11nCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['title'] = !$request->hasData('title'))
|| ($val['value'] = !$request->hasData('value'))
) {
return $val;
}
return [];
}
/** /**
* Api method to create supplier files * Api method to create supplier files
* *

View File

@ -146,7 +146,7 @@ trait ApiControllerAttributeTrait
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest(new HttpUri(''));
$request->header->account = 1; $request->header->account = 1;
$request->setData('supplier', '1'); $request->setData('ref', '1');
$request->setData('value', '1'); $request->setData('value', '1');
$request->setData('type', '1'); $request->setData('type', '1');