diff --git a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java index 2fd7689ad93685ca2639b65cf71ebbb71b551d8b..c44a1f901571c9157a87be3458038b1b133c73f4 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java +++ b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java @@ -6,6 +6,7 @@ import java.util.logging.Logger; import javax.ws.rs.ApplicationPath; import fr.ulille.iut.pizzaland.beans.Ingredient; +import fr.ulille.iut.pizzaland.beans.Pizza; import fr.ulille.iut.pizzaland.dao.IngredientDao; import fr.ulille.iut.pizzaland.dao.PizzaDao; @@ -33,6 +34,7 @@ public class ApiV1 extends ResourceConfig { FileReader reader = new FileReader( getClass().getClassLoader().getResource("ingredients.json").getFile() ); List<Ingredient> ingredients = JsonbBuilder.create().fromJson(reader, new ArrayList<Ingredient>(){}.getClass().getGenericSuperclass()); + IngredientDao ingredientDao = BDDFactory.buildDao(IngredientDao.class); ingredientDao.dropTable(); ingredientDao.createTable(); @@ -40,7 +42,21 @@ public class ApiV1 extends ResourceConfig { ingredientDao.insert(ingredient.getName()); } + FileReader readerPizza = new FileReader( getClass().getClassLoader().getResource("pizzas.json").getFile() ); + List<Pizza> pizzas= JsonbBuilder.create().fromJson(readerPizza, new ArrayList<Pizza>(){}.getClass().getGenericSuperclass()); PizzaDao pizzaDao = BDDFactory.buildDao(PizzaDao.class); + pizzaDao.dropTablePizza(); + pizzaDao.dropTableAssociations(); + pizzaDao.createTableAndIngredientAssociation(); + for (Pizza pizza : pizzas) { + System.out.println(pizza.getName() + " - " +pizza.getIngredients().toString()); + pizzaDao.insert(pizza.getName()); + for(Ingredient ingredient : pizza.getIngredients()) { + System.out.println(pizza.getId() +"-" +ingredient.getId()); + pizzaDao.insertAssoc(pizza.getId(), ingredient.getId()); + } + + } } catch ( Exception ex ) { diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java index 2961374b67394c2b623dca87ca13d6a116fb4c1c..101c8ba2855dc68b0bbd1c077e60e051af4f6068 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java +++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java @@ -42,7 +42,7 @@ public class Pizza { } public List<Ingredient> getIngredients() { - return ingredient; + return this.ingredient; } public static PizzaDto toDto(Pizza p) { diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java index 2eafe9c662ae186bbbc841620d6dfb357366e0ed..cc7681c2f2c2f6a57e2f9972f1109e24a2ecee76 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java +++ b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java @@ -12,7 +12,7 @@ import fr.ulille.iut.pizzaland.beans.Pizza; public interface PizzaDao { - @SqlUpdate("CREATE TABLE IF NOT EXISTS Pizzas (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL") + @SqlUpdate("CREATE TABLE IF NOT EXISTS Pizzas (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL)") void createPizzaTable(); @SqlUpdate("CREATE TABLE IF NOT EXISTS PizzaIngredientsAssociation(pizza Integer," @@ -23,8 +23,8 @@ public interface PizzaDao { @Transaction default void createTableAndIngredientAssociation() { - createAssociationTable(); createPizzaTable(); + createAssociationTable(); } @@ -50,6 +50,10 @@ public interface PizzaDao { @SqlUpdate("INSERT INTO Pizzas (name) VALUES(:name)") @GetGeneratedKeys long insert(String name); + + @SqlUpdate("INSERT INTO PizzaIngredientsAssociation (pizza,ingredient) VALUES(:pizza,:ingredient)") + @GetGeneratedKeys + long insertAssoc(long pizza,long ingredient); @SqlUpdate("DELETE FROM Pizzas WHERE id = :id") void remove(long id); diff --git a/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java index 891a3c8d84d2b28eba08a3347e7a3fd069d012ba..8d232e0fcba6905aa3eedb05b8cd6869be5a663c 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java +++ b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java @@ -43,7 +43,7 @@ public class PizzaResource { public PizzaResource() { pizzas = BDDFactory.buildDao(PizzaDao.class); - pizzas.createPizzaTable(); + pizzas.createTableAndIngredientAssociation(); } @GET diff --git a/src/main/resources/pizzas.json b/src/main/resources/pizzas.json new file mode 100644 index 0000000000000000000000000000000000000000..d15b1452437c2c835270f7581b83ad680a1fadf1 --- /dev/null +++ b/src/main/resources/pizzas.json @@ -0,0 +1,6 @@ +[ + {"name": "reine","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":3,"name":"champignons" }]}, +{"name": "margarita","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":5,"name":"tomate" }]}, +{"name": "4 fromages","ingredient": [{"id":1,"name":"mozzarella" },{"id":8,"name":"fromage" }]}, +{"name": "pesto","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":6,"name":"merguez" }]} +]