'Update Bank Account', 'message' => 'You have successfully updated the Bank Account' ]; } /** @var CanUpdateBank */ private $canUpdateBank; /** @var UpdatesBank */ private $updatesBank; /** @var FetchesBank */ private $fetchesBank; /** @var CreatesBankLog */ private $createsBankLog; /** @var CreatesOrUpdateBank */ private $createsOrUpdateBank; /** @var UpdateBankProcessor */ private $updateBankProcessor; /** * UpdateBankLogic constructor. * @param CanUpdateBank $canUpdateBank * @param UpdatesBank $updatesBank * @param FetchesBank $fetchesBank * @param CreatesBankLog $createsBankLog * @param CreatesOrUpdateBank $createsOrUpdateBank * @param UpdateBankProcessor $updateBankProcessor */ public function __construct( CanUpdateBank $canUpdateBank, UpdatesBank $updatesBank, FetchesBank $fetchesBank, CreatesBankLog $createsBankLog, CreatesOrUpdateBank $createsOrUpdateBank, UpdateBankProcessor $updateBankProcessor ) { $this->canUpdateBank = $canUpdateBank; $this->updatesBank = $updatesBank; $this->fetchesBank = $fetchesBank; $this->createsBankLog = $createsBankLog; $this->createsOrUpdateBank = $createsOrUpdateBank; $this->updateBankProcessor = $updateBankProcessor; } /** * @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->updateBankProcessor->execute($bankObject, $bank, $request->input('bill_no') ?? '', (int) $request->input('transaction_id') ?? 0 ); return $this->resourceResponse(new BankResource($bank_query)); } }