Skip to content
Snippets Groups Projects
Commit 8ce6f3a7 authored by Remi Baran's avatar Remi Baran :snowboarder:
Browse files

tp1 fini

parent 1a1387e1
No related branches found
No related tags found
No related merge requests found
<settings>
<proxies>
<proxy>
<id>ulille-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>cache.univ-lille.fr</host>
<port>3128</port>
</proxy>
<proxy>
<id>lille1-proxy-sec</id>
<active>true</active>
<protocol>https</protocol>
<host>cache.univ-lille.fr</host>
<port>3128</port>
</proxy>
</proxies>
</settings>
...@@ -16,7 +16,7 @@ import java.util.logging.Logger; ...@@ -16,7 +16,7 @@ import java.util.logging.Logger;
*/ */
public class Main { public class Main {
// Base URI the Grizzly HTTP server will listen on // 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. * Starts Grizzly HTTP server exposing JAX-RS resources defined in this application.
...@@ -63,4 +63,3 @@ public class Main { ...@@ -63,4 +63,3 @@ public class Main {
server.shutdownNow(); server.shutdownNow();
} }
} }
package fr.ulille.iut.tva.dto;
public class Detaildto {
private double montantTotal;
private double montantTVA;
private double somme;
private String tauxLabel;
private double tauxValue;
public Detaildto(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;
}
}
\ No newline at end of file
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;
}
}
\ No newline at end of file
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").build());
}
}
\ No newline at end of file
package fr.ulille.iut.tva.ressource; package fr.ulille.iut.tva.ressource;
import java.util.ArrayList;
import java.util.List;
import fr.ulille.iut.tva.dto.Detaildto;
import fr.ulille.iut.tva.dto.InfoTauxDto;
import fr.ulille.iut.tva.service.CalculTva; import fr.ulille.iut.tva.service.CalculTva;
import fr.ulille.iut.tva.service.TauxTva; 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 * TvaRessource
*/ */
@Path("tva")
public class TvaRessource { public class TvaRessource {
private CalculTva calculTva = new CalculTva(); 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(@QueryParam("somme") double somme, @PathParam("niveauTva") String niveau) {
try {
return somme * (1 + (TauxTva.valueOf(niveau.toUpperCase()).taux / 100));
} catch (Exception ex) {
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}")
public List<Detaildto> getDetail(@QueryParam("somme") int somme, @PathParam("taux") String niveau) {
double tauxValue = TauxTva.valueOf(niveau.toUpperCase()).taux;
String tauxLabel = niveau.toUpperCase();
double montantTVA = (tauxValue / 100) * somme;
double montantTotal = somme + montantTVA;
List<Detaildto> result = new ArrayList<>();
result.add(new Detaildto(montantTotal, montantTVA, somme, tauxLabel, tauxValue));
return result;
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment