'Assign Company To Segment', 'message' => 'You have successfully assigned Company to segment' ]; } /** @var FetchesCompany */ private $fetchesCompany; /** @var AssignSegmentProcessor */ private $assignCompanyToSegmentProcessor; /** @var CreatesSeasonalSegment */ private $createsSeasonalSegment; /** * AssignCompanyToSegmentLogic constructor. * @param FetchesCompany $fetchesCompany * @param AssignSegmentProcessor $assignCompanyToSegmentProcessor * @param CreatesSeasonalSegment $createsSeasonalSegment */ public function __construct(FetchesCompany $fetchesCompany, AssignSegmentProcessor $assignCompanyToSegmentProcessor, CreatesSeasonalSegment $createsSeasonalSegment) { $this->fetchesCompany = $fetchesCompany; $this->assignCompanyToSegmentProcessor = $assignCompanyToSegmentProcessor; $this->createsSeasonalSegment = $createsSeasonalSegment; } /** * @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')]); $this->assignCompanyToSegmentProcessor->execute($company, $request->input('segment_id')); if (env('HONEY_TRAP_SEGMENT_ID') && env('HONEY_TRAP_SEGMENT_ID') == $request->input('segment_id')) { $start_date = $request->input('starting_on') ? $request->input('starting_on') : Carbon::now(); $seasonalSegmentObject = new SeasonalSegmentObject($request->route('id'), $request->input('segment_id'), $start_date, $request->input('ending_on')); // $seasonalSegmentObject = new SeasonalSegmentObject((int)$request->route('id'), $request->input('segment_id'), '01-01-2022', '01-01-2022'); $this->createsSeasonalSegment->execute($seasonalSegmentObject); } return $this->resourceResponse(new CompanyResource($company)); } }