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..507c5dc 100644 --- a/webclient/yarn.lock +++ b/webclient/yarn.lock @@ -3288,12 +3288,12 @@ cidr-regex@^2.0.10: ip-regex "^2.1.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + version "1.0.6" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.6.tgz#8fe672437d01cd6c4561af5334e0cc50ff1955f7" + integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + safe-buffer "^5.2.1" class-utils@^0.3.5: version "0.3.6" @@ -6259,6 +6259,11 @@ inherits@2.0.1: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= +inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -11298,6 +11303,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-json-stringify@~1: version "1.2.0" resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"