Introduce Chat API with message handling, server state updates, and IP-based security restrictions.

This commit is contained in:
2026-07-18 20:21:08 +02:00
parent 536439f324
commit 837f87d9be
10 changed files with 294 additions and 4 deletions
+30 -3
View File
@@ -14,6 +14,7 @@ repositories {
tasks.named("compileJava") {
dependsOn("generateJavaApi")
dependsOn("generateJavaChatApi")
dependsOn("generateFrontendApi")
}
@@ -34,7 +35,7 @@ tasks.jar {
sourceSets {
main {
java {
srcDir("${projectDir}/build/generated-resources/model/src/main/java")
srcDir("${projectDir}/build/generated-sources/model/src/main/java")
exclude("org/openapitools/configuration/SpringDocConfiguration.java")
}
}
@@ -51,7 +52,7 @@ dependencies {
implementation("org.springframework.hateoas:spring-hateoas:2.2.0")
}
tasks.register< GenerateTask>("generateJavaApi") {
tasks.register<GenerateTask>("generateJavaApi") {
inputs.file("${projectDir}/src/main/resources/api.yml")
inputs.file("${projectDir}/src/main/resources/config_backend.json")
inputs.dir("${projectDir}/src/main/resources/schemas")
@@ -59,7 +60,33 @@ tasks.register< GenerateTask>("generateJavaApi") {
library.set("spring-boot")
inputSpec.set("${projectDir}/src/main/resources/api.yml")
configFile.set("${projectDir}/src/main/resources/config_backend.json")
outputDir.set("${projectDir}/build/generated-resources/model")
outputDir.set("${projectDir}/build/generated-sources/model")
typeMappings.put("OffsetDateTime", "Instant")
importMappings.put("java.time.OffsetDateTime", "java.time.Instant")
modelNameSuffix.set("Dto")
// Make generator use Java 8 time types and map date-time -> Instant
additionalProperties.set(mapOf("dateLibrary" to "java8"))
typeMappings.set(mapOf("date-time" to "Instant"))
importMappings.set(mapOf("Instant" to "java.time.Instant"))
generateModelTests.set(false)
generateModelDocumentation.set(false)
generateApiTests.set(false)
generateApiDocumentation.set(false)
generateAliasAsModel.set(true)
modelPackage.set("com.alttd.altitudeweb.model")
generateApiTests.set(false)
}
tasks.register<GenerateTask>("generateJavaChatApi") {
inputs.file("${projectDir}/src/main/resources/chat-api.yml")
inputs.file("${projectDir}/src/main/resources/config_backend.json")
inputs.dir("${projectDir}/src/main/resources/schemas")
generatorName.set("spring")
library.set("spring-boot")
inputSpec.set("${projectDir}/src/main/resources/chat-api.yml")
configFile.set("${projectDir}/src/main/resources/config_backend.json")
outputDir.set("${projectDir}/build/generated-sources/model")
typeMappings.put("OffsetDateTime", "Instant")
importMappings.put("java.time.OffsetDateTime", "java.time.Instant")
modelNameSuffix.set("Dto")