'Update Statement Transaction Status', 'message' => 'You have successfully updated the Statement Transation Status' ]; } /** @var FetchesBankStatementTransactionOwner */ private $fetchesBankStatementTransactionOwner; /** @var UpdatesBankStatementTransactionOwnerStatus */ private $updatesBankStatementTransactionOwnerStatus; /** @var CanUpdateStatementTransactionStatus */ private $canUpdateStatementTransactionStatus; /** * UpdateAnnouncementLogic constructor. * @param FetchesBankStatementTransactionOwner $fetchesBankStatementTransactionOwner * @param UpdatesBankStatementTransactionOwnerStatus $updatesBankStatementTransactionOwnerStatus * @param CanUpdateStatementTransactionStatus $canUpdateStatementTransactionStatus */ public function __construct( FetchesBankStatementTransactionOwner $fetchesBankStatementTransactionOwner, UpdatesBankStatementTransactionOwnerStatus $updatesBankStatementTransactionOwnerStatus, CanUpdateStatementTransactionStatus $canUpdateStatementTransactionStatus ) { $this->fetchesBankStatementTransactionOwner = $fetchesBankStatementTransactionOwner; $this->updatesBankStatementTransactionOwnerStatus = $updatesBankStatementTransactionOwnerStatus; $this->canUpdateStatementTransactionStatus = $canUpdateStatementTransactionStatus; } /** * @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 { $this->canUpdateStatementTransactionStatus->passes(); $statementTrasactionOwner = $this->fetchesBankStatementTransactionOwner->execute(['id' => $request->route('id')]); $this->updatesBankStatementTransactionOwnerStatus->execute($statementTrasactionOwner, $request->route('status') == 'approve' ? ApprovalStatus::APPROVED : ApprovalStatus::REJECTED); return $this->resourceResponse(new BankStatementTransactionOwnerResource($statementTrasactionOwner)); } }