'Update Bank Account', 'message' => 'You have successfully updated the Bank Account' ]; } /** @var CanUpdateBank */ private $canUpdateBank; /** @var UpdatesBank */ private $updatesBank; /** @var FetchesBank */ private $fetchesBank; /** * UpdateBankLogic constructor. * @param CanUpdateBank $canUpdateBank * @param UpdatesBank $updatesBank * @param FetchesBank $fetchesBank */ public function __construct( CanUpdateBank $canUpdateBank, UpdatesBank $updatesBank, FetchesBank $fetchesBank ) { $this->canUpdateBank = $canUpdateBank; $this->updatesBank = $updatesBank; $this->fetchesBank = $fetchesBank; } /** * @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 { $bankObject = new BankObject( $request->input('company_id'), $request->input('account_type'), $request->input('bank_name'), $request->input('holder_name'), $request->input('account_no'), $request->input('bank_branch'), $request->input('swift'), $request->input('snap'), $request->input('country_id'), $request->input('reference') ); $bank = $this->fetchesBank->execute(['id' => $request->route('id')]); $this->canUpdateBank->passes($bankObject); $bank_query = $this->updatesBank->execute($bank, $bankObject); return $this->resourceResponse(new BankResource($bank_query)); } }