'Assign Company Connection To Connection Segment', 'message' => 'You have successfully assigned Company Connection to Connection segment' ]; } /** @var FetchesCompany */ private $fetchesCompany; /** @var FetchesCompanyConnection */ private $fetchesCompanyConnection; /** @var AssignConnectionSegmentProcessor */ private $assignCompanyConnectionToConnectionSegmentProcessor; /** @var CreateContactProcessor */ private $createContactProcessor; /** * AssignCompanyToSegmentLogic constructor. * @param FetchesCompany $fetchesCompany * @param FetchesCompanyConnection $fetchesCompanyConnection * @param AssignConnectionSegmentProcessor $assignCompanyConnectionToConnectionSegmentProcessor * @param CreateContactProcessor $createContactProcessor */ public function __construct(FetchesCompany $fetchesCompany, FetchesCompanyConnection $fetchesCompanyConnection, AssignConnectionSegmentProcessor $assignCompanyConnectionToConnectionSegmentProcessor, CreateContactProcessor $createContactProcessor) { $this->fetchesCompany = $fetchesCompany; $this->fetchesCompanyConnection = $fetchesCompanyConnection; $this->assignCompanyConnectionToConnectionSegmentProcessor = $assignCompanyConnectionToConnectionSegmentProcessor; $this->createContactProcessor = $createContactProcessor; } /** * @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 { $company = $this->fetchesCompany->execute(['id' => $request->route('id')]); $companyConnection = $this->fetchesCompanyConnection->execute(['id' => $request->route('company_connection_id')]); $this->assignCompanyConnectionToConnectionSegmentProcessor->execute($companyConnection, $request->input('segment_id')); if ($request->input('segment_id') == 10 || $request->input('segment_id') == 11) { $contactObject = new ContactObject('Whatsapp: ' . $request->input('name'), $request->input('phone'), null, null); $this->createContactProcessor->execute($contactObject, $company); } return $this->resourceResponse(new CompanyResource($company)); } }