'Update Company Account Status', 'message' => 'You have successfully updated the Company Account Status' ]; } /** @var CanUpdateCompany */ private $canUpdateCompany; /** @var UpdatesCompany */ private $updatesCompany; /** @var FetchesCompany */ private $fetchesCompany; /** @var UpdatesCompanyDebtor */ private $updatesCompanyDebtor; /** * UpdateCompanyControllersLogic constructor. * @param CanUpdateCompany $canUpdateCompany * @param UpdatesCompany $updatesCompany * @param FetchesCompany $fetchesCompany * @param UpdatesCompanyDebtor $updatesCompanyDebtor */ public function __construct( CanUpdateCompany $canUpdateCompany, UpdatesCompany $updatesCompany, FetchesCompany $fetchesCompany, UpdatesCompanyDebtor $updatesCompanyDebtor ) { $this->canUpdateCompany = $canUpdateCompany; $this->updatesCompany = $updatesCompany; $this->fetchesCompany = $fetchesCompany; $this->updatesCompanyDebtor = $updatesCompanyDebtor; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $query = $this->fetchesCompany->execute(['id' => $request->route('id')]); $object = new CompanyObject($request->input('name'), $request->input('reference'), $query->business_type, $request->input('type')); $this->canUpdateCompany->passes($object); $query = $this->updatesCompany->execute($query, $object); if ($request->input('debtor') || $query->first()->debtor !== null) { $this->updatesCompanyDebtor->execute($query, $request->input('debtor')); } return $this->resourceResponse(new CompanyResource($query)); } }