Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Bundle\FrameworkBundle\Controller\Controller;
- use Symfony\Component\HttpFoundation\JsonResponse;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\Routing\Annotation\Route;
- use App\Entity\Transit;
- class TransitController extends Controller
- {
- /**
- * @Route("/transits", name="transits", methods={"POST"}, defaults={"_format": "json"},
- * requirements={"_format": "json"})
- * @param Request $request
- * @param EntityManagerInterface $entityManager
- * @return JsonResponse
- */
- public function create(Request $request, EntityManagerInterface $entityManager): ?JsonResponse
- {
- $transit = new Transit();
- $transit->setPrice($request->request->get('price'));
- $transit->setDate($request->request->get('date'));
- $transit->setDestinationAddress($request->request->get('destinationAddress'));
- $transit->setSourceAddress($request->request->get('sourceAddress'));
- $validator = $this->get('validator');
- $errors = $validator->validate($transit);
- if($errors->count() > 0) {
- $errorsArray = [];
- foreach ($errors as $error) {
- array_push($errorsArray, $error->getPropertyPath() . ": " . $error->getMessage());
- }
- return new JsonResponse([
- "status" => "400",
- "message" => "Bad request.",
- "errors" => $errorsArray,
- ], 400);
- }
- try {
- $entityManager->persist($transit);
- $entityManager->flush();
- } catch (\Exception $e) {
- return new JsonResponse([
- "status" => "500",
- "message" => $e->getMessage()
- ], 500);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement