From 43e2d59edc0ccab15f6782124cf2674b92368ad9 Mon Sep 17 00:00:00 2001 From: alexis <alexis.degroote.etu> Date: Tue, 8 Feb 2022 11:45:17 +0100 Subject: [PATCH] update --- src/main/java/fr/ulille/iut/tva/Main.java | 2 +- .../fr/ulille/iut/tva/dto/InfoTauxDto.java | 30 +++++++++++ .../NiveauTvaInexistantException.java | 12 +++++ .../iut/tva/ressource/TvaRessource.java | 53 +++++++++++++++++++ 4 files changed, 96 insertions(+), 1 deletion(-) 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/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/InfoTauxDto.java b/src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java new file mode 100644 index 0000000..6a3d832 --- /dev/null +++ b/src/main/java/fr/ulille/iut/tva/dto/InfoTauxDto.java @@ -0,0 +1,30 @@ +package fr.ulille.iut.tva.dto; + +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..120c5fe --- /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.*; +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..c3006f5 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,65 @@ package fr.ulille.iut.tva.ressource; +import javax.annotation.processing.Generated; + import fr.ulille.iut.tva.service.CalculTva; import fr.ulille.iut.tva.service.TauxTva; +import jakarta.ws.rs.*; +import fr.ulille.iut.tva.dto.InfoTauxDto; +import java.util.List; +import java.util.ArrayList; /** * 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 String getMontantTotal(@PathParam("niveauTva") String niveau, @QueryParam("somme") int somme){ + try { + return "taux de TVA : " + getValeurTaux(niveau) + "\nsomme :" + somme + "\n"; + } + catch ( Exception ex ) { + throw new NiveauTvaInexistantException(); + } + } + + @GET + @Path("lestaux") + 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/{niveauTva}") + public String getDetails(@PathParam("niveauTva") String value, @QueryParam("somme") int somme){ + return "{'montantTotal: "+ getMontantTotal(niveau, somme) + ", montantTva: " + getValeurTaux(niveau) + ", somme: " + somme + ", tauxLabel: "; + } } -- GitLab