diff --git a/build.gradle.kts b/build.gradle.kts index 3b7b31c..79bd81b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } group = "com.aitrainer" -version = "1.2.4" +version = "1.2.5" java.sourceCompatibility = JavaVersion.VERSION_17 repositories { @@ -26,7 +26,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") - implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.6.8") + implementation(dependencyNotation = "org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.6.8") implementation("org.springframework.security.oauth:spring-security-oauth2:2.5.2.RELEASE") implementation("javax.validation:validation-api:2.0.1.Final") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") @@ -38,7 +38,7 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1") implementation("io.jsonwebtoken:jjwt:0.9.1") - implementation("org.yaml:snakeyaml:1.33") + implementation("org.yaml:snakeyaml:2.0") implementation("com.google.code.gson:gson:2.10.1") implementation("org.json:json:20220924") diff --git a/data/db/update_1_2_5.sql b/data/db/update_1_2_5.sql new file mode 100644 index 0000000..5b51be0 --- /dev/null +++ b/data/db/update_1_2_5.sql @@ -0,0 +1,24 @@ +START TRANSACTION; + +DROP TABLE `diet_user_sensitivity`; +DROP TABLE `diet_sensitivity`; + +CREATE TABLE `diet_preference` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `type` CHAR(50) NULL DEFAULT NULL COLLATE 'utf8_hungarian_ci', + `preference` CHAR(100) NOT NULL DEFAULT '' COLLATE 'utf8_hungarian_ci', + PRIMARY KEY (`id`) USING BTREE +) +COLLATE='utf8_hungarian_ci' +ENGINE=InnoDB +; + +ALTER TABLE `diet_user_preference` + CHANGE COLUMN `raw_material_id` `diet_preference_id` INT(11) NULL DEFAULT '0' AFTER `diet_user_id`, + ADD COLUMN `preference` CHAR(100) NULL DEFAULT NULL AFTER `diet_preference_id`, + ADD COLUMN `preference_type` CHAR(50) NULL DEFAULT NULL AFTER `preference`, + DROP COLUMN `temperature`; + +UPDATE configuration set config_value = "1.2.5", date_change=CURRENT_DATE WHERE config_key = "db_version"; + +COMMIT; \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/controller/CustomerPackageController.kt b/src/main/kotlin/com/aitrainer/api/controller/CustomerPackageController.kt index 7346b92..b156522 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/CustomerPackageController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/CustomerPackageController.kt @@ -14,21 +14,20 @@ import org.springframework.web.bind.annotation.RestController @RestController @RequestMapping("/api") -class CustomerPackageController( private val customerRepository: CustomerRepository, - private val customerExerciseDeviceRepository: CustomerExerciseDeviceRepository, - private val exercisesRepository: ExercisesRepository, - private val purchaseRepository: PurchaseRepository, - private val customerPropertyRepository: CustomerPropertyRepository, - private val exerciseResultRepository: ExerciseResultRepository, - private val customerActivityRepository: CustomerActivityRepository, - private val customerTrainingPlanRepository: CustomerTrainingPlanRepository, - private val customerMembership: CustomerMembershipRepository, - private val dietRepository: DietRepository, - private val dietUserConsumptionRepository: DietUserConsumptionRepository, - private val dietUserRepository: DietUserRepository, - private val dietUserPreferenceRepository: DietUserPreferenceRepository, - private val dietUserSensitivityRepository: DietUserSensitivityRepository, - private val customerConversationRepository: CustomerConversationRepository +class CustomerPackageController(private val customerRepository: CustomerRepository, + private val customerExerciseDeviceRepository: CustomerExerciseDeviceRepository, + private val exercisesRepository: ExercisesRepository, + private val purchaseRepository: PurchaseRepository, + private val customerPropertyRepository: CustomerPropertyRepository, + private val exerciseResultRepository: ExerciseResultRepository, + private val customerActivityRepository: CustomerActivityRepository, + private val customerTrainingPlanRepository: CustomerTrainingPlanRepository, + private val customerMembership: CustomerMembershipRepository, + private val dietRepository: DietRepository, + private val dietUserConsumptionRepository: DietUserConsumptionRepository, + private val dietUserRepository: DietUserRepository, + private val dietUserPreferenceRepository: DietUserPreferenceRepository, + private val customerConversationRepository: CustomerConversationRepository ) { @@ -62,9 +61,6 @@ class CustomerPackageController( private val customerRepository: CustomerReposit val listDietUserPreference = dietUserPreferenceRepository.findByDietUserId(dietUserId) val listDietUserPreferenceJson = gson.toJson(listDietUserPreference) - val listDietUserSensitivity = dietUserSensitivityRepository.findByDietUserId(dietUserId) - val listDietUserSensitivityJson = gson.toJson(listDietUserSensitivity) - val listCustomerConversation = customerConversationRepository.findByCustomerId(customerId) val listCustomerConversationJson = gson.toJson(listCustomerConversation) @@ -74,7 +70,6 @@ class CustomerPackageController( private val customerRepository: CustomerReposit "|||" + getClassRecord(Diet::class.simpleName, listDietJson) + "|||" + getClassRecord(DietUserConsumption::class.simpleName, listDietUserConsumptionJson) + "|||" + getClassRecord(DietUserPreference::class.simpleName, listDietUserPreferenceJson) + - "|||" + getClassRecord(DietUserSensitivity::class.simpleName, listDietUserSensitivityJson) + "|||" + getClassRecord(CustomerConversation::class.simpleName, listCustomerConversationJson) return if (packageJson.isEmpty()) ResponseEntity.notFound().build() else diff --git a/src/main/kotlin/com/aitrainer/api/controller/PackageController.kt b/src/main/kotlin/com/aitrainer/api/controller/PackageController.kt index 2166d23..0da5ffb 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/PackageController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/PackageController.kt @@ -1,7 +1,7 @@ package com.aitrainer.api.controller import com.aitrainer.api.model.* -import com.aitrainer.api.model.diet.DietSensitivity +import com.aitrainer.api.model.diet.DietPreference import com.aitrainer.api.model.diet.Meal import com.aitrainer.api.model.diet.Recipe import com.aitrainer.api.model.diet.Store @@ -38,7 +38,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe private val storeRepository: StoreRepository, private val recipeRepository: RecipeRepository, private val mealRepository: MealRepository, - private val dietSensitivityRepository: DietSensitivityRepository + private val dietPreferenceRepository: DietPreferenceRepository ) { @GetMapping("/diet_package", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"]) @@ -63,7 +63,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe val listRawMaterial = mealRepository.findAll() val listRawMaterialJson = gson.toJson(listRawMaterial) - val listDietSensitivity = dietSensitivityRepository.findAll() + val listDietSensitivity = dietPreferenceRepository.findAll() val listDietSensitivityJson = gson.toJson(listDietSensitivity) val listAppText = appTextRepository.findAllWithTranslation() @@ -75,7 +75,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe "|||" + getClassRecord(Store::class.simpleName, listStoreJson) + "|||" + getClassRecord(Recipe::class.simpleName, listRecipeJson) + "|||" + getClassRecord(Meal::class.simpleName, listRawMaterialJson) + - "|||" + getClassRecord(DietSensitivity::class.simpleName, listDietSensitivityJson) + + "|||" + getClassRecord(DietPreference::class.simpleName, listDietSensitivityJson) + "|||" + getClassRecord(AppText::class.simpleName, listAppTextJson) return if (packageJson.isEmpty()) ResponseEntity.notFound().build() else diff --git a/src/main/kotlin/com/aitrainer/api/controller/diet/DietSensitivityController.kt b/src/main/kotlin/com/aitrainer/api/controller/diet/DietSensitivityController.kt deleted file mode 100644 index 1e98809..0000000 --- a/src/main/kotlin/com/aitrainer/api/controller/diet/DietSensitivityController.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.aitrainer.api.controller.diet - -import com.aitrainer.api.model.diet.DietSensitivity -import com.aitrainer.api.repository.diet.DietSensitivityRepository -import org.springframework.http.ResponseEntity -import org.springframework.web.bind.annotation.* - -@RestController -@RequestMapping("api") -class DietSensitivityController(private val dietSensitivityRepository: DietSensitivityRepository) { - - @PostMapping ("/diet_sensitivity") - fun insert(@RequestBody dietSensitivity: DietSensitivity): ResponseEntity { - val newDietSensitivity = dietSensitivityRepository.save(dietSensitivity) - return ResponseEntity.ok().body(newDietSensitivity) - } - - @GetMapping("/diet_sensitivity") - fun getAll(): ResponseEntity> { - val list = dietSensitivityRepository.findAll() - return if (list.isEmpty()) ResponseEntity.notFound().build() else - ResponseEntity.ok().body(list) - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserPreferenceController.kt b/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserPreferenceController.kt index 6d9b30c..7ac00b4 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserPreferenceController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserPreferenceController.kt @@ -22,4 +22,16 @@ class DietUserPreferenceController(private val dietUserPreferenceRepository: Die return if (list.isEmpty()) ResponseEntity.notFound().build() else ResponseEntity.ok().body(list) } + + @GetMapping("/diet_user_preference/preference/{dietPreferenceId}") + fun getByDietPreferenceIdId(@PathVariable dietPreferenceId: Long): ResponseEntity> { + val list = dietUserPreferenceRepository.findByDietPreferenceId(dietPreferenceId) + return if (list.isEmpty()) ResponseEntity.notFound().build() else + ResponseEntity.ok().body(list) + } + + @PostMapping("/diet_user_preference/delete", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"]) + fun delete(@RequestBody dietUserPreference: DietUserPreference): ResponseEntity<*> { + return ResponseEntity.ok().body(dietUserPreferenceRepository.delete(dietUserPreference)) + } } \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserSensitivityController.kt b/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserSensitivityController.kt deleted file mode 100644 index fa09acf..0000000 --- a/src/main/kotlin/com/aitrainer/api/controller/diet/DietUserSensitivityController.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.aitrainer.api.controller.diet - -import com.aitrainer.api.model.diet.DietUserSensitivity -import com.aitrainer.api.repository.diet.DietUserSensitivityRepository -import org.springframework.http.MediaType -import org.springframework.http.ResponseEntity -import org.springframework.web.bind.annotation.* -import java.util.* - -@RestController -@RequestMapping("/api") -class DietUserSensitivityController(private val dietUserSensitivityRepository: DietUserSensitivityRepository) { - - @PostMapping("/diet_user_sensitivity", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"]) - fun insert(@RequestBody dietUserSensitivity: DietUserSensitivity): ResponseEntity<*> { - return ResponseEntity.ok().body(dietUserSensitivityRepository.save(dietUserSensitivity)) - } - - @GetMapping("/diet_user_sensitivity/{dietUserId}") - fun getByDietUserId(@PathVariable dietUserId: Long): ResponseEntity> { - val list = dietUserSensitivityRepository.findByDietUserId(dietUserId) - return if (list.isEmpty()) ResponseEntity.notFound().build() else - ResponseEntity.ok().body(list) - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/model/diet/DietSensitivity.kt b/src/main/kotlin/com/aitrainer/api/model/diet/DietPreference.kt similarity index 73% rename from src/main/kotlin/com/aitrainer/api/model/diet/DietSensitivity.kt rename to src/main/kotlin/com/aitrainer/api/model/diet/DietPreference.kt index 4327488..96f8b9b 100644 --- a/src/main/kotlin/com/aitrainer/api/model/diet/DietSensitivity.kt +++ b/src/main/kotlin/com/aitrainer/api/model/diet/DietPreference.kt @@ -8,7 +8,8 @@ import jakarta.persistence.Id import javax.validation.constraints.NotNull @Entity -data class DietSensitivity( +data class DietPreference( @Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0, - @Expose @get: NotNull val name: String = "", + @Expose @get: NotNull val type: String = "", + @Expose @get: NotNull val preference: String = "", ) \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/model/diet/DietUserPreference.kt b/src/main/kotlin/com/aitrainer/api/model/diet/DietUserPreference.kt index a66d8c2..2c3cf54 100644 --- a/src/main/kotlin/com/aitrainer/api/model/diet/DietUserPreference.kt +++ b/src/main/kotlin/com/aitrainer/api/model/diet/DietUserPreference.kt @@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull data class DietUserPreference( @Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0, @Expose @get: NotNull val dietUserId: Long = 0, - @Expose @get: NotNull val rawMaterialId: Long = 0, - @Expose @get: NotNull val temperature: Byte = 0, + @Expose @get: NotNull val dietPreferenceId: Long = 0, + @Expose @get: NotNull val preference: String = "", + @Expose @get: NotNull val preferenceType: String = "", ) \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/model/diet/DietUserSensitivity.kt b/src/main/kotlin/com/aitrainer/api/model/diet/DietUserSensitivity.kt deleted file mode 100644 index d9aa84c..0000000 --- a/src/main/kotlin/com/aitrainer/api/model/diet/DietUserSensitivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.aitrainer.api.model.diet - -import com.google.gson.annotations.Expose -import jakarta.persistence.Entity -import jakarta.persistence.GeneratedValue -import jakarta.persistence.GenerationType -import jakarta.persistence.Id -import javax.validation.constraints.NotNull - -@Entity -data class DietUserSensitivity( - @Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0, - @Expose @get: NotNull val dietUserId: Long = 0, - @Expose @get: NotNull val sensitivityId: Long = 0, -) \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/repository/diet/DietPreferenceRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/diet/DietPreferenceRepository.kt new file mode 100644 index 0000000..69b4c73 --- /dev/null +++ b/src/main/kotlin/com/aitrainer/api/repository/diet/DietPreferenceRepository.kt @@ -0,0 +1,6 @@ +package com.aitrainer.api.repository.diet + +import com.aitrainer.api.model.diet.DietPreference +import org.springframework.data.jpa.repository.JpaRepository + +interface DietPreferenceRepository : JpaRepository diff --git a/src/main/kotlin/com/aitrainer/api/repository/diet/DietSensitivityRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/diet/DietSensitivityRepository.kt deleted file mode 100644 index e4f3da6..0000000 --- a/src/main/kotlin/com/aitrainer/api/repository/diet/DietSensitivityRepository.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.aitrainer.api.repository.diet - -import com.aitrainer.api.model.diet.DietSensitivity -import org.springframework.data.jpa.repository.JpaRepository - -interface DietSensitivityRepository : JpaRepository diff --git a/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserPreferenceRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserPreferenceRepository.kt index aaa7fe9..b9f2f72 100644 --- a/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserPreferenceRepository.kt +++ b/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserPreferenceRepository.kt @@ -7,4 +7,6 @@ import org.springframework.stereotype.Repository @Repository interface DietUserPreferenceRepository : JpaRepository { fun findByDietUserId(dietUserId: Long): List + + fun findByDietPreferenceId(dietPreferenceId: Long): List } \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserSensitivityRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserSensitivityRepository.kt deleted file mode 100644 index 326a589..0000000 --- a/src/main/kotlin/com/aitrainer/api/repository/diet/DietUserSensitivityRepository.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.aitrainer.api.repository.diet - -import com.aitrainer.api.model.diet.DietUserSensitivity -import org.springframework.data.jpa.repository.JpaRepository -import org.springframework.stereotype.Repository - -@Repository -interface DietUserSensitivityRepository : JpaRepository { - fun findByDietUserId(dietUserId: Long): List -} \ No newline at end of file diff --git a/src/main/resources/application-diet.properties b/src/main/resources/application-diet.properties index a944db4..1410b00 100644 --- a/src/main/resources/application-diet.properties +++ b/src/main/resources/application-diet.properties @@ -16,7 +16,7 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structure has been changed, increment this version number -application.version=1.2.4 +application.version=1.2.5 jwt.secret=aitrainer diff --git a/src/main/resources/application-dietprod.properties b/src/main/resources/application-dietprod.properties index 994ee43..e58bb77 100644 --- a/src/main/resources/application-dietprod.properties +++ b/src/main/resources/application-dietprod.properties @@ -14,7 +14,7 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structue has been changed, increment this version number -application.version=1.2.4 +application.version=1.2.5 jwt.secret=aitrainer diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 1efc85d..763dd38 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -14,7 +14,7 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structue has been changed, increment this version number -application.version=1.2.4 +application.version=1.2.5 jwt.secret=aitrainer diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8ce3903..8944be4 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.2.4 +application.version=1.2.5 jwt.secret=aitrainer diff --git a/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt b/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt index e5c606f..dd172ff 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt @@ -59,9 +59,6 @@ class AppCustomerPackageTest { @Autowired private lateinit var dietUserPreferenceRepository: DietUserPreferenceRepository - @Autowired - private lateinit var dietUserSensitivityRepository: DietUserSensitivityRepository - @Autowired private lateinit var customerConversationRepository: CustomerConversationRepository @@ -83,7 +80,6 @@ class AppCustomerPackageTest { dietUserConsumptionRepository, dietUserRepository, dietUserPreferenceRepository, - dietUserSensitivityRepository, customerConversationRepository ) @@ -130,15 +126,8 @@ class AppCustomerPackageTest { val type = object : TypeToken?>() {}.type val list: List = gson.fromJson(dietUserPreferenceJson, type) assertEquals(list[0].dietUserId, 2) - assertEquals(list[0].temperature, -1) - } - - record[0] == DietUserSensitivity::class.simpleName -> { - val dietUserSensitivityJson: String = record[1] - val type = object : TypeToken?>() {}.type - val list: List = gson.fromJson(dietUserSensitivityJson, type) - assertEquals(list[0].dietUserId, 2) - assertEquals(list[0].sensitivityId, 1) + assertEquals(list[0].dietPreferenceId, 10) + assertEquals(list[1].preference, "Cukorbetegség") } } } @@ -162,7 +151,6 @@ class AppCustomerPackageTest { dietUserConsumptionRepository, dietUserRepository, dietUserPreferenceRepository, - dietUserSensitivityRepository, customerConversationRepository ) @@ -217,7 +205,6 @@ class AppCustomerPackageTest { dietUserConsumptionRepository, dietUserRepository, dietUserPreferenceRepository, - dietUserSensitivityRepository, customerConversationRepository) var response: ResponseEntity<*> = controller.getCustomerPackageData(91) diff --git a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt index af29377..d5a473e 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt @@ -2,7 +2,7 @@ package com.aitrainer.api.test import com.aitrainer.api.controller.PackageController import com.aitrainer.api.model.* -import com.aitrainer.api.model.diet.DietSensitivity +import com.aitrainer.api.model.diet.DietPreference import com.aitrainer.api.model.diet.Meal import com.aitrainer.api.model.diet.Recipe import com.aitrainer.api.model.diet.Store @@ -62,7 +62,7 @@ class AppPackageTest { private lateinit var membershipRepository: MembershipRepository @Autowired - private lateinit var dietSensitivityRepository: DietSensitivityRepository + private lateinit var dietPreferenceRepository: DietPreferenceRepository @Autowired private lateinit var mealRepository: MealRepository @@ -101,7 +101,7 @@ class AppPackageTest { storeRepository, recipeRepository, mealRepository, - dietSensitivityRepository, + dietPreferenceRepository, ) val response: ResponseEntity<*> = controller.getDietPackageData() @@ -149,13 +149,13 @@ class AppPackageTest { assertEquals(list[0].calMin, 70.0) assertEquals(list[0].proteinMax, 25.0) assertEquals(list[1].name, "Tigris buci1") - } else if ( record[0] == DietSensitivity::class.simpleName) { - val dietSensitivityJson: String = record[1] - val type = object : TypeToken?>() {}.type - val list: List = gson.fromJson(dietSensitivityJson, type) + } else if ( record[0] == DietPreference::class.simpleName) { + val dietPreferenceJson: String = record[1] + val type = object : TypeToken?>() {}.type + val list: List = gson.fromJson(dietPreferenceJson, type) assertTrue(list.isNotEmpty()) - assertEquals(list[0].name, "Nut Allergy") - assertEquals(list[1].name, "Penicillin sensitivity") + assertEquals(list[0].preference, "Nut Allergy") + assertEquals(list[1].preference, "Penicillin sensitivity") } else if ( record[0] == AppText::class.simpleName) { val appTextJson: String = record[1] val type = object : TypeToken?>() {}.type @@ -199,7 +199,7 @@ class AppPackageTest { storeRepository, recipeRepository, mealRepository, - dietSensitivityRepository, + dietPreferenceRepository, ) val response: ResponseEntity<*> = controller.getClubPackageData() @@ -259,7 +259,7 @@ class AppPackageTest { storeRepository, recipeRepository, mealRepository, - dietSensitivityRepository, + dietPreferenceRepository, ) val response: ResponseEntity<*> = controller.getPackageData() diff --git a/src/test/kotlin/com/aitrainer/api/test/diet/DietSensitivityTest.kt b/src/test/kotlin/com/aitrainer/api/test/diet/DietSensitivityTest.kt deleted file mode 100644 index 494822e..0000000 --- a/src/test/kotlin/com/aitrainer/api/test/diet/DietSensitivityTest.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.aitrainer.api.test.diet - -import com.aitrainer.api.model.diet.DietSensitivity -import com.aitrainer.api.test.Tokenizer -import com.google.gson.Gson -import org.junit.jupiter.api.BeforeAll -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.TestInstance -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.http.MediaType -import org.springframework.test.web.servlet.MockMvc -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post -import org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - -@SpringBootTest -@AutoConfigureMockMvc -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -class DietSensitivityTest { - - @Autowired - lateinit var mockMvc: MockMvc - - private var authToken: String? = "" - - @BeforeAll - fun initTest() { - authToken = Tokenizer.getToken() - } - - private val dietSensitivity = DietSensitivity(1, name = "Nut Allergy") - private val dietSensitivity2 = DietSensitivity(2, name = "Penicillin sensitivity") - - @Test - fun `insert diet sensitivity successfully`() { - - val gson = Gson() - - mockMvc.perform( - post("/api/diet_sensitivity") - .contentType(MediaType.APPLICATION_JSON) - .header("Authorization", "Bearer $authToken") - .content(gson.toJson(dietSensitivity)) - ) - .andExpect(status().isOk) - .andExpect(jsonPath("$.name").value("Nut Allergy")) - - mockMvc.perform( - post("/api/diet_sensitivity") - .contentType(MediaType.APPLICATION_JSON) - .header("Authorization", "Bearer $authToken") - .content(gson.toJson(dietSensitivity2)) - ) - .andExpect(status().isOk) - } - - @Test - fun `get all diet sensitivity successfully`() { - - mockMvc.perform(get("/api/diet_sensitivity") - .header("Authorization", "Bearer $authToken") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk) - .andExpect(jsonPath("$.[0].name").value("Nut Allergy")) - .andExpect(jsonPath("$.[1].name").value("Penicillin sensitivity")) - } - -} diff --git a/src/test/kotlin/com/aitrainer/api/test/diet/DietUserPreferenceTest.kt b/src/test/kotlin/com/aitrainer/api/test/diet/DietUserPreferenceTest.kt index 0b2d8ec..eb3b604 100644 --- a/src/test/kotlin/com/aitrainer/api/test/diet/DietUserPreferenceTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/diet/DietUserPreferenceTest.kt @@ -28,17 +28,16 @@ class DietUserPreferenceTest { private lateinit var mockMvc: MockMvc private val dietUserPreference = DietUserPreference( - id = 1, - rawMaterialId = 10, + dietPreferenceId = 10, dietUserId = 5, - temperature = -1 + preference = "" ) private val dietUserPreference2 = DietUserPreference( - id = 2, - rawMaterialId = 11, + dietPreferenceId = 0, dietUserId = 5, - temperature = 1 + preference = "Cukorbetegség", + preferenceType = "betegség" ) private var authToken: String = "" @@ -60,8 +59,9 @@ class DietUserPreferenceTest { ) .andExpect(status().isOk) .andExpect(jsonPath("$.dietUserId").value(5)) - .andExpect(jsonPath("$.rawMaterialId").value(10)) - .andExpect(jsonPath("$.temperature").value(-1)) + .andExpect(jsonPath("$.dietPreferenceId").value(10)) + .andExpect(jsonPath("$.preference").value("")) + .andExpect(jsonPath("$.preferenceType").value("")) mockMvc.perform( MockMvcRequestBuilders.post("/api/diet_user_preference") @@ -70,20 +70,37 @@ class DietUserPreferenceTest { .content(toJson(dietUserPreference2)) ) .andExpect(status().isOk) - } - @Test - fun `get dietUserPreference list by dietUserId id successfully`() { - - // Act & Assert mockMvc.perform(get("/api/diet_user_preference/{dietUserId}", 5) .header("Authorization", "Bearer $authToken") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk) - .andExpect(jsonPath("$.[0].temperature").value(-1)) - .andExpect(jsonPath("$.[0].rawMaterialId").value(10)) - .andExpect(jsonPath("$.[1].temperature").value(1)) - .andExpect(jsonPath("$.[1].rawMaterialId").value(11)) + .andExpect(jsonPath("$.[0].dietPreferenceId").value(10)) + .andExpect(jsonPath("$.[0].preference").value("")) + .andExpect(jsonPath("$.[1].preference").value("Cukorbetegség")) + + val dietUserPreference3 = DietUserPreference( + dietPreferenceId = 0, + dietUserId = 5, + preference = "Ebéd-Vacsora egyben", + preferenceType = "egyéb" + ) + + mockMvc.perform( + MockMvcRequestBuilders.post("/api/diet_user_preference") + .contentType(MediaType.APPLICATION_JSON) + .header("Authorization", "Bearer $authToken") + .content(toJson(dietUserPreference3)) + ) + .andExpect(status().isOk) + + mockMvc.perform( + MockMvcRequestBuilders.post("/api/diet_user_preference/delete") + .contentType(MediaType.APPLICATION_JSON) + .header("Authorization", "Bearer $authToken") + .content(toJson(dietUserPreference3)) + ) + .andExpect(status().isOk) } diff --git a/src/test/kotlin/com/aitrainer/api/test/diet/DietUserSensitivityTest.kt b/src/test/kotlin/com/aitrainer/api/test/diet/DietUserSensitivityTest.kt deleted file mode 100644 index d730154..0000000 --- a/src/test/kotlin/com/aitrainer/api/test/diet/DietUserSensitivityTest.kt +++ /dev/null @@ -1,69 +0,0 @@ -package com.aitrainer.api.test.diet - -import com.aitrainer.api.model.diet.DietUserSensitivity -import com.aitrainer.api.test.Tokenizer -import com.google.gson.Gson -import org.junit.jupiter.api.BeforeAll -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.TestInstance -import org.junit.jupiter.api.extension.ExtendWith -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.http.MediaType -import org.springframework.test.context.junit.jupiter.SpringExtension -import org.springframework.test.web.servlet.MockMvc -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get -import org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - - -@ExtendWith(SpringExtension::class) -@SpringBootTest -@AutoConfigureMockMvc -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -class DietUserSensitivityTest { - - @Autowired - private lateinit var mockMvc: MockMvc - - private val dietUserSensitivity = DietUserSensitivity( - sensitivityId = 1, - dietUserId = 5, - ) - private var authToken: String = "" - - @BeforeAll - fun initTest() { - authToken = Tokenizer.getToken() - } - - - @Test - fun `insert dietUserSensitivity successfully`() { - - mockMvc.perform( - MockMvcRequestBuilders.post("/api/diet_user_sensitivity") - .contentType(MediaType.APPLICATION_JSON) - .header("Authorization", "Bearer $authToken") - .content(toJson(dietUserSensitivity)) - ) - .andExpect(status().isOk) - .andExpect(jsonPath("$.dietUserId").value(5)) - .andExpect(jsonPath("$.sensitivityId").value(1)) - - // Act & Assert - mockMvc.perform(get("/api/diet_user_sensitivity/{dietUserId}", 5) - .header("Authorization", "Bearer $authToken") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk) - .andExpect(jsonPath("$.[0].dietUserId").value(5)) - .andExpect(jsonPath("$.[0].sensitivityId").value(1)) - - - } - - private fun toJson(obj: Any): String { - return Gson().toJson(obj) - } -}