diff --git a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java index b565c8399d5213fc5b2335568b0224cea580b1e5..34ff93594e2fafb7e191935d7a48968a946e90c1 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); + } + } + } }