public function setAlertes(Request $request) { if ($this->getAuthenticatedUser()->getStatusCode() == 200) { $user = JWTAuth::parseToken()->authenticate(); $user->load('alertes.etapeDepart.ville', 'alertes.etapeArrivee.ville'); $alerte = $user->alertes; // Si l'utilisateur n'a pas encore d'alerte, l'enregistrer if (count($alerte) == 0) { $alerte = new Alerte(); $villeDep = new Etape(); $villeArr = new Etape(); $date = new DateTime(date('Y-m-d')); $villeDep->ville()->associate(Ville::where('nomVille', $request->input('villeDepartAlerte'))->first()); $villeArr->ville()->associate(Ville::where('nomVille', $request->input('villeArriveeAlerte'))->first()); // Si une ville n'est pas reconnue envoyer message erreur if ($villeDep->inseeVille == null || $villeArr->inseeVille == null) { return response()->json(['error' => 'ville non trouvée'], 404); } $villeDep->save(); $villeArr->save(); $alerte->dateAlerte = $date; $alerte->heureAlerte = $request->input('heureAlerte'); $alerte->etapeDepart()->associate($villeDep->idEtape); $alerte->etapeArrivee()->associate($villeArr->idEtape); $alerte->membre()->associate($user->id); // retourne un utilisateur identifié par token $alerte->save(); $alerte->load('etapeDepart.ville', 'etapeArrivee.ville'); } // Dans tout les cas retourner l'alerte return response()->json($alerte); } }