The service provides an endpoint that will determine, from a set of recipes, what I can have for lunch at a given date, based on my fridge ingredient's expiry date, so that I can quickly decide what I’ll be having to eat, and the ingredients required to prepare the meal.
Note: Docker is used for the local MySQL database instance, feel free to use your own instance or any other SQL database and insert data from lunch-data.sql script
-
Start database:
docker-compose up -d -
Add test data from
sql/lunch-data.sqlto the database. Here's a helper script if you prefer:CONTAINER_ID=$(docker inspect --format="{{.Id}}" lunch-db)docker cp sql/lunch-data.sql $CONTAINER_ID:/lunch-data.sqldocker exec $CONTAINER_ID /bin/sh -c 'mysql -u root -prezdytechtask lunch </lunch-data.sql' -
Run Springboot LunchApplication
-
Moved db access logic to RecipeRepository
-
Added LunchService interface which is implemented by LunchServiceImpl
-
Added error handling code
-
Added unit tests to check Lunch api
-
Extended /lunch/recipes exclusion of ingredients functionality to also has an inclusion option where recipes that contain specified ingredients will be returned - Prudhvi