Vous êtes sur la page 1sur 4

Vols SERVICE

// Définition du chemin de base pour toutes les ressources de VolService


@Path("/vols")
// Spécification du type de média produit et consommé par les méthodes
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class VolService {

// Injection de dépendances du VolRepository dans la classe


private VolRepository volRepository;

// Constructeur qui prend un VolRepository en paramètre pour l'injection de dépendances


public VolService(VolRepository volRepository) {
this.volRepository = volRepository;
}

// Méthode HTTP GET pour obtenir tous les vols


@GET
public Response getAllVols() {
// Appel à la méthode findAll() du VolRepository pour obtenir tous les vols
List<Vol> vols = volRepository.findAll();
// Construction d'une réponse HTTP OK avec la liste des vols en tant qu'entité
return Response.ok().entity(vols).build();
}

// Méthode HTTP GET pour obtenir un vol par son ID


@GET
@Path("/{id}")
public Response getVolById(@PathParam("id") Long id) {
// Appel à la méthode findById() du VolRepository pour obtenir un vol par son ID
Vol vol = volRepository.findById(id);
// Vérification si le vol a été trouvé
if (vol != null) {
// Construction d'une réponse HTTP OK avec le vol en tant qu'entité
return Response.ok().entity(vol).build();
} else {
// Construction d'une réponse HTTP Not Found si le vol n'est pas trouvé
return Response.status(Response.Status.NOT_FOUND).entity("Vol non trouvé pour
l'ID spécifié.").build();
}
}

// Méthode HTTP POST pour ajouter un nouveau vol


@POST
public Response addVol(Vol vol) {
// Validation des données du vol
if (isValidVolData(vol)) {
// Appel à la méthode save() du VolRepository pour ajouter le vol
Vol addedVol = volRepository.save(vol);
// Construction d'une réponse HTTP Created avec le vol ajouté en tant qu'entité
return Response.status(Response.Status.CREATED).entity(addedVol).build();
} else {
// Construction d'une réponse HTTP Bad Request si les données du vol ne sont pas
valides
return Response.status(Response.Status.BAD_REQUEST).entity("Données de vol non
valides.").build();
}
}

// Méthode HTTP PUT pour mettre à jour un vol existant


@PUT
@Path("/{id}")
public Response updateVol(@PathParam("id") Long id, Vol updatedVol) {
// Recherche du vol existant par son ID
Vol existingVol = volRepository.findById(id);
// Vérification si le vol existant a été trouvé
if (existingVol != null) {
// Validation des données du vol mis à jour
if (isValidVolData(updatedVol)) {
// Mise à jour de l'ID du vol mis à jour avec l'ID existant
updatedVol.setId(id);
// Appel à la méthode save() du VolRepository pour mettre à jour le vol
Vol updated = volRepository.save(updatedVol);
// Construction d'une réponse HTTP OK avec le vol mis à jour en tant qu'entité
return Response.ok().entity(updated).build();
} else {
// Construction d'une réponse HTTP Bad Request si les données du vol mis à jour ne
sont pas valides
return Response.status(Response.Status.BAD_REQUEST).entity("Données de vol
mises à jour non valides.").build();
}
} else {
// Construction d'une réponse HTTP Not Found si le vol n'est pas trouvé pour l'ID
spécifié
return Response.status(Response.Status.NOT_FOUND).entity("Vol non trouvé pour
l'ID spécifié.").build();
}
}

// Méthode HTTP DELETE pour supprimer un vol par son ID


@DELETE
@Path("/{id}")
public Response deleteVol(@PathParam("id") Long id) {
// Recherche du vol existant par son ID
Vol existingVol = volRepository.findById(id);
// Vérification si le vol existant a été trouvé
if (existingVol != null) {
// Appel à la méthode deleteById() du VolRepository pour supprimer le vol
volRepository.deleteById(id);
// Construction d'une réponse HTTP OK avec un message de confirmation
return Response.ok().entity("Vol supprimé avec succès.").build();
} else {
// Construction d'une réponse HTTP Not Found si le vol n'est pas trouvé pour l'ID
spécifié
return Response.status(Response.Status.NOT_FOUND).entity("Vol non trouvé pour
l'ID spécifié.").build();
}
}

// Méthode de validation des données du vol


private boolean isValidVolData(Vol vol) {
// Vérification des contraintes de validation, par exemple, date de départ < date d'arrivée
LocalDateTime heureDepart = vol.getHeureDepart

Vous aimerez peut-être aussi