'Delete Segment', 'message' => 'You have successfully deleted the Segment' ]; } /** @var CanDeleteSegment */ private $canDeleteSegment; /** @var DeletesSegment */ private $deletesSegment; /** @var FetchesSegment */ private $fetchesSegment; /** * UpdateStandardSegmentConstantLogic constructor. * @param CanUpdateSegment $canDeleteSegment * @param UpdatesSegment $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 ErrorException */ public function logic(Request $request) : JsonResponse { try { DB::beginTransaction(); $segment_query = $this->fetchesSegment->execute(['id' => $request->route('id')]); $this->canDeleteSegment->passes(); $this->deletesSegment->execute($segment_query); DB::commit(); return $this->resourceResponse(new SegmentResource($segment_query)); } catch (\Exception $exception){ dd($exception); throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }