From ac6256bebc01e96f1c08e18b10a7a27c98e2ca37 Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Mon, 17 May 2021 21:29:13 +0200 Subject: [PATCH] API 1.0.39 internal_name in exercise_tree, training_plan --- build.gradle.kts | 2 +- data/db/update_1_0_39.sql | 17 +++++++++++++++++ .../com/aitrainer/api/model/ExerciseTree.kt | 3 ++- .../com/aitrainer/api/model/TrainingPlan.kt | 2 ++ src/main/resources/application-prod.properties | 2 +- src/main/resources/application.properties | 2 +- .../com/aitrainer/api/test/AppPackageTest.kt | 3 +++ 7 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 data/db/update_1_0_39.sql diff --git a/build.gradle.kts b/build.gradle.kts index e38973b..1d0df3b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } group = "com.aitrainer" -version = "1.0.38" +version = "1.0.39" java.sourceCompatibility = JavaVersion.VERSION_1_8 repositories { diff --git a/data/db/update_1_0_39.sql b/data/db/update_1_0_39.sql new file mode 100644 index 0000000..24c2bb2 --- /dev/null +++ b/data/db/update_1_0_39.sql @@ -0,0 +1,17 @@ +START TRANSACTION; + +ALTER TABLE `exercise_tree` + ADD COLUMN `internal_name` CHAR(50) NULL DEFAULT NULL AFTER `active`; +ALTER TABLE `exercise_tree` + ADD INDEX `internal_name` (`internal_name`); + +ALTER TABLE `training_plan` + ADD COLUMN `internal_name` CHAR(50) NULL DEFAULT NULL AFTER `type`; +ALTER TABLE `training_plan` + ADD COLUMN `free` TINYINT(1) NULL DEFAULT 0 AFTER `internal_name`; +ALTER TABLE `training_plan` + ADD INDEX `internal_name` (`internal_name`); + +UPDATE configuration set config_value = "1.0.39", date_change=CURRENT_DATE WHERE config_key = "db_version"; + +COMMIT; diff --git a/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt index 75be8ec..208d87d 100644 --- a/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt +++ b/src/main/kotlin/com/aitrainer/api/model/ExerciseTree.kt @@ -14,7 +14,8 @@ data class ExerciseTree ( @Expose @get: NotBlank var name: String = "", @Expose @get: NotBlank var description: String = "", @Expose @get: NotBlank var imageUrl: String = "", - @Expose @get: NonNull var active: Boolean? + @Expose @get: NonNull var active: Boolean?, + @Expose var internalName: String?, ) { @OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTree") diff --git a/src/main/kotlin/com/aitrainer/api/model/TrainingPlan.kt b/src/main/kotlin/com/aitrainer/api/model/TrainingPlan.kt index 353087a..730bc4b 100644 --- a/src/main/kotlin/com/aitrainer/api/model/TrainingPlan.kt +++ b/src/main/kotlin/com/aitrainer/api/model/TrainingPlan.kt @@ -13,6 +13,8 @@ data class TrainingPlan ( @Expose @get: NotBlank var name: String = "", @Expose var description: String?, @Expose @get: NotBlank var type: String = "", + @Expose var internalName: String?, + @Expose var free: Boolean?, ) { @OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "trainingPlan") @Fetch(value = FetchMode.SUBSELECT) diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 3e11ba1..c2419c7 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -17,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.38 +application.version=1.0.39 jwt.secret=aitrainer \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 12389d8..c82d29b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -17,7 +17,7 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structure has been changed, increment this version number -application.version=1.0.38 +application.version=1.0.39 jwt.secret=aitrainer jasypt.encryptor.password=Tibor diff --git a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt index 12308ca..6a6ec44 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt @@ -91,6 +91,7 @@ class AppPackageTest { val listExerciseTree: List = gson.fromJson(exerciseTreeJson, type) assertTrue(listExerciseTree.isNotEmpty()) assertEquals(listExerciseTree[1].name, "Strength") + assertEquals(listExerciseTree[6].internalName, "one_rep_max") assertEquals(listExerciseTree[1].translations[0].name, "Erő!") } else if (record[0] == Property::class.simpleName) { val propertyJson: String = record[1] @@ -170,6 +171,8 @@ class AppPackageTest { val plans: List = gson.fromJson(trainingPlanJson, type) assertEquals(plans.size,2) assertEquals(plans[1].name, "Biceps") + assertEquals(plans[1].internalName, "biceps_beginner") + assertEquals(plans[1].free, true) assertEquals(plans[0].details[0].exerciseTypeId, 63) assertEquals(plans[0].details[1].weight, -1.0) }