From 680872057741f7de63692d4c874b0430b3c6eedc Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Fri, 29 Jan 2021 22:08:29 +0100 Subject: [PATCH] API 1.0.23 ExerciseTree parent_id delete, kotlin, spring boot 2.4 --- build.gradle.kts | 29 +++++++-------- data/db/install.sql | 37 +++++++++---------- data/db/update_1_0_23.sql | 4 ++ gradle/wrapper/gradle-wrapper.properties | 2 +- .../com/aitrainer/api/model/ExerciseTree.kt | 1 - .../kotlin/com/aitrainer/api/model/User.kt | 3 +- src/main/resources/application-dev.properties | 3 +- .../resources/application-prod.properties | 5 ++- .../resources/application-test.properties | 1 + .../resources/application-testmac.properties | 3 +- src/main/resources/application.properties | 5 ++- .../api/test/ExerciseTreeParentsTest.kt | 6 +-- .../aitrainer/api/test/ExerciseTreeTest.kt | 2 +- 13 files changed, 51 insertions(+), 50 deletions(-) create mode 100644 data/db/update_1_0_23.sql diff --git a/build.gradle.kts b/build.gradle.kts index bb36e79..a337be6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,16 +2,16 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id("org.springframework.boot") version "2.3.0.RELEASE" - id("io.spring.dependency-management") version "1.0.9.RELEASE" - kotlin("jvm") version "1.3.72" - kotlin("plugin.spring") version "1.3.72" - kotlin("plugin.jpa") version "1.3.72" - kotlin("plugin.serialization") version "1.3.70" + id("org.springframework.boot") version "2.4.2" + id("io.spring.dependency-management") version "1.0.10.RELEASE" + kotlin("jvm") version "1.4.21" + kotlin("plugin.spring") version "1.4.30-RC" + kotlin("plugin.jpa") version "1.4.30-RC" + kotlin("plugin.serialization") version "1.4.30-RC" } group = "com.aitrainer" -version = "1.0.22" +version = "1.0.23" java.sourceCompatibility = JavaVersion.VERSION_1_8 repositories { @@ -24,25 +24,24 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-aop") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-security") - implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.3.0.RELEASE") + implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.4.2") implementation("org.springframework.security.oauth:spring-security-oauth2:2.5.0.RELEASE") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - implementation("org.apache.logging.log4j:log4j-core:2.13.3") - implementation("org.apache.logging.log4j:log4j-api:2.13.3") + implementation("org.apache.logging.log4j:log4j-core:2.14.0") + implementation("org.apache.logging.log4j:log4j-api:2.14.0") implementation("org.slf4j:slf4j-api:1.7.30") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0") // JVM dependency + implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:1.0-M1-1.4.0-rc") // JVM dependency implementation("io.jsonwebtoken:jjwt:0.9.1") - - + implementation("org.yaml:snakeyaml:1.27") runtimeOnly("mysql:mysql-connector-java") testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude(group = "org.junit.vintage", module = "junit-vintage-engine") } - testImplementation("junit:junit:4.13") - testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.3.72") + testImplementation("junit:junit:4.13.1") + testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.4.30-RC") } diff --git a/data/db/install.sql b/data/db/install.sql index 8e26823..2019de0 100644 --- a/data/db/install.sql +++ b/data/db/install.sql @@ -580,7 +580,6 @@ REPLACE INTO `exercise_plan_translation` (`translation_id`, `language_code`, `na -- Struktúra mentése tábla aitrainer2. exercise_tree CREATE TABLE IF NOT EXISTS `exercise_tree` ( `tree_id` int(11) NOT NULL AUTO_INCREMENT, - `parent_id` int(11) NOT NULL DEFAULT 0, `name` char(50) DEFAULT NULL, `image_url` char(200) DEFAULT NULL, `active` tinyint(1) DEFAULT 1, @@ -589,24 +588,24 @@ CREATE TABLE IF NOT EXISTS `exercise_tree` ( ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4; -- Tábla adatainak mentése aitrainer2.exercise_tree: ~3 rows (hozzávetőleg) -REPLACE INTO `exercise_tree` (`tree_id`, `parent_id`, `name`, `image_url`, `active`) VALUES -(3, 0, 'Cardio', 'images/1.cardio.png', 1), -(4, 0, 'Strength', 'images/2.strength.png', 1), -(5, 0, 'Body Compositions', 'images/3.bcs1.png', 1), -(7, 3, 'Aerob', 'images/1.1.aerob.png', 1), -(8, 3, 'Anaerob', 'images/1.2.anaerob.png', 1), -(9, 4, 'One Rep Max', 'images/2.2.1.1RM.png', 1), -(10, 4, 'Endurance', 'images/2.1.endurance.png', 1), -(11, 5, 'BMI', 'images/3.1.BMI.png', 0), -(12, 5, 'BMR', 'images/3.2.BMR.png', 0), -(13, 5, 'Sizes', 'images/3.3.sizes.png', 0), -(14, 9, 'Chest', 'images/2.2.1.1.chestpress.png', 1), -(15, 9, 'Biceps', 'images/2.2.1.3.biceps.png', 1), -(16, 9, 'Triceps', 'images/2.2.1.4.triceps.png', 1), -(17, 9, 'Shoulders', 'images/2.2.1.5.shoulders.png', 1), -(18, 9, 'Thigh', 'images/2.1.4.squats.png', 1), -(19, 9, 'Calf', 'images/2.1.4.squats.png', 1), -(20, 9, 'Back', 'images/2.2.1.5.shoulders.png', 1); +REPLACE INTO `exercise_tree` (`tree_id`, `name`, `image_url`, `active`) VALUES +(3, 'Cardio', 'images/1.cardio.png', 1), +(4, 'Strength', 'images/2.strength.png', 1), +(5, 'Body Compositions', 'images/3.bcs1.png', 1), +(7, 'Aerob', 'images/1.1.aerob.png', 1), +(8, 'Anaerob', 'images/1.2.anaerob.png', 1), +(9, 'One Rep Max', 'images/2.2.1.1RM.png', 1), +(10, 'Endurance', 'images/2.1.endurance.png', 1), +(11, 'BMI', 'images/3.1.BMI.png', 0), +(12, 'BMR', 'images/3.2.BMR.png', 0), +(13, 'Sizes', 'images/3.3.sizes.png', 0), +(14, 'Chest', 'images/2.2.1.1.chestpress.png', 1), +(15, 'Biceps', 'images/2.2.1.3.biceps.png', 1), +(16, 'Triceps', 'images/2.2.1.4.triceps.png', 1), +(17, 'Shoulders', 'images/2.2.1.5.shoulders.png', 1), +(18, 'Thigh', 'images/2.1.4.squats.png', 1), +(19, 'Calf', 'images/2.1.4.squats.png', 1), +(20, 'Back', 'images/2.2.1.5.shoulders.png', 1); CREATE TABLE IF NOT EXISTS `exercise_tree_parents` ( `exercise_tree_parents_id` int(10) unsigned NOT NULL AUTO_INCREMENT, diff --git a/data/db/update_1_0_23.sql b/data/db/update_1_0_23.sql new file mode 100644 index 0000000..e7dee47 --- /dev/null +++ b/data/db/update_1_0_23.sql @@ -0,0 +1,4 @@ +ALTER TABLE `exercise_tree` + DROP COLUMN `parent_id`; + +UPDATE configuration set config_value = "1.0.23", date_change=CURRENT_DATE WHERE config_key = "db_version"; \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c6b040f..9543e93 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt index d169fe7..8b8ac07 100644 --- a/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt +++ b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt @@ -13,7 +13,6 @@ data class ExerciseTree ( @GeneratedValue(strategy = GenerationType.IDENTITY) val treeId: Long = 0, - @get: NonNull var parentId: Int, @get: NotBlank var name: String = "", @get: NotBlank var imageUrl: String = "", @get: NonNull var active: Boolean? diff --git a/src/main/kotlin/com/aitrainer/api/model/User.kt b/src/main/kotlin/com/aitrainer/api/model/User.kt index d2462ac..0ac58ab 100644 --- a/src/main/kotlin/com/aitrainer/api/model/User.kt +++ b/src/main/kotlin/com/aitrainer/api/model/User.kt @@ -9,8 +9,7 @@ data class User ( var password: String = "", var firebaseUid: String = "" ) { - @OptIn(UnstableDefault::class) fun fromJson(json: String): User { - return Json.parse(serializer(), json) + return Json.decodeFromString(serializer(), json) } } \ No newline at end of file diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 7c6d2c4..292283c 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -1,4 +1,5 @@ -spring.profiles.active=dev +spring.config.activate.on-profile=dev +spring.config.use-legacy-processing = true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer2?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 7845b23..99ee71f 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,4 +1,5 @@ -spring.profiles.active=prod +spring.config.activate.on-profile=prod +spring.config.use-legacy-processing = true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) spring.datasource.url = jdbc:mysql://62.171.188.119:33060/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true spring.datasource.username = aitrainer @@ -16,6 +17,6 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structure has been changed, increment this version number -application.version=1.0.22 +application.version=1.0.23 jwt.secret=aitrainer \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index def8592..65acf1b 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1,4 +1,5 @@ spring.profiles.active=test +spring.config.use-legacy-processing = true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false spring.datasource.url = jdbc:mysql://mysql:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true diff --git a/src/main/resources/application-testmac.properties b/src/main/resources/application-testmac.properties index a81ef39..5d1612c 100644 --- a/src/main/resources/application-testmac.properties +++ b/src/main/resources/application-testmac.properties @@ -1,4 +1,5 @@ -spring.profiles.active=testmac +spring.config.activate.on-profile=testmac +spring.config.use-legacy-processing = true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false spring.datasource.url = jdbc:mysql://127.0.0.1:3306/aitrainer2?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1442a64..7158a51 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,5 @@ -spring.profiles.active=dev,test,prod,prodtest +#spring.config.activate.on-profile=dev,test,prod,prodtest +spring.config.use-legacy-processing = true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer2?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true @@ -16,6 +17,6 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structure has been changed, increment this version number -application.version=1.0.22 +application.version=1.0.23 jwt.secret=aitrainer \ No newline at end of file diff --git a/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeParentsTest.kt b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeParentsTest.kt index d9521ac..6ec1ec3 100644 --- a/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeParentsTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeParentsTest.kt @@ -1,12 +1,8 @@ package com.aitrainer.api.test - -import com.aitrainer.api.controller.ExerciseTreeController import com.aitrainer.api.controller.ExerciseTreeParentsController -import com.aitrainer.api.model.ExerciseTree import com.aitrainer.api.model.ExerciseTreeParents import com.aitrainer.api.repository.ExerciseTreeParentsRepository -import com.aitrainer.api.repository.ExerciseTreeRepository import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest @@ -39,7 +35,7 @@ class ExerciseTreeParentsTest { assertTrue(responseEntity.body!!.isNotEmpty()) val exerciseTreeParentList = responseEntity.body!! - assertEquals(exerciseTreeParentList.size, 27) + assertEquals(exerciseTreeParentList.size, 17) assertEquals(exerciseTreeParentList[4].exerciseTreeParentId, 3) assertEquals(exerciseTreeParentList[4].exerciseTreeChildId, 7) diff --git a/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt index c37e6e5..72b5f2a 100644 --- a/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/ExerciseTreeTest.kt @@ -27,6 +27,6 @@ class ExerciseTreeTest { val exerciseTreeItem = responseEntity.body!![0] assertEquals(exerciseTreeItem.name, "Cardio") - assertEquals(responseEntity.body!![1].translations[0].name, "Erő") + assertEquals(responseEntity.body!![1].translations[0].name, "Erő!") } } \ No newline at end of file