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 {
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.liquibase:liquibase-core'
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_api.model.ApplicationFormDto
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import org.slf4j.LoggerFactory
import org.springframework.boot.ApplicationArguments
import org.springframework.boot.ApplicationRunner
@@ -18,8 +19,9 @@ class InitialApplicationFormTemplateSeeder(
private val applicationFormRepository: ApplicationFormRepository,
private val applicationFormMapper: ApplicationFormMapper,
private val userRepository: UserRepository,
private val objectMapper: ObjectMapper,
) : ApplicationRunner {
private val yamlMapper = ObjectMapper(YAMLFactory()).findAndRegisterModules()
override fun run(args: ApplicationArguments) {
seedInitialTemplateIfMissing()
}
@@ -43,7 +45,7 @@ class InitialApplicationFormTemplateSeeder(
private fun loadInitialTemplateDto(): ApplicationFormDto =
ClassPathResource(INITIAL_TEMPLATE_RESOURCE_PATH).inputStream.use { inputStream ->
objectMapper.readValue(inputStream, ApplicationFormDto::class.java)
yamlMapper.readValue(inputStream, ApplicationFormDto::class.java)
}
private fun getOrCreateSeedingUser(): User {
@@ -63,7 +65,7 @@ class InitialApplicationFormTemplateSeeder(
companion object {
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"
}
}