'Updated Company', 'message' => 'You have successfully updated the Company' ]; } /** @var FetchesCompany */ private $fetchesCompany; /** @var UpdatesCompanyName */ private $updatesCompanyName; /** @var UpdatesCompanyModuleName */ private $updatesCompanyModuleName; /** * UpdateCompanyControllersLogic constructor. * @param FetchesCompany $fetchesCompany * @param UpdatesCompanyName $updatesCompany * @param UpdatesCompanyModuleName $updatesCompanyModuleName */ public function __construct(FetchesCompany $fetchesCompany,UpdatesCompanyName $updatesCompanyName, UpdatesCompanyModuleName $updatesCompanyModuleName) { $this->fetchesCompany = $fetchesCompany; $this->updatesCompanyName = $updatesCompanyName; $this->updatesCompanyModuleName = $updatesCompanyModuleName; } /** * @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'), $query->reference, $query->type); $this->updatesCompanyName->execute($query, $object); $this->updatesCompanyModuleName->execute($query->companyModules()->first(), $object->getName()); return $this->resourceResponse(new CompanyResource($query)); } }