'Delete Segment', 'message' => 'You have successfully deleted the Segment' ]; } /** @var CanDeleteSegment */ private $canDeleteSegment; /** @var DeletesSegment */ private $deletesSegment; /** @var FetchesSegment */ private $fetchesSegment; /** * DeleteSegmentLogic constructor. * @param CanDeleteSegment $canDeleteSegment * @param DeletesSegment $deletesSegment * @param FetchesSegment $fetchesSegment */ public function __construct( CanDeleteSegment $canDeleteSegment, DeletesSegment $deletesSegment, FetchesSegment $fetchesSegment ) { $this->canDeleteSegment = $canDeleteSegment; $this->deletesSegment = $deletesSegment; $this->fetchesSegment = $fetchesSegment; } /** * @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_query = $this->fetchesSegment->execute(['id' => $request->route('id')]); $this->canDeleteSegment->passes(); $this->deletesSegment->execute($segment_query); return $this->resourceResponse(new SegmentResource($segment_query)); } }