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/package.json b/webclient/package.json index 88e5362..1075fe5 100644 --- a/webclient/package.json +++ b/webclient/package.json @@ -8,7 +8,7 @@ "bluebird": "^3.5.4", "i": "^0.3.6", "jwt-decode": "^2.2.0", - "lodash": "^4.17.11", + "lodash": "^4.17.21", "moment": "^2.24.0", "npm": "^6.9.0", "query-string": "^6.5.0", diff --git a/webclient/yarn.lock b/webclient/yarn.lock index 32bfca4..8f0010c 100644 --- a/webclient/yarn.lock +++ b/webclient/yarn.lock @@ -7938,10 +7938,10 @@ lodash.without@~4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.4.1: version "1.6.1"