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