feat: Add new initial application form template, migration from JSON to YAML

This commit is contained in:
2025-12-26 19:20:13 +01:00
parent 6377fcff30
commit 1365f84049
4 changed files with 1829 additions and 2361 deletions

View File

@@ -23,6 +23,7 @@ repositories {
dependencies { dependencies {
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin' implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
implementation 'org.jetbrains.kotlin:kotlin-reflect' implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.liquibase:liquibase-core' implementation 'org.liquibase:liquibase-core'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6'

View File

@@ -6,6 +6,7 @@ import com.betriebsratkanzlei.legalconsenthub.user.User
import com.betriebsratkanzlei.legalconsenthub.user.UserRepository import com.betriebsratkanzlei.legalconsenthub.user.UserRepository
import com.betriebsratkanzlei.legalconsenthub_api.model.ApplicationFormDto import com.betriebsratkanzlei.legalconsenthub_api.model.ApplicationFormDto
import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.boot.ApplicationArguments import org.springframework.boot.ApplicationArguments
import org.springframework.boot.ApplicationRunner import org.springframework.boot.ApplicationRunner
@@ -18,8 +19,9 @@ class InitialApplicationFormTemplateSeeder(
private val applicationFormRepository: ApplicationFormRepository, private val applicationFormRepository: ApplicationFormRepository,
private val applicationFormMapper: ApplicationFormMapper, private val applicationFormMapper: ApplicationFormMapper,
private val userRepository: UserRepository, private val userRepository: UserRepository,
private val objectMapper: ObjectMapper,
) : ApplicationRunner { ) : ApplicationRunner {
private val yamlMapper = ObjectMapper(YAMLFactory()).findAndRegisterModules()
override fun run(args: ApplicationArguments) { override fun run(args: ApplicationArguments) {
seedInitialTemplateIfMissing() seedInitialTemplateIfMissing()
} }
@@ -43,7 +45,7 @@ class InitialApplicationFormTemplateSeeder(
private fun loadInitialTemplateDto(): ApplicationFormDto = private fun loadInitialTemplateDto(): ApplicationFormDto =
ClassPathResource(INITIAL_TEMPLATE_RESOURCE_PATH).inputStream.use { inputStream -> ClassPathResource(INITIAL_TEMPLATE_RESOURCE_PATH).inputStream.use { inputStream ->
objectMapper.readValue(inputStream, ApplicationFormDto::class.java) yamlMapper.readValue(inputStream, ApplicationFormDto::class.java)
} }
private fun getOrCreateSeedingUser(): User { private fun getOrCreateSeedingUser(): User {
@@ -63,7 +65,7 @@ class InitialApplicationFormTemplateSeeder(
companion object { companion object {
private val log = LoggerFactory.getLogger(InitialApplicationFormTemplateSeeder::class.java) private val log = LoggerFactory.getLogger(InitialApplicationFormTemplateSeeder::class.java)
private const val INITIAL_TEMPLATE_RESOURCE_PATH = "seed/initial_application_form_template.json" private const val INITIAL_TEMPLATE_RESOURCE_PATH = "seed/initial_application_form_template.yaml"
private const val SEEDING_USER_ID = "system-seeder" private const val SEEDING_USER_ID = "system-seeder"
} }
} }