fix default respone generation

This commit is contained in:
Dennis Eichhorn 2023-07-26 09:18:05 +00:00
parent 819e680171
commit 8ec5d72aaa

View File

@ -49,10 +49,8 @@ use phpOMS\Localization\ISO639x1Enum;
use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\HttpResponse;
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\System\MimeType; use phpOMS\System\MimeType;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
@ -111,7 +109,7 @@ final class ApiController extends Controller
{ {
/** @var Unit $unit */ /** @var Unit $unit */
$unit = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute(); $unit = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Unit', 'Unit successfully returned.', $unit); $this->createStandardReturnResponse($request, $response, $unit);
} }
/** /**
@ -133,7 +131,7 @@ final class ApiController extends Controller
$old = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute(); $old = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute();
$new = $this->updateUnitFromRequest($request, clone $old); $new = $this->updateUnitFromRequest($request, clone $old);
$this->updateModel($request->header->account, $old, $new, UnitMapper::class, 'unit', $request->getOrigin()); $this->updateModel($request->header->account, $old, $new, UnitMapper::class, 'unit', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Unit', 'Unit successfully updated.', $new); $this->createStandardUpdateResponse($request, $response, $new);
} }
/** /**
@ -176,7 +174,7 @@ final class ApiController extends Controller
/** @var Unit $unit */ /** @var Unit $unit */
$unit = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute(); $unit = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->deleteModel($request->header->account, $unit, UnitMapper::class, 'unit', $request->getOrigin()); $this->deleteModel($request->header->account, $unit, UnitMapper::class, 'unit', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Unit', 'Unit successfully deleted.', $unit); $this->createStandardDeleteResponse($request, $response, $unit);
} }
/** /**
@ -195,8 +193,8 @@ final class ApiController extends Controller
public function apiUnitCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitCreate($request))) { if (!empty($val = $this->validateUnitCreate($request))) {
$response->data['unit_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
@ -233,7 +231,7 @@ final class ApiController extends Controller
$this->createModel($request->header->account, $setting, SettingMapper::class, 'setting', $request->getOrigin()); $this->createModel($request->header->account, $setting, SettingMapper::class, 'setting', $request->getOrigin());
} }
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Unit', 'Unit successfully created.', $unit); $this->createStandardCreateResponse($request, $response, $unit);
} }
/** /**
@ -252,8 +250,8 @@ final class ApiController extends Controller
public function apiUnitMainAddressSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitMainAddressSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitMainAddressSet($request))) { if (!empty($val = $this->validateUnitMainAddressSet($request))) {
$response->data['unit_address_set'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidUpdateResponse($request, $response, $val);
return; return;
} }
@ -274,7 +272,7 @@ final class ApiController extends Controller
$this->updateModel($request->header->account, $oldUnit, $unit, UnitMapper::class, 'unit', $request->getOrigin()); $this->updateModel($request->header->account, $oldUnit, $unit, UnitMapper::class, 'unit', $request->getOrigin());
} }
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Address', 'Address successfully set.', $unit); $this->createStandardUpdateResponse($request, $response, $unit);
} }
/** /**
@ -393,8 +391,8 @@ final class ApiController extends Controller
{ {
$uploadedFiles = $request->files; $uploadedFiles = $request->files;
if (empty($uploadedFiles)) { if (empty($uploadedFiles)) {
$this->fillJsonResponse($request, $response, NotificationLevel::ERROR, 'Unit', 'Invalid unit image', $uploadedFiles);
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidUpdateResponse($request, $response, $uploadedFiles);
return; return;
} }
@ -418,7 +416,7 @@ final class ApiController extends Controller
$unit->image = \reset($uploaded); $unit->image = \reset($uploaded);
$this->updateModel($request->header->account, $old, $unit, UnitMapper::class, 'unit', $request->getOrigin()); $this->updateModel($request->header->account, $old, $unit, UnitMapper::class, 'unit', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Unit', 'Unit image successfully updated', $unit); $this->createStandardUpdateResponse($request, $response, $unit);
} }
/** /**
@ -466,7 +464,7 @@ final class ApiController extends Controller
{ {
/** @var Position $position */ /** @var Position $position */
$position = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute(); $position = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Position', 'Position successfully returned.', $position); $this->createStandardReturnResponse($request, $response, $position);
} }
/** /**
@ -487,7 +485,7 @@ final class ApiController extends Controller
/** @var Position $position */ /** @var Position $position */
$position = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute(); $position = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->deleteModel($request->header->account, $position, PositionMapper::class, 'position', $request->getOrigin()); $this->deleteModel($request->header->account, $position, PositionMapper::class, 'position', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Position', 'Position successfully deleted.', $position); $this->createStandardDeleteResponse($request, $response, $position);
} }
/** /**
@ -509,7 +507,7 @@ final class ApiController extends Controller
$old = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute(); $old = PositionMapper::get()->where('id', (int) $request->getData('id'))->execute();
$new = $this->updatePositionFromRequest($request, clone $old); $new = $this->updatePositionFromRequest($request, clone $old);
$this->updateModel($request->header->account, $old, $new, PositionMapper::class, 'position', $request->getOrigin()); $this->updateModel($request->header->account, $old, $new, PositionMapper::class, 'position', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Position', 'Position successfully updated.', $new); $this->createStandardUpdateResponse($request, $response, $new);
} }
/** /**
@ -553,8 +551,8 @@ final class ApiController extends Controller
public function apiPositionCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiPositionCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validatePositionCreate($request))) { if (!empty($val = $this->validatePositionCreate($request))) {
$response->data['position_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
@ -572,7 +570,7 @@ final class ApiController extends Controller
$this->app->moduleManager->get('Admin')->apiGroupCreate($newRequest, $response, $data); $this->app->moduleManager->get('Admin')->apiGroupCreate($newRequest, $response, $data);
} }
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Position', 'Position successfully created.', $position); $this->createStandardCreateResponse($request, $response, $position);
} }
/** /**
@ -641,7 +639,7 @@ final class ApiController extends Controller
{ {
/** @var Department $department */ /** @var Department $department */
$department = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute(); $department = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Department', 'Department successfully returned.', $department); $this->createStandardReturnResponse($request, $response, $department);
} }
/** /**
@ -663,7 +661,7 @@ final class ApiController extends Controller
$old = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute(); $old = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute();
$new = $this->updateDepartmentFromRequest($request, clone $old); $new = $this->updateDepartmentFromRequest($request, clone $old);
$this->updateModel($request->header->account, $old, $new, DepartmentMapper::class, 'department', $request->getOrigin()); $this->updateModel($request->header->account, $old, $new, DepartmentMapper::class, 'department', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Department', 'Department successfully updated.', $new); $this->createStandardUpdateResponse($request, $response, $new);
} }
/** /**
@ -709,7 +707,7 @@ final class ApiController extends Controller
/** @var Department $department */ /** @var Department $department */
$department = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute(); $department = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->deleteModel($request->header->account, $department, DepartmentMapper::class, 'department', $request->getOrigin()); $this->deleteModel($request->header->account, $department, DepartmentMapper::class, 'department', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Department', 'Department successfully deleted.', $department); $this->createStandardDeleteResponse($request, $response, $department);
} }
/** /**
@ -728,9 +726,8 @@ final class ApiController extends Controller
public function apiDepartmentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiDepartmentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateDepartmentCreate($request))) { if (!empty($val = $this->validateDepartmentCreate($request))) {
$this->fillJsonResponse($request, $response, NotificationLevel::OK, '', 'Invalid form data.', new FormValidation($val));
$response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
@ -748,7 +745,7 @@ final class ApiController extends Controller
$this->app->moduleManager->get('Admin')->apiGroupCreate($newRequest, $response, $data); $this->app->moduleManager->get('Admin')->apiGroupCreate($newRequest, $response, $data);
} }
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Department', 'Department successfully created.', $department); $this->createStandardCreateResponse($request, $response, $department);
} }
/** /**
@ -871,16 +868,15 @@ final class ApiController extends Controller
public function apiUnitAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitAttributeCreate($request))) { if (!empty($val = $this->validateUnitAttributeCreate($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;
} }
$attribute = $this->createUnitAttributeFromRequest($request); $attribute = $this->createUnitAttributeFromRequest($request);
$this->createModel($request->header->account, $attribute, UnitAttributeMapper::class, 'attribute', $request->getOrigin()); $this->createModel($request->header->account, $attribute, UnitAttributeMapper::class, 'attribute', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attribute);
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully created', $attribute);
} }
/** /**
@ -950,15 +946,15 @@ final class ApiController extends Controller
public function apiUnitAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitAttributeTypeL11nCreate($request))) { if (!empty($val = $this->validateUnitAttributeTypeL11nCreate($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->createUnitAttributeTypeL11nFromRequest($request); $attrL11n = $this->createUnitAttributeTypeL11nFromRequest($request);
$this->createModel($request->header->account, $attrL11n, UnitAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin()); $this->createModel($request->header->account, $attrL11n, UnitAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n); $this->createStandardCreateResponse($request, $response, $attrL11n);
} }
/** /**
@ -1019,16 +1015,15 @@ final class ApiController extends Controller
public function apiUnitAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitAttributeTypeCreate($request))) { if (!empty($val = $this->validateUnitAttributeTypeCreate($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->createUnitAttributeTypeFromRequest($request); $attrType = $this->createUnitAttributeTypeFromRequest($request);
$this->createModel($request->header->account, $attrType, UnitAttributeTypeMapper::class, 'attr_type', $request->getOrigin()); $this->createModel($request->header->account, $attrType, UnitAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $attrType);
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute type', 'Attribute type successfully created', $attrType);
} }
/** /**
@ -1045,7 +1040,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);
@ -1090,8 +1085,8 @@ final class ApiController extends Controller
public function apiUnitAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitAttributeValueCreate($request))) { if (!empty($val = $this->validateUnitAttributeValueCreate($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;
} }
@ -1108,7 +1103,7 @@ final class ApiController extends Controller
); );
} }
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute value', 'Attribute value successfully created', $attrValue); $this->createStandardCreateResponse($request, $response, $attrValue);
} }
/** /**
@ -1178,15 +1173,15 @@ final class ApiController extends Controller
public function apiUnitAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiUnitAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateUnitAttributeValueL11nCreate($request))) { if (!empty($val = $this->validateUnitAttributeValueL11nCreate($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->createUnitAttributeValueL11nFromRequest($request); $attrL11n = $this->createUnitAttributeValueL11nFromRequest($request);
$this->createModel($request->header->account, $attrL11n, UnitAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin()); $this->createModel($request->header->account, $attrL11n, UnitAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n); $this->createStandardCreateResponse($request, $response, $attrL11n);
} }
/** /**