diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php index 8186a034..175575cf 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php @@ -4,16 +4,17 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers; use App\Classes\General\Abstracts\AbstractControllerLogic; +use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; -use App\Classes\Modules\Remarks\Services\CreatesRemark; -use App\Models\Container; -use App\Models\Remark; +use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor; +use App\Http\Resources\ContainerResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class CreateContainerRemarkLogic extends AbstractControllerLogic { + /** * @return array */ @@ -24,35 +25,41 @@ class CreateContainerRemarkLogic extends AbstractControllerLogic ]; } - /** @var CreatesRemark */ - private $createsRemark; + + /** @var FetchesContainer */ + private $fetchesContainer; + + /** @var CreateRemarkProcessor */ + private $createRemarkProcessor; /** * CreateContainerRemarkLogic constructor. - * @param CreatesRemark $createsRemark + * @param FetchesContainer $fetchesContainer + * @param CreateRemarkProcessor $createRemarkProcessor */ - public function __construct(CreatesRemark $createsRemark) + public function __construct(FetchesContainer $fetchesContainer, CreateRemarkProcessor $createRemarkProcessor) { - $this->createsRemark = $createsRemark; + $this->fetchesContainer = $fetchesContainer; + $this->createRemarkProcessor = $createRemarkProcessor; } - /** * @param Request $request * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException */ public function logic(Request $request) : JsonResponse { - // get the container - $container = Container::findOrFail($request->input('container_id')); + $container = $this->fetchesContainer->execute(['id' => $request->input('container_id')]); $object = new RemarkObject($request->input('content'), 1); - $remark = $this->createsRemark->execute($container, $object); + $this->createRemarkProcessor->execute($container, $object); - return $remark; + return $this->resourceResponse(new ContainerResource($container)); } diff --git a/app/Classes/Modules/Remarks/Processors/CreateRemarkProcessor.php b/app/Classes/Modules/Remarks/Processors/CreateRemarkProcessor.php new file mode 100644 index 00000000..aadbe502 --- /dev/null +++ b/app/Classes/Modules/Remarks/Processors/CreateRemarkProcessor.php @@ -0,0 +1,47 @@ +createsRemark = $createsRemark; + $this->canCreateRemark = $canCreateRemark; + } + + + /** + * @param Remarkable $remarkable + * @param RemarkObject $object + * @return \Illuminate\Database\Eloquent\Model + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function execute(Remarkable $remarkable, RemarkObject $object){ + + $this->canCreateRemark->passes($object); + return $this->createsRemark->execute($remarkable, $object); + + } + +} \ No newline at end of file