token)->first()) { return false; }; $object = $bxId->bitrixable; switch ($request->action) { case $this::ACTION_CONFIRM_DEAL: $this->confirmDeal($object, $request); break; case $this::ACTION_UPDATE_CONTRACT: $this->updateContract($object, $request); break; case $this::ACTION_CONFIRM_COMPANY: $this->confirmCompany($request, $object); break; } return false; } public function confirmCompany(Request $request, $company) { $confirmer = new ConfirmCompanyController; $confirmer($request, $company); } public function confirmDeal(Deal $deal, Request $request) { $agent = $deal->agent; $request->is_unique = json_decode($request->is_unique, true); if ($request->is_unique == true) { $deal->status = DealStatus::UNIQUE; $agent->user->notify(new UniqueContact($deal)); $deal->notify(new DealUnique()); } else { $deal->status = DealStatus::NOT_UNIQUE; $agent->user->notify(new NotUniqueContact($deal)); $deal->notify(new DealNotUnique()); } if (!$agent->bitrixId()) { $agent->setBitrixId($request->agent_id); } Log::build([ 'driver' => 'single', 'path' => storage_path('logs/bitrix.log'), ])->error( json_encode( [ 'is_unique' => $request->is_unique, 'deal' => $deal->id, 'status' => $deal->status ] ) ); $deal->save(); return $deal->id; } public function updateContract(Deal $deal, Request $request) { $contract = new ContractUpdateController; $contract($deal, $request); } }