Skip to content
Snippets Groups Projects
Commit 76593d67 authored by Lucas Hottin's avatar Lucas Hottin
Browse files

tp done

parent 6001e98c
No related branches found
No related tags found
No related merge requests found
......@@ -72,6 +72,7 @@
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
......
......@@ -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.
......@@ -58,7 +58,7 @@ public class Main {
public static void main(String[] args) throws IOException {
final HttpServer server = startServer();
System.out.println(String.format("Jersey app started with WADL available at "
+ "%sapplication.wadl\nHit enter to stop it...", BASE_URI));
+ "%s\nHit enter to stop it...", BASE_URI));
System.in.read();
server.shutdownNow();
}
......
package fr.ulille.iut.tva.dto;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class InfoDetailsDto {
private double montantTotal;
private double montantTva;
private double somme;
private String tauxLabel;
private double tauxValue;
public InfoDetailsDto(){}
public InfoDetailsDto(double montantTotal, double montantTva, double somme, String tauxLabel, double tauxValue) {
super();
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;
}
}
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());
}
}
\ No newline at end of file
package fr.ulille.iut.tva.ressource;
import java.util.ArrayList;
import java.util.List;
import fr.ulille.iut.tva.dto.InfoDetailsDto;
import fr.ulille.iut.tva.dto.InfoTauxDto;
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") String stringSomme) {
try {
int somme = Integer.parseInt(stringSomme);
return calculTva.calculerMontant(TauxTva.valueOf(niveau.toUpperCase()), somme);
}
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<>();
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 InfoDetailsDto getDetails(@PathParam("taux") String niveau,@QueryParam("somme") String stringSomme){
InfoDetailsDto result = new InfoDetailsDto();
result.setMontantTotal(getMontantTotal(niveau, stringSomme));
result.setMontantTva(getMontantTotal(niveau, stringSomme)-Integer.parseInt(stringSomme));
result.setSomme(Integer.parseInt(stringSomme));
result.setTauxLabel(niveau.toUpperCase());
result.setTauxValue(TauxTva.valueOf(niveau.toUpperCase()).taux);
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment