commit 8469404dd07c2590aa964909580d80ef5cf53db1 parent 6560c9b228f284b0464973af2006a6e51746aded Author: Antoine A <> Date: Thu, 7 May 2026 14:28:19 +0200 common: fix openapi Diffstat:
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/libeufin-bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt b/libeufin-bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt @@ -27,6 +27,7 @@ import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder import io.github.smiley4.schemakenerator.core.annotations.Description +import io.github.smiley4.schemakenerator.core.annotations.Name import tech.libeufin.common.* import java.time.Instant @@ -346,6 +347,7 @@ sealed interface MonitorResponse { @Serializable @SerialName("no-conversions") +@Name("MonitorNoConversion", qualifiedName = "no-conversions") @Description("Monitor stats without currency conversion") data class MonitorNoConversion( @Description("Number of incoming Taler transactions") @@ -360,6 +362,7 @@ data class MonitorNoConversion( @Serializable @SerialName("with-conversions") +@Name("MonitorWithConversion", qualifiedName = "with-conversions") @Description("Monitor stats with currency conversion") data class MonitorWithConversion( @Description("Number of cash-in operations") diff --git a/libeufin-bank/src/main/kotlin/tech/libeufin/bank/api/WireGatewayApi.kt b/libeufin-bank/src/main/kotlin/tech/libeufin/bank/api/WireGatewayApi.kt @@ -393,7 +393,21 @@ fun Routing.wireGatewayApi(db: Database, cfg: BankConfig) { metadata = IncomingSubject.Kyc(req.account_pub) ) } - post("/accounts/{USERNAME}/taler-wire-gateway/admin/add-mapped") { + post("/accounts/{USERNAME}/taler-wire-gateway/admin/add-mapped", { + operationId = "addMapped" + description = "Add an incoming mapped wire transfer (admin)" + tags = listOf("Wire Gateway") + protected = true + securitySchemeNames("bearerAuth", "basicAuth") + request { + pathParameter<String>("USERNAME") { description = "Account username" } + body<AddMappedRequest>() + } + response { + code(HttpStatusCode.OK) { description = "Mapped transfer added"; body<AddIncomingResponse>() } + code(HttpStatusCode.Conflict) { description = "Transfer conflict" } + } + }) { val req = call.receive<AddMappedRequest>() call.addIncoming( amount = req.amount, diff --git a/libeufin-common/src/main/kotlin/api/server.kt b/libeufin-common/src/main/kotlin/api/server.kt @@ -29,6 +29,7 @@ import io.github.smiley4.schemakenerator.swagger.SwaggerSteps.generateSwaggerSch import io.github.smiley4.schemakenerator.swagger.SwaggerSteps.withTitle import io.github.smiley4.schemakenerator.swagger.SwaggerSteps.RequiredHandling import io.github.smiley4.schemakenerator.core.CoreSteps.addDiscriminatorProperty +import io.github.smiley4.schemakenerator.core.CoreSteps.handleNameAnnotation import io.github.smiley4.schemakenerator.swagger.data.* import io.ktor.http.* import io.ktor.serialization.kotlinx.json.* @@ -184,15 +185,16 @@ fun Application.talerApi(logger: Logger, openApiInfo: OpenApiInfo? = null, serve generator = { type -> type .analyzeTypeUsingKotlinxSerialization() + .handleNameAnnotation() .addDiscriminatorProperty("type") .generateSwaggerSchema { nullables = RequiredHandling.NON_REQUIRED optionals = RequiredHandling.REQUIRED } - .withTitle(TitleType.SIMPLE) + .withTitle(TitleType.MINIMAL) .compileReferencingRoot( explicitNullTypes = false, - pathType = RefType.OPENAPI_SIMPLE + pathType = RefType.OPENAPI_MINIMAL ) } }