From 3bdf311b21a05b0018a18a81125ac9019acd8be7 Mon Sep 17 00:00:00 2001 From: Maxime Maronet <maxime.maronet.etu@univ-lille.fr> Date: Tue, 2 Feb 2021 15:25:18 +0100 Subject: [PATCH] rendu tp3 --- .Rhistory | 0 pom.xml | 9 +++ src/main/java/fr/ulille/iut/tva/Main.java | 2 +- .../fr/ulille/iut/tva/dto/DetailTauxDto.java | 67 +++++++++++++++++++ .../fr/ulille/iut/tva/dto/InfoTauxDto.java | 33 +++++++++ .../NiveauTvaInexistantException.java | 12 ++++ .../iut/tva/ressource/TvaRessource.java | 65 ++++++++++++++++++ 7 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 .Rhistory create mode 100644 src/main/java/fr/ulille/iut/tva/dto/DetailTauxDto.java create mode 100644 src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java create mode 100644 src/main/java/fr/ulille/iut/tva/ressource/NiveauTvaInexistantException.java diff --git a/.Rhistory b/.Rhistory new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml index 6ac6648..97e514e 100644 --- a/pom.xml +++ b/pom.xml @@ -108,6 +108,15 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <inherited>true</inherited> + <configuration> + <release>11</release> + </configuration> + </plugin> </plugins> </build> diff --git a/src/main/java/fr/ulille/iut/tva/Main.java b/src/main/java/fr/ulille/iut/tva/Main.java index 62da555..7038335 100644 --- a/src/main/java/fr/ulille/iut/tva/Main.java +++ b/src/main/java/fr/ulille/iut/tva/Main.java @@ -16,7 +16,7 @@ import java.util.logging.Logger; */ public class Main { // Base URI the Grizzly HTTP server will listen on - public static final String BASE_URI = "http://localhost:8080/myapp/"; + public static final String BASE_URI = "http://localhost:8080/api/v1"; /** * Starts Grizzly HTTP server exposing JAX-RS resources defined in this application. diff --git a/src/main/java/fr/ulille/iut/tva/dto/DetailTauxDto.java b/src/main/java/fr/ulille/iut/tva/dto/DetailTauxDto.java new file mode 100644 index 0000000..b2ecef0 --- /dev/null +++ b/src/main/java/fr/ulille/iut/tva/dto/DetailTauxDto.java @@ -0,0 +1,67 @@ +package fr.ulille.iut.tva.dto; + +import jakarta.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class DetailTauxDto { + + private double montantTotal; + private double montantTva; + private double somme; + private String tauxLabel; + private double tauxValue; + + public DetailTauxDto(){} + + public DetailTauxDto(double montantTotal, double montantTva, double somme, String tauxLabel, double tauxValue) { + this.montantTotal = montantTotal; + this.montantTva = montantTva; + this.somme = somme; + this.tauxLabel = tauxLabel; + this.tauxValue = tauxValue; + } + + public double getMontantTotal() { + return montantTotal; + } + + public void setMontantTotal(double montantTotal) { + this.montantTotal = montantTotal; + } + + public double getMontantTva() { + return montantTva; + } + + public void setMontantTva(double montantTva) { + this.montantTva = montantTva; + } + + public double getSomme() { + return somme; + } + + public void setSomme(double somme) { + this.somme = somme; + } + + public String getTauxLabel() { + return tauxLabel; + } + + public void setTauxLabel(String tauxLabel) { + this.tauxLabel = tauxLabel; + } + + public double getTauxValue() { + return tauxValue; + } + + public void setTauxValue(double tauxValue) { + this.tauxValue = tauxValue; + } + + + + +} diff --git a/src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java b/src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java new file mode 100644 index 0000000..c580b8b --- /dev/null +++ b/src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java @@ -0,0 +1,33 @@ +package fr.ulille.iut.tva.dto; + +import jakarta.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class InfoTauxDto { + + private String label; + private double taux; + + public InfoTauxDto() {} + + public InfoTauxDto(String label, double taux) { + this.label = label; + this.taux = taux; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public double getTaux() { + return taux; + } + + public void setTaux(double taux) { + this.taux = taux; + } +} diff --git a/src/main/java/fr/ulille/iut/tva/ressource/NiveauTvaInexistantException.java b/src/main/java/fr/ulille/iut/tva/ressource/NiveauTvaInexistantException.java new file mode 100644 index 0000000..9a8963e --- /dev/null +++ b/src/main/java/fr/ulille/iut/tva/ressource/NiveauTvaInexistantException.java @@ -0,0 +1,12 @@ +package fr.ulille.iut.tva.ressource; + +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Response; + +public class NiveauTvaInexistantException extends WebApplicationException { + private static final long serialVersionUID = 939875418210403804L; + + public NiveauTvaInexistantException() { + super(Response.status(Response.Status.NOT_ACCEPTABLE).entity("Niveau de TVA inexistant\n").build()); + } +} diff --git a/src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java b/src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java index 4c63ca6..b1c8fbd 100644 --- a/src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java +++ b/src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java @@ -1,12 +1,77 @@ package fr.ulille.iut.tva.ressource; +import java.util.ArrayList; +import java.util.List; + +import fr.ulille.iut.tva.dto.*; import fr.ulille.iut.tva.service.CalculTva; import fr.ulille.iut.tva.service.TauxTva; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.MediaType; /** * TvaRessource */ +@Path("tva") public class TvaRessource { private CalculTva calculTva = new CalculTva(); + + @GET + @Path("tauxpardefaut") + public double getValeurTauxParDefaut() { + return TauxTva.NORMAL.taux; + } + + @GET + @Path("valeur/{niveauTva}") + public double getValeurTaux(@PathParam("niveauTva") String niveau) { + try { + return TauxTva.valueOf(niveau.toUpperCase()).taux; + } + catch ( Exception ex ) { + throw new NiveauTvaInexistantException(); + } + + } + + @GET + @Path("{niveauTva}") + public double getMontantTotal(@PathParam("niveauTva") String niveau, @QueryParam("somme") int montant) { + try { + return calculTva.calculerMontant(TauxTva.fromString(niveau.toUpperCase()), montant); + }catch(Exception e) { + throw new NiveauTvaInexistantException(); + } + + } + + @GET + @Path("lestaux") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public List<InfoTauxDto> getInfoTaux() { + ArrayList<InfoTauxDto> result = new ArrayList<InfoTauxDto>(); + for ( TauxTva t : TauxTva.values() ) { + result.add(new InfoTauxDto(t.name(), t.taux)); + } + return result; + } + + @GET + @Path("details/{taux}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public DetailTauxDto getDetailTaux(@PathParam("taux") String niveau,@QueryParam("somme") int montant){ + DetailTauxDto res=new DetailTauxDto(); + res.setMontantTotal(calculTva.calculerMontant(TauxTva.fromString(niveau.toUpperCase()), montant)); + res.setMontantTva(TauxTva.fromString(niveau.toUpperCase()).taux); + res.setSomme(montant); + res.setTauxLabel(TauxTva.fromString(niveau.toUpperCase()).toString().toLowerCase()); + res.setTauxValue(TauxTva.fromString(niveau.toUpperCase()).taux); + + return res; + } } -- GitLab