Switch to BaseStringL11nType

This commit is contained in:
Dennis Eichhorn 2023-05-30 02:05:40 +02:00
parent 44abf6044d
commit 28f9162c10
4 changed files with 159 additions and 3 deletions

View File

@ -22,6 +22,8 @@ use Modules\Attribute\Models\NullAttributeType;
use Modules\Attribute\Models\NullAttributeValue;
use Modules\FleetManagement\Models\FuelTypeL11nMapper;
use Modules\FleetManagement\Models\FuelTypeMapper;
use Modules\FleetManagement\Models\InspectionTypeL11nMapper;
use Modules\FleetManagement\Models\InspectionTypeMapper;
use Modules\FleetManagement\Models\Vehicle;
use Modules\FleetManagement\Models\VehicleAttributeMapper;
use Modules\FleetManagement\Models\VehicleAttributeTypeL11nMapper;
@ -1177,4 +1179,148 @@ final class ApiController extends Controller
return [];
}
/**
* Api method to create a vehicle
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiInspectionTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{
if (!empty($val = $this->validateInspectionTypeCreate($request))) {
$response->set($request->uri->__toString(), new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
/** @var BaseStringL11nType $vehicle */
$vehicle = $this->createInspectionTypeFromRequest($request);
$this->createModel($request->header->account, $vehicle, InspectionTypeMapper::class, 'inspection_type', $request->getOrigin());
$this->fillJsonResponse(
$request,
$response,
NotificationLevel::OK,
'',
$this->app->l11nManager->getText($response->getLanguage(), '0', '0', 'SucessfulCreate'),
$vehicle
);
}
/**
* Method to create vehicle from request.
*
* @param RequestAbstract $request Request
*
* @return BaseStringL11nType Returns the created vehicle from the request
*
* @since 1.0.0
*/
public function createInspectionTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
{
$type = new BaseStringL11nType();
$type->title = $request->getDataString('name') ?? '';
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
return $type;
}
/**
* Validate vehicle create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateInspectionTypeCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = !$request->hasData('name'))
|| ($val['title'] = !$request->hasData('title'))
) {
return $val;
}
return [];
}
/**
* Api method to create vehicle attribute l11n
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiInspectionTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{
if (!empty($val = $this->validateInspectionTypeL11nCreate($request))) {
$response->set('inspection_type_l11n_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
$typeL11n = $this->createInspectionTypeL11nFromRequest($request);
$this->createModel($request->header->account, $typeL11n, InspectionTypeL11nMapper::class, 'inspection_type_l11n', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $typeL11n);
}
/**
* Method to create vehicle attribute l11n from request.
*
* @param RequestAbstract $request Request
*
* @return BaseStringL11n
*
* @since 1.0.0
*/
private function createInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{
$typeL11n = new BaseStringL11n();
$typeL11n->ref = $request->getDataInt('type') ?? 0;
$typeL11n->setLanguage(
$request->getDataString('language') ?? $request->getLanguage()
);
$typeL11n->content = $request->getDataString('title') ?? '';
return $typeL11n;
}
/**
* Validate vehicle attribute l11n create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateInspectionTypeL11nCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['title'] = !$request->hasData('title'))
|| ($val['type'] = !$request->hasData('type'))
) {
return $val;
}
return [];
}
}

View File

@ -25,7 +25,7 @@ use phpOMS\Localization\BaseStringL11nType;
* @link https://jingga.app
* @since 1.0.0
*
* @template T of FuelType
* @template T of BaseStringL11nType
* @extends DataMapperFactory<T>
*/
final class FuelTypeMapper extends DataMapperFactory

View File

@ -25,7 +25,7 @@ use phpOMS\Localization\BaseStringL11nType;
* @link https://jingga.app
* @since 1.0.0
*
* @template T of FuelType
* @template T of BaseStringL11nType
* @extends DataMapperFactory<T>
*/
final class InspectionTypeMapper extends DataMapperFactory
@ -49,7 +49,7 @@ final class InspectionTypeMapper extends DataMapperFactory
*/
public const HAS_MANY = [
'l11n' => [
'mapper' => FuelTypeL11nMapper::class,
'mapper' => InspectionTypeL11nMapper::class,
'table' => 'fleetmgmt_inspection_type_l11n',
'self' => 'fleetmgmt_inspection_type_l11n_type',
'column' => 'content',

View File

@ -27,4 +27,14 @@ use phpOMS\Stdlib\Base\Enum;
abstract class PermissionCategory extends Enum
{
public const VEHICLE = 1;
public const FUEL_TYPE = 2;
public const VEHICLE_TYPE = 3;
public const INSPECTION_TYPE = 4;
public const INSPECTION = 5;
public const ATTRIBUTE_TYPE = 6;
}