Skip to content
Snippets Groups Projects
Commit 927b45a8 authored by vincent's avatar vincent
Browse files

Implémentation Commande

parent 4989033f
No related branches found
No related tags found
No related merge requests found
package fr.ulille.iut.pizzaland.beans;
import java.util.List;
import fr.ulille.iut.pizzaland.dto.CommandeCreateDto;
import fr.ulille.iut.pizzaland.dto.CommandeDto;
public class Commande {
private long id;
private String nom;
private String prenom;
private List<Pizza> pizzas;
public Commande(String nom, String prenom, List<Pizza> pizzas) {
super();
this.nom = nom;
this.prenom = prenom;
this.pizzas = pizzas;
}
public Commande() {
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public List<Pizza> getPizzas() {
return pizzas;
}
public void setPizzas(List<Pizza> pizzas) {
this.pizzas = pizzas;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public static Commande fromDto(CommandeDto dto) {
Commande c = new Commande();
c.setNom(dto.getNom());
c.setPrenom(dto.getPrenom());
c.setId(dto.getId());
c.setPizzas(dto.getPizzas());
return c;
}
public static CommandeDto toDto(Commande c) {
CommandeDto dto = new CommandeDto();
dto.setNom(c.getNom());
dto.setPrenom(c.getPrenom());
dto.setId(c.getId());
dto.setPizzas(c.getPizzas());
return dto;
}
public static Commande fromCreateDto(CommandeCreateDto dto) {
Commande c = new Commande();
c.setNom(dto.getNom());
c.setPrenom(dto.getPrenom());
c.setPizzas(dto.getPizzas());
return c;
}
}
\ No newline at end of file
package fr.ulille.iut.pizzaland.dao;
import java.util.List;
import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys;
import org.jdbi.v3.sqlobject.statement.SqlQuery;
import org.jdbi.v3.sqlobject.statement.SqlUpdate;
import fr.ulille.iut.pizzaland.BDDFactory;
import fr.ulille.iut.pizzaland.beans.Commande;
import fr.ulille.iut.pizzaland.beans.Pizza;
public interface CommandeDao {
PizzaDao pizzaDao = (PizzaDao) BDDFactory.buildDao(PizzaDao.class);
@SqlUpdate("CREATE TABLE IF NOT EXISTS Commandes (id INTEGER PRIMARY KEY, firstname VARCHAR NOT NULL, lastname VARCHAR NOT NULL)")
public void createTable();
@SqlUpdate("CREATE TABLE IF NOT EXISTS CommandesAndPizzas (pizza INTEGER,"
+ "commande INTEGER,"
+ "PRIMARY KEY(pizza,commande),"
+ "FOREIGN KEY(pizza) REFERENCES Pizzas(id),"
+ "FOREIGN KEY(commande) REFERENCES commandes(id))")
public void createAssociationTable();
public default void createTableAndAss() {
createTable();
createAssociationTable();
}
@SqlUpdate("INSERT INTO commandes (firstname, lastname) VALUES (:nom, :prenom)")
@GetGeneratedKeys
public long insertCommande(String nom, String prenom);
@SqlUpdate("INSERT INTO CommandesAndPizzas VALUES (:pizza, :commande)")
public void associateCommandePizza(long pizza, long commande);
public default long insert(String nom, String prenom, List<Pizza> pizzas) {
long commande = insertCommande(nom,prenom);
for(Pizza p : pizzas) {
associateCommandePizza(p.getId(),commande);
}
return commande;
}
@SqlQuery("SELECT * FROM commandes")
@RegisterBeanMapper(Commande.class)
public List<Commande> getCommandes();
public default List<Commande> getAll(){
List<Commande> commandes = getCommandes();
for(Commande c : commandes) {
c.setPizzas(pizzaDao.getOfCommande(c.getId()));
}
return commandes;
}
}
package fr.ulille.iut.pizzaland.dto;
import java.util.List;
import fr.ulille.iut.pizzaland.beans.Pizza;
public class CommandeCreateDto {
private String nom;
private String prenom;
private List<Pizza> pizzas;
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public List<Pizza> getPizzas() {
return pizzas;
}
public void setPizzas(List<Pizza> pizzas) {
this.pizzas = pizzas;
}
}
package fr.ulille.iut.pizzaland.dto;
import java.util.List;
import fr.ulille.iut.pizzaland.beans.Pizza;
public class CommandeDto {
private long id;
private String nom;
private String prenom;
private List<Pizza> pizzas;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public List<Pizza> getPizzas() {
return pizzas;
}
public void setPizzas(List<Pizza> pizzas) {
this.pizzas = pizzas;
}
}
package fr.ulille.iut.pizzaland.resources;
import java.net.URI;
import java.util.List;
import java.util.stream.Collectors;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import fr.ulille.iut.pizzaland.beans.Commande;
import fr.ulille.iut.pizzaland.dao.CommandeDao;
import fr.ulille.iut.pizzaland.dto.CommandeCreateDto;
import fr.ulille.iut.pizzaland.dto.CommandeDto;
@Path("/commandes")
public class CommandeResource {
private CommandeDao commandes;
@Context
public UriInfo uriInfo;
@GET
public List<CommandeDto> getAll(){
return commandes.getAll().stream().map(Commande::toDto).collect(Collectors.toList());
}
@POST
public Response createCommande(CommandeCreateDto dto) {
/*Commande existing = commandes.findByName(dto.getNom());
if ( existing != null ) {
throw new WebApplicationException(Response.Status.CONFLICT);
}*/
try {
Commande com = Commande.fromCreateDto(dto);
long id = commandes.insert(com.getNom(),com.getPrenom(),com.getPizzas());
com.setId(id);
CommandeDto pDto = Commande.toDto(com);
URI uri = uriInfo.getAbsolutePathBuilder().path("" + id).build();
return Response.created(uri).entity(pDto).build();
}
catch ( Exception e ) {
e.printStackTrace();
throw new WebApplicationException(Response.Status.NOT_ACCEPTABLE);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment