Skip to content
Snippets Groups Projects
Commit bbbf24be authored by Julien Lalloyer's avatar Julien Lalloyer
Browse files

Fin du TP 4

parent 1a1387e1
No related branches found
No related tags found
No related merge requests found
......@@ -66,7 +66,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.9.0</version>
<version>3.8.1</version>
<inherited>true</inherited>
<configuration>
<release>11</release>
......
......@@ -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.
......
package fr.ulille.iut.tva.dto;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Detaildto {
private double montantTT;
private double montantTva;
private double somme;
private String taux;
private double tauxV;
public Detaildto() {}
public Detaildto(String taux, double tauxV, double montantTT, double montantTva, double somme) {
this.montantTT = montantTT;
this.taux = taux;
this.montantTva = montantTva;
this.somme = somme;
this.tauxV = tauxV;
}
public double getMontantTT() {
return montantTT;
}
public void setMontantTT(double montantTT) {
this.montantTT = montantTT;
}
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 getTaux() {
return taux;
}
public void setTaux(String taux) {
this.taux = taux;
}
public double getTauxV() {
return tauxV;
}
public void setTauxV(double tauxV) {
this.tauxV = tauxV;
}
}
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;
}
}
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());
}
}
package fr.ulille.iut.tva.ressource;
import fr.ulille.iut.tva.dto.Detaildto;
import fr.ulille.iut.tva.dto.InfoTauxDto;
import java.util.*;
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(@QueryParam("somme") double somme, @PathParam("niveauTva") String niveau) {
try {
return somme + (somme * (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}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Detaildto> getDetail(@PathParam("taux") String niveau,@QueryParam("somme") int somme) {
double tauxV = TauxTva.valueOf(niveau.toUpperCase()).taux;
String taux = niveau.toUpperCase();
double montantTva = (somme*(tauxV/100));
double montantTotal = somme + montantTva;
List<Detaildto> result = new ArrayList<>();
result.add(new Detaildto(taux, tauxV, montantTotal, montantTva, somme));
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment