'Approve Document', 'message' => 'You have successfully approved the Document' ]; } /** @var CanUpdateDocument */ private $canUpdateDocument; /** @var ApprovesDocument */ private $approvesDocument; /** @var FetchesDocument */ private $fetchesDocument; /** * UpdateStandardSegmentConstantLogic constructor. * @param CanUpdateDocument $canUpdateDocument * @param ApprovesDocument $approvesDocument * @param FetchesDocument $fetchesDocument */ public function __construct( canUpdateDocument $canUpdateDocument, ApprovesDocument $approvesDocument, FetchesDocument $fetchesDocument ) { $this->canUpdateDocument = $canUpdateDocument; $this->approvesDocument = $approvesDocument; $this->fetchesDocument = $fetchesDocument; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { DB::beginTransaction(); $document_query = $this->fetchesDocument->execute(['id' => $request->route('id')]); $document_object = new DocumentObject( $document_query->owner_id, $document_query->owner_type, $document_query->document_type, $document_query->reference, ObjectStatus::ACTIVE, \Auth::user()->id, $document_query->issued_date, $document_query->expired_date, $document_query->approved_date ); $this->canUpdateDocument->passes($document_object); $document_query = $this->approvesDocument->execute($document_query, $document_object); DB::commit(); return $this->resourceResponse(new DocumentResource($document_query)); } catch (\Exception $exception){ dd($exception); throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }