'Created Segment', 'message' => 'You have successfully created a new Segment' ]; } /** @var CanCreateSegment */ private $canCreateSegment; /** @var CreatesSegment */ private $createsSegment; /** * CreateSegmentLogic constructor. * @param CanCreateSegment $canCreateSegment * @param CreatesSegment $createsSegment */ public function __construct(CanCreateSegment $canCreateSegment, CreatesSegment $createsSegment) { $this->canCreateSegment = $canCreateSegment; $this->createsSegment = $createsSegment; } /** * @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 { $segment_object = new SegmentObject($request->input('name'), $request->input('type') ?? 2); $this->canCreateSegment->passes($segment_object); $segment = $this->createsSegment->execute($segment_object); return $this->resourceResponse(new SegmentResource($segment)); } }