Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.85 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Controller;
  4.  
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10.  
  11. use App\Entity\Transit;
  12.  
  13.  
  14. class TransitController extends Controller
  15. {
  16.     /**
  17.      * @Route("/transits", name="transits", methods={"POST"}, defaults={"_format": "json"},
  18.      *     requirements={"_format": "json"})
  19.      * @param Request $request
  20.      * @param EntityManagerInterface $entityManager
  21.      * @return JsonResponse
  22.      */
  23.     public function create(Request $request, EntityManagerInterface $entityManager): ?JsonResponse
  24.     {
  25.         $transit = new Transit();
  26.         $transit->setPrice($request->request->get('price'));
  27.         $transit->setDate($request->request->get('date'));
  28.         $transit->setDestinationAddress($request->request->get('destinationAddress'));
  29.         $transit->setSourceAddress($request->request->get('sourceAddress'));
  30.  
  31.         $validator = $this->get('validator');
  32.         $errors = $validator->validate($transit);
  33.         if($errors->count() > 0) {
  34.             $errorsArray = [];
  35.             foreach ($errors as $error) {
  36.                 array_push($errorsArray, $error->getPropertyPath() . ": " . $error->getMessage());
  37.             }
  38.  
  39.             return new JsonResponse([
  40.                 "status" => "400",
  41.                 "message" => "Bad request.",
  42.                 "errors" => $errorsArray,
  43.             ], 400);
  44.         }
  45.         try {
  46.             $entityManager->persist($transit);
  47.             $entityManager->flush();
  48.         } catch (\Exception $e) {
  49.             return new JsonResponse([
  50.                 "status" => "500",
  51.                 "message" => $e->getMessage()
  52.             ], 500);
  53.         }
  54.  
  55.  
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement