diff --git a/webapi/Dockerfile b/webapi/Dockerfile index 6972a5d..426b5bc 100644 --- a/webapi/Dockerfile +++ b/webapi/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11.0.3-jre-stretch +FROM amazoncorretto:16.0.1-alpine MAINTAINER Hung Tran VOLUME /tmp ARG JAR_FILE diff --git a/webapi/pom.xml b/webapi/pom.xml index 7fa13e0..e67cc02 100644 --- a/webapi/pom.xml +++ b/webapi/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.3.1.RELEASE + 2.4.5 com.mealtracker @@ -15,7 +15,7 @@ One stop solution to keep track of your meals - 11 + 15 1.4.13 @@ -71,10 +71,22 @@ test + + org.junit.vintage + junit-vintage-engine + test + + + org.hamcrest + hamcrest-core + + + + org.testcontainers mysql - 1.14.3 + 1.15.3 test diff --git a/webapi/src/integration-test/resources/application-test.yml b/webapi/src/integration-test/resources/application-test.yml index b587521..1169a75 100644 --- a/webapi/src/integration-test/resources/application-test.yml +++ b/webapi/src/integration-test/resources/application-test.yml @@ -3,3 +3,10 @@ spring: url: ${DB_URL} username: ${DB_USERNAME} password: ${DB_PASSWORD} + +logging: + level: + org.hibernate.SQL: OFF + org.hibernate.type: OFF + org.springframework: + test.context.jdbc.SqlScriptsTestExecutionListener: DEBUG \ No newline at end of file diff --git a/webapi/src/main/java/com/mealtracker/config/JpaConfig.java b/webapi/src/main/java/com/mealtracker/config/JpaConfig.java index aab910e..dcbbefb 100644 --- a/webapi/src/main/java/com/mealtracker/config/JpaConfig.java +++ b/webapi/src/main/java/com/mealtracker/config/JpaConfig.java @@ -3,12 +3,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableAutoConfiguration -@EntityScan(basePackages = {"com.mealtracker.domains"}) +@EntityScan(basePackages = {"com.mealtracker.domains"}, basePackageClasses = { Jsr310JpaConverters.class }) @EnableJpaRepositories(basePackages = {"com.mealtracker.repositories"}) @EnableTransactionManagement public class JpaConfig { diff --git a/webapi/src/main/java/com/mealtracker/domains/Meal.java b/webapi/src/main/java/com/mealtracker/domains/Meal.java index 7f3f13e..654d2e0 100644 --- a/webapi/src/main/java/com/mealtracker/domains/Meal.java +++ b/webapi/src/main/java/com/mealtracker/domains/Meal.java @@ -30,10 +30,10 @@ public class Meal implements Ownable { @Column(name = "name") private String name; - @Column(name = "consumed_date", nullable = false) + @Column(name = "consumed_date", nullable = false, columnDefinition = "DATE") private LocalDate consumedDate; - @Column(name = "consumed_time", nullable = false) + @Column(name = "consumed_time", nullable = false, columnDefinition = "TIME") private LocalTime consumedTime; @Column(name = "calories", nullable = false) diff --git a/webapi/src/main/java/com/mealtracker/repositories/MealRepository.java b/webapi/src/main/java/com/mealtracker/repositories/MealRepository.java index a93744c..3026065 100644 --- a/webapi/src/main/java/com/mealtracker/repositories/MealRepository.java +++ b/webapi/src/main/java/com/mealtracker/repositories/MealRepository.java @@ -25,7 +25,7 @@ public interface MealRepository extends PagingAndSortingRepository { List findMealByConsumedDateAndConsumerAndDeleted(LocalDate date, User consumer, boolean deleted); - @Query("SELECT meal FROM Meal meal WHERE meal.consumer.id = :consumerId AND deleted = false " + + @Query("SELECT meal FROM Meal meal WHERE meal.consumer.id = :consumerId AND meal.deleted = false " + "AND (:fromDate IS NULL OR :fromDate <= meal.consumedDate) " + "AND (:toDate IS NULL OR :toDate > meal.consumedDate) " + "AND (:fromTime IS NULL OR :fromTime <= meal.consumedTime) " + @@ -37,7 +37,6 @@ Page filterMyMeals(@Param("consumerId") long consumerId, @Param("toTime") LocalTime toTime, Pageable pageable); - @EntityGraph(value = "Meal.consumer", type = EntityGraph.EntityGraphType.LOAD) @Query("SELECT meal FROM Meal meal JOIN meal.consumer consumer " + "WHERE meal.deleted = false AND consumer.deleted = false AND meal.id = :mealId " + diff --git a/webclient/yarn.lock b/webclient/yarn.lock index 32bfca4..68a314b 100644 --- a/webclient/yarn.lock +++ b/webclient/yarn.lock @@ -7299,9 +7299,9 @@ js-tokens@^3.0.2: integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.0: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0"