Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Xentral\Modules\MandatoryFields;
|
||||
|
||||
use Xentral\Modules\MandatoryFields\Data\MandatoryFieldData;
|
||||
use Xentral\Modules\MandatoryFields\Data\ValidatorResultData;
|
||||
use Xentral\Modules\MandatoryFields\Exception\MandatoryFieldExistsException;
|
||||
use Xentral\Modules\MandatoryFields\Exception\MandatoryFieldNotFoundException;
|
||||
use Xentral\Modules\MandatoryFields\Exception\UnknownTypeException;
|
||||
use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsGateway;
|
||||
use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsService;
|
||||
use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsValidator;
|
||||
|
||||
final class MandatoryFieldsModule
|
||||
{
|
||||
|
||||
/** @var MandatoryFieldsGateway $gateway */
|
||||
private $gateway;
|
||||
|
||||
/** @var MandatoryFieldsService $service */
|
||||
private $service;
|
||||
|
||||
/** @var MandatoryFieldsValidator $validator */
|
||||
private $validator;
|
||||
|
||||
/**
|
||||
* @param MandatoryFieldsGateway $gateway
|
||||
* @param MandatoryFieldsService $service
|
||||
* @param MandatoryFieldsValidator $validator
|
||||
*/
|
||||
public function __construct(
|
||||
MandatoryFieldsGateway $gateway,
|
||||
MandatoryFieldsService $service,
|
||||
MandatoryFieldsValidator $validator
|
||||
) {
|
||||
$this->service = $service;
|
||||
$this->gateway = $gateway;
|
||||
$this->validator = $validator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param MandatoryFieldData $mandatoryField
|
||||
*
|
||||
* @throws MandatoryFieldExistsException
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function createMandatoryField(MandatoryFieldData $mandatoryField): int
|
||||
{
|
||||
$exists = $this->existsMandatoryField(
|
||||
$mandatoryField->getModule(),
|
||||
$mandatoryField->getAction(),
|
||||
$mandatoryField->getFieldId(),
|
||||
$mandatoryField->getType()
|
||||
);
|
||||
|
||||
if ($exists) {
|
||||
throw new MandatoryFieldExistsException('Mandatory field already exists.');
|
||||
}
|
||||
|
||||
return $this->service->create($mandatoryField);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param MandatoryFieldData $mandatoryField
|
||||
*
|
||||
* @throws MandatoryFieldNotFoundException
|
||||
*/
|
||||
public function editMandatoryField(MandatoryFieldData $mandatoryField): void
|
||||
{
|
||||
$this->service->edit($mandatoryField);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $module
|
||||
* @param string $action
|
||||
* @param string $fieldId
|
||||
* @param string $type
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function existsMandatoryField(string $module, string $action, string $fieldId, string $type): bool
|
||||
{
|
||||
$result = $this->gateway->getMandatoryFieldByParameters($module, $action, $fieldId, $type);
|
||||
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $mandatoryFieldId
|
||||
*
|
||||
* @throws MandatoryFieldNotFoundException
|
||||
*/
|
||||
public function removeMandatoryFieldById(int $mandatoryFieldId): void
|
||||
{
|
||||
$this->service->removeById($mandatoryFieldId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param int $mandatoryFieldId
|
||||
*
|
||||
* @throws MandatoryFieldNotFoundException
|
||||
*
|
||||
* @return MandatoryFieldData
|
||||
*/
|
||||
public function getMandatoryFieldById(int $mandatoryFieldId): MandatoryFieldData
|
||||
{
|
||||
return $this->gateway->getById($mandatoryFieldId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @param string $value
|
||||
* @param int $mandatoryFieldId
|
||||
*
|
||||
* @throws UnknownTypeException
|
||||
* @throws MandatoryFieldNotFoundException
|
||||
*
|
||||
* @return ValidatorResultData
|
||||
*/
|
||||
public function validate(string $type, string $value, int $mandatoryFieldId): ValidatorResultData
|
||||
{
|
||||
return $this->validator->validate($type, $value, $mandatoryFieldId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user