From 80c20c2c857dcd7beb509abe91defe13e4bab8e7 Mon Sep 17 00:00:00 2001
From: Hugo BLANQUART <hugo.blanquart.etu@univ-lille.fr>
Date: Thu, 5 Mar 2020 11:05:53 +0100
Subject: [PATCH] mvn before pizza

---
 .../java/fr/ulille/iut/pizzaland/ApiV1.java   | 35 +++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java
index b565c83..34ff935 100644
--- a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java
+++ b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java
@@ -5,12 +5,43 @@ import org.glassfish.jersey.server.ResourceConfig;
 import java.util.logging.Logger;
 
 import javax.ws.rs.ApplicationPath;
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+import fr.ulille.iut.pizzaland.dao.IngredientDao;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.json.bind.Jsonb;
+import javax.json.bind.JsonbBuilder;
 
 @ApplicationPath("api/v1/")
 public class ApiV1 extends ResourceConfig {
-    private static final Logger LOGGER = Logger.getLogger(ApiV1.class.getName());
+	private static final Logger LOGGER = Logger.getLogger(ApiV1.class.getName());
 
-    public ApiV1() {
+	public ApiV1() {
         packages("fr.ulille.iut.pizzaland");
+        String environment = System.getenv("PIZZAENV");
+
+        if ( environment != null && environment.equals("withdb") ) {
+    	  LOGGER.info("Loading with database");
+          Jsonb jsonb = JsonbBuilder.create();
+          try {
+    	  	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();
+            for ( Ingredient ingredient: ingredients) {
+                 ingredientDao.insert(ingredient.getName());              
+            }
+    	  } catch ( Exception ex ) {
+    		throw new IllegalStateException(ex);
+          }
+        }
+
     }
 }
-- 
GitLab