'Updated Company Bank', 'message' => 'You have successfully updated the Company Bank' ]; } /** @var CanUpdateCompanyBank */ private $canUpdateCompanyBank; /** @var UpdatesCompanyBank */ private $updatesCompanyBank; /** @var FetchesCompanyBank */ private $fetchesCompanyBank; /** * UpdateCompanyBankLogic constructor. * @param CanUpdateCompanyBank $canUpdateCompanyBank * @param UpdatesCompanyBank $updatesCompanyBank * @param FetchesCompanyBank $fetchesCompanyBank */ public function __construct( CanUpdateCompanyBank $canUpdateCompanyBank, UpdatesCompanyBank $updatesCompanyBank, FetchesCompanyBank $fetchesCompanyBank ) { $this->canUpdateCompanyBank = $canUpdateCompanyBank; $this->updatesCompanyBank = $updatesCompanyBank; $this->fetchesCompanyBank = $fetchesCompanyBank; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { DB::beginTransaction(); $company_bank_query = $this->fetchesCompanyBank->execute(['id' => $request->route('id')]); $company_bank_object = new CompanyBankObject( $company_bank_query->country_id, $company_bank_query->company_id, $request->input('bank_name'), $request->input('holder_name'), $request->input('account_no'), $company_bank_query->type, $company_bank_query->default ); $this->canUpdateCompanyBank->passes($company_bank_object); $company_bank_query = $this->updatesCompanyBank->execute($company_bank_query, $company_bank_object); DB::commit(); return $this->resourceResponse(new CompanyBankResource($company_bank_query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }