src/Controller/Api/SegmentController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Service\SegmentAPI;
  4. use App\Traits\SentryNotifyTrait;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. /**
  11.  * @Route("/segment")
  12.  */
  13. class SegmentController extends AbstractController
  14. {
  15.     use SentryNotifyTrait;
  16.     private SegmentAPI $segmentAPI;
  17.     public function __construct(SegmentAPI $segmentAPI)
  18.     {
  19.         $this->segmentAPI $segmentAPI;
  20.     }
  21.     /**
  22.      * @Route("/track", name="app_segment_track", methods={"POST","GET"})
  23.      *
  24.      * @return JsonResponse
  25.      */
  26.     public function track(Request $request)
  27.     {
  28.         $query json_decode($request->getContent(), true512JSON_THROW_ON_ERROR);
  29.         $admin $request->get('email');
  30.         try {
  31.             $this->segmentAPI->track($query$admin);
  32.             return $this->json(['message' => 'Track sent']);
  33.         } catch (\Exception $e) {
  34.             $this->captureSentryException($e);
  35.             return $this->json(['message' => $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
  36.         }
  37.     }
  38.     /**
  39.      * @Route("/identify", name="app_segment_identify", methods={"POST","GET"})
  40.      *
  41.      * @return JsonResponse
  42.      */
  43.     public function identify(Request $request)
  44.     {
  45.         $query json_decode($request->getContent(), true512JSON_THROW_ON_ERROR);
  46.         $admin $request->get('email');
  47.         try {
  48.             $this->segmentAPI->identify($query$admin);
  49.             return $this->json(['message' => 'Track sent']);
  50.         } catch (\Exception $e) {
  51.             $this->captureSentryException($e);
  52.             return $this->json(['message' => $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
  53.         }
  54.     }
  55. }