### feat: verbessere DTO-Handling und füge Feature-Flag hinzu

- **NennungViewModel:** Definiere lokales `NennungDto` zur Optimierung der Backend-Response-Verarbeitung.
- **MailPollingService:** Ergänze Bedingung für Scheduler-Aktivierung (`ConditionalOnProperty`).
- **.env & application.yaml:** Füge `MAIL_POLLING_ENABLED` als Feature-Flag hinzu.
- **Dependencies:** Refaktor Import-Reihenfolge für Konsistenz.
This commit is contained in:
2026-04-22 20:26:59 +02:00
parent 8b44edda90
commit 309834d90c
5 changed files with 34 additions and 5 deletions
@@ -10,9 +10,9 @@ import jakarta.mail.Session
import jakarta.mail.internet.InternetAddress
import org.jetbrains.exposed.v1.jdbc.SchemaUtils
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import org.springframework.transaction.annotation.Transactional
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
import org.springframework.boot.context.event.ApplicationReadyEvent
import org.springframework.context.event.EventListener
import org.springframework.mail.SimpleMailMessage
@@ -20,6 +20,7 @@ import org.springframework.mail.javamail.JavaMailSender
import org.springframework.scheduling.annotation.EnableScheduling
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.util.*
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
@@ -27,6 +28,7 @@ import kotlin.uuid.Uuid
@OptIn(ExperimentalUuidApi::class)
@Service
@EnableScheduling
@ConditionalOnProperty(value = ["mail.polling.enabled"], havingValue = "true", matchIfMissing = false)
class MailPollingService(
private val mailSender: JavaMailSender,
private val nennungRepository: NennungRepository,
@@ -5,9 +5,9 @@ package at.mocode.mail.service.persistence
import org.jetbrains.exposed.v1.core.eq
import org.jetbrains.exposed.v1.jdbc.insert
import org.jetbrains.exposed.v1.jdbc.selectAll
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import org.jetbrains.exposed.v1.jdbc.update
import org.springframework.stereotype.Repository
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import org.springframework.transaction.annotation.Transactional
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
@@ -44,3 +44,8 @@ management:
web:
exposure:
include: "health,info,prometheus"
# Feature-Flags
mail:
polling:
enabled: ${MAIL_POLLING_ENABLED:false}