diff --git a/build.gradle.kts b/build.gradle.kts index 2179f68..2515bc4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } group = "com.aitrainer" -version = "1.2.5" +version = "1.2.6" java.sourceCompatibility = JavaVersion.VERSION_17 repositories { @@ -48,8 +48,10 @@ dependencies { implementation("jakarta.mail:jakarta.mail-api:2.1.1") implementation("org.eclipse.angus:angus-mail:2.0.1") - implementation ("com.aallam.openai:openai-client:3.2.2") + implementation("com.aallam.openai:openai-client:3.2.2") implementation("io.ktor:ktor-client-java:2.2.3") + implementation("ognl:ognl:3.3.4") + runtimeOnly("mysql:mysql-connector-java") testImplementation("org.springframework.boot:spring-boot-starter-test") { diff --git a/build_api_test b/build_api_test old mode 100644 new mode 100755 index 6429af5..ba978e6 --- a/build_api_test +++ b/build_api_test @@ -1 +1 @@ -docker build --no-cache -t diet4you_api_test -f Dockerfile . \ No newline at end of file +docker buildx build --platform linux/amd64 --no-cache -t diet4you_api_test -f Dockerfile . diff --git a/data/db/update_1_2_6.sql b/data/db/update_1_2_6.sql new file mode 100644 index 0000000..5475216 --- /dev/null +++ b/data/db/update_1_2_6.sql @@ -0,0 +1,8 @@ +START TRANSACTION; + +ALTER TABLE `diet` + ADD COLUMN `premium` TINYINT(1) NULL DEFAULT 0 AFTER `start_date`; + +UPDATE configuration set config_value = "1.2.6", 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/diet/DietCustomerController.kt b/src/main/kotlin/com/aitrainer/api/controller/diet/DietCustomerController.kt index c98fe89..3e1ef4d 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/diet/DietCustomerController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/diet/DietCustomerController.kt @@ -7,6 +7,8 @@ import com.aitrainer.api.model.diet.DietCustomer import com.aitrainer.api.model.diet.DietUser import com.aitrainer.api.repository.CustomerRepository import com.aitrainer.api.repository.diet.DietUserRepository +import com.aitrainer.api.service.Email +import com.aitrainer.api.service.EmailTemplateService import com.aitrainer.api.service.Firebase import com.aitrainer.api.service.ServiceBeans import org.springframework.beans.factory.annotation.Autowired @@ -24,6 +26,10 @@ class DietCustomerController(private val dietUserRepository: DietUserRepository, @Autowired var serviceBeans: ServiceBeans? = null + + @Autowired + private var emailTemplateService: EmailTemplateService? = null + @PostMapping("/diet_registration") fun insert(@RequestBody dietCustomerJson: String, @Value("\${firebase.key}") apiKey: java.lang.String): ResponseEntity<*> { val newDietCustomer: DietCustomer = DietCustomer().fromJson(dietCustomerJson) @@ -120,17 +126,16 @@ class DietCustomerController(private val dietUserRepository: DietUserRepository, idToken = existingCustomer.firebaseRegToken!! } - // create email link - /*val activationLink = "https://diet4you.andio.hu/welcome/id=$idToken" if ( emailTemplateService == null ) { emailTemplateService = EmailTemplateService() } - val html = emailTemplateService!!.getEmailBody(newDietCustomer.firstname, activationLink, "diet_registration_email") + + val html = emailTemplateService!!.getDietRegistrationEmailBody(newDietCustomer.firstname, newDietCustomer.email, "diet_registration_email") val subject = emailTemplateService!!.getSubjectDiet() // send email val email = Email() - email.send(newDietCustomer.email, html, subject)*/ + email.send("service@diet4you.eu", html, subject) return ResponseEntity.ok().body(existingCustomer) } diff --git a/src/main/kotlin/com/aitrainer/api/model/diet/Diet.kt b/src/main/kotlin/com/aitrainer/api/model/diet/Diet.kt index 56512e6..7b43dd2 100644 --- a/src/main/kotlin/com/aitrainer/api/model/diet/Diet.kt +++ b/src/main/kotlin/com/aitrainer/api/model/diet/Diet.kt @@ -12,6 +12,7 @@ data class Diet ( @Expose @get: NotNull val dietUserId: Long = 0, @Expose @get: NotNull val dietText: String = "", @Expose @get: NotNull var startDate: String = "", + @Expose @get: NotNull val premium: Int = 0, ) { @OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "diet") @Fetch(value = FetchMode.SUBSELECT) diff --git a/src/main/kotlin/com/aitrainer/api/service/EmailTemplateService.kt b/src/main/kotlin/com/aitrainer/api/service/EmailTemplateService.kt index fe7ab78..74ae725 100644 --- a/src/main/kotlin/com/aitrainer/api/service/EmailTemplateService.kt +++ b/src/main/kotlin/com/aitrainer/api/service/EmailTemplateService.kt @@ -21,6 +21,17 @@ class EmailTemplateService { return templateEngine!!.process(template, context) } + fun getDietRegistrationEmailBody(firstname: String, email: String, template: String): String { + val context = Context() + context.setVariable("customerName", firstname) + context.setVariable("customerEmail", email) + if ( templateEngine == null) { + templateEngine = TemplateEngine() + } + + return templateEngine!!.process(template, context) + } + fun getSubject(): String { val context = Context() if ( templateEngine == null) { diff --git a/src/main/resources/application-diet.properties b/src/main/resources/application-diet.properties index 1410b00..a68733d 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.5 +application.version=1.2.6 jwt.secret=aitrainer diff --git a/src/main/resources/application-dietprod.properties b/src/main/resources/application-dietprod.properties index e58bb77..2b9bbdf 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.5 +application.version=1.2.6 jwt.secret=aitrainer diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 763dd38..e3fda7f 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.5 +application.version=1.2.6 jwt.secret=aitrainer diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8944be4..b313a1d 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.5 +application.version=1.2.6 jwt.secret=aitrainer diff --git a/src/main/resources/templates/diet_registration_email.html b/src/main/resources/templates/diet_registration_email.html index 31ebff0..16f8d68 100644 --- a/src/main/resources/templates/diet_registration_email.html +++ b/src/main/resources/templates/diet_registration_email.html @@ -4,22 +4,19 @@
-Szia [firstname]!
- Üdvözlünk a Diet 4 You (Diéta Neked) tagjai között! Örülünk, hogy velünk vagy. Az étrended a Diet4You zárt felületén tudod elérni. A belépéshez használd ezt a linket:
- ${activationLink}
+ New Diet4You user:
- Kérlek, kattints a linkre a fiókod aktiválásához. Ha bármilyen problémád van, ne habozz velünk kapcsolatba lépni. -
-
- Köszönjük, hogy velünk dolgozol.
+ Email:Email
+ Name:Name
Üdvözlettel,
- Diéta Neked Csapata
- Diet 4 You Team
- mailto: diet4you@andio.hu
+ Diet4You Team
+ mailto: service@diet4you.eu