diff --git a/build.gradle.kts b/build.gradle.kts index 4bac556..4beabd7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } group = "com.aitrainer" -version = "1.0.56" +version = "1.0.57" java.sourceCompatibility = JavaVersion.VERSION_1_8 repositories { diff --git a/data/db/update_1_0_57.sql b/data/db/update_1_0_57.sql new file mode 100644 index 0000000..01cd55c --- /dev/null +++ b/data/db/update_1_0_57.sql @@ -0,0 +1,5 @@ +START TRANSACTION; + +UPDATE configuration set config_value = "1.0.57", date_change=CURRENT_DATE WHERE config_key = "db_version"; + +COMMIT; diff --git a/src/main/kotlin/com/aitrainer/api/ApiApplication.kt b/src/main/kotlin/com/aitrainer/api/ApiApplication.kt index f5ed0ac..cf16629 100644 --- a/src/main/kotlin/com/aitrainer/api/ApiApplication.kt +++ b/src/main/kotlin/com/aitrainer/api/ApiApplication.kt @@ -9,7 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.builder.SpringApplicationBuilder import org.springframework.context.annotation.Bean - @SpringBootApplication class ApiApplication { @Bean(name = ["jasyptStringEncryptor"]) diff --git a/src/main/kotlin/com/aitrainer/api/controller/CustomerController.kt b/src/main/kotlin/com/aitrainer/api/controller/CustomerController.kt index f63445a..e2f89f2 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/CustomerController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/CustomerController.kt @@ -83,6 +83,17 @@ class CustomerController ( private val customerRepository: CustomerRepository) { return ResponseEntity.ok().body(customerRepository.save(returnCustomer)) } + @Secured + @PostMapping("customers/deactivate/{id}") + fun deactivateCustomer(@PathVariable(value = "id") customerId: Long): ResponseEntity { + logger.info("Get customer id: $customerId") + val returnCustomer: Customer = customerRepository.findById(customerId).orElse(null) + ?: return ResponseEntity.notFound().build() + + returnCustomer.active = "N" + return ResponseEntity.ok().body(customerRepository.save(returnCustomer)) + } + @Secured @PostMapping("/customers/{id}") fun updateCustomerById(@PathVariable(value = "id") customerId: Long, diff --git a/src/main/kotlin/com/aitrainer/api/service/PropertyServiceForJasyptStarter.kt b/src/main/kotlin/com/aitrainer/api/service/PropertyServiceForJasyptStarter.kt index aa9f4e5..df6f726 100644 --- a/src/main/kotlin/com/aitrainer/api/service/PropertyServiceForJasyptStarter.kt +++ b/src/main/kotlin/com/aitrainer/api/service/PropertyServiceForJasyptStarter.kt @@ -21,4 +21,5 @@ class PropertyServiceForJasyptStarter { fun getKeyStorePasswordUsingEnvironment(environment: Environment): String? { return environment.getProperty("server.ssl.key-store-password") } -} \ No newline at end of file +} + diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index b2064db..de86d07 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,6 +1,8 @@ spring.config.activate.on-profile=prod spring.config.use-legacy-processing = true +## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) +spring.datasource.url = jdbc:mysql://mariadb-galera.db.svc.cluster.local:3307/aitrainer?serverTimezone=CET&useSSL=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true spring.datasource.username = aitrainer spring.datasource.password = ENC(WZplPYr8WmrLHshesY4T6oXplK3MlUVJ) @@ -12,6 +14,6 @@ logging.config=classpath:logback-spring.xml logging.file=logs # if the database structue has been changed, increment this version number -application.version=1.0.56 +application.version=1.0.57 jwt.secret=aitrainer \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b634519..fe88fea 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.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.56 +application.version=1.0.57 jwt.secret=aitrainer diff --git a/src/main/resources/application.ssl.properties b/src/main/resources/application.ssl.properties index c80ee01..c44cb15 100644 --- a/src/main/resources/application.ssl.properties +++ b/src/main/resources/application.ssl.properties @@ -1,6 +1,6 @@ http.port=8088 server.port=8443 -server.ssl.enabled=true +server.ssl.enabled=false jasypt.encryptor.bean=jasyptStringEncryptor # The format used for the keystore. It could be set to JKS in case it is a JKS file diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 3780129..4c5614d 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -29,7 +29,10 @@ + + + + --> diff --git a/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt b/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt index 000cf75..6a6f96c 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AppCustomerPackageTest.kt @@ -75,7 +75,6 @@ class AppCustomerPackageTest { assertEquals(customer.trialDate, "2021-08-07 08:00:00") assertEquals(customer.syncedDate, "2021-08-06 08:00:00") assertEquals(customer.firebaseRegToken, "123456789asdfghjkl") - assertEquals(customer.lang!!.uppercase(), "HU") assertEquals(customer.phone, "123456") assertEquals(customer.lifeLong, 1) } diff --git a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt index 07ed6a5..bd8350b 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AppPackageTest.kt @@ -182,7 +182,7 @@ class AppPackageTest { val trainingPlanJson: String = record[1] val type = object : TypeToken?>() {}.type val plans: List = gson.fromJson(trainingPlanJson, type) - assertEquals(plans.size,40) + assertEquals(plans.size,41) assertEquals(plans[1].name, "Beginner Men’s workout") assertEquals(plans[1].internalName, "beginner_man") assertEquals(plans[1].free, true) diff --git a/src/test/kotlin/com/aitrainer/api/test/AuthenticationTest.kt b/src/test/kotlin/com/aitrainer/api/test/AuthenticationTest.kt index 83c0b35..6601b86 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AuthenticationTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AuthenticationTest.kt @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity +import org.springframework.mock.web.MockHttpServletRequest +import javax.servlet.http.HttpServletRequest import kotlin.test.assertEquals @SpringBootTest @@ -17,8 +19,9 @@ class AuthenticationTest { @Test fun testAuthentication() { val response: ResponseEntity<*> + val request: HttpServletRequest = MockHttpServletRequest() val jwtRequest = JwtRequest("bosi", "andio2009") - response = authController.generateAuthenticationToken(jwtRequest) + response = authController.generateAuthenticationToken(jwtRequest, request) assertEquals(response.statusCode, HttpStatus.OK) } diff --git a/src/test/kotlin/com/aitrainer/api/test/CustomerActivityTest.kt b/src/test/kotlin/com/aitrainer/api/test/CustomerActivityTest.kt index dcbedf6..280cf34 100644 --- a/src/test/kotlin/com/aitrainer/api/test/CustomerActivityTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/CustomerActivityTest.kt @@ -1,20 +1,13 @@ package com.aitrainer.api.test import com.aitrainer.api.controller.CustomerActivityController -import com.aitrainer.api.controller.CustomerExerciseDeviceController -import com.aitrainer.api.controller.PurchaseController -import com.aitrainer.api.model.Customer import com.aitrainer.api.model.CustomerActivity -import com.aitrainer.api.model.CustomerExerciseDevice import com.aitrainer.api.repository.CustomerActivityRepository -import com.aitrainer.api.repository.CustomerExerciseDeviceRepository import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest -import org.springframework.http.HttpStatus import kotlin.test.assertEquals -import kotlin.test.assertTrue @SpringBootTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) diff --git a/src/test/kotlin/com/aitrainer/api/test/CustomerTests.kt b/src/test/kotlin/com/aitrainer/api/test/CustomerTests.kt index fb33cd8..f9715c0 100644 --- a/src/test/kotlin/com/aitrainer/api/test/CustomerTests.kt +++ b/src/test/kotlin/com/aitrainer/api/test/CustomerTests.kt @@ -93,6 +93,25 @@ class CustomerTests { customerRepository.delete(updatedCustomer) } + @Test + fun testDeactivateCustomer() { + val id: Long = 90 + + val controller: CustomerController = CustomerController(customerRepository) + controller.deactivateCustomer(id) + + val customer: Customer = customerRepository.findById(id).orElse(null) + assertEquals(customer.active, "N") + + customer.active = "Y" + customerRepository.save(customer) + + val customer2: Customer = customerRepository.findById(id).orElse(null) + assertEquals(customer2.active, "Y") + + + } + @Test fun testUpdateCustomer() { val id:Long = 90