From 9fedab9c6f61b1b9c14c9d2bf4b01e6a6377de88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Sun, 19 Apr 2026 14:51:05 +0200 Subject: [PATCH] Closed Issue #5 --- build.sbt | 2 +- .../app/softnetwork/api/server/ApiErrors.scala | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 221eb24..d884ca8 100644 --- a/build.sbt +++ b/build.sbt @@ -16,7 +16,7 @@ ThisBuild / organization := "app.softnetwork" name := "generic-persistence-api" -ThisBuild / version := "0.8.2" +ThisBuild / version := "0.8.3" lazy val moduleSettings = Seq( crossScalaVersions := Seq(scala212, scala213), diff --git a/server/src/main/scala/app/softnetwork/api/server/ApiErrors.scala b/server/src/main/scala/app/softnetwork/api/server/ApiErrors.scala index 5d1151b..4943d3e 100644 --- a/server/src/main/scala/app/softnetwork/api/server/ApiErrors.scala +++ b/server/src/main/scala/app/softnetwork/api/server/ApiErrors.scala @@ -133,6 +133,12 @@ object ApiErrors extends SchemaDerivation with TapirJson4s { .and(header[ApiErrors.Found](HeaderNames.Location).description("Redirect address")) ) + val conflictVariant: EndpointOutput.OneOfVariant[ApiErrors.Conflict] = + oneOfVariant( + statusCode(StatusCode.Conflict) + .and(jsonBody[ApiErrors.Conflict].description("Conflict")) + ) + val badRequestVariant: EndpointOutput.OneOfVariant[ApiErrors.BadRequest] = oneOfVariant( statusCode(StatusCode.BadRequest) @@ -168,6 +174,7 @@ object ApiErrors extends SchemaDerivation with TapirJson4s { unauthorizedWithChallengeVariant, notFoundVariant, foundVariant, + conflictVariant, badRequestVariant, internalServerErrorVariant, // default case below. @@ -206,6 +213,12 @@ object ApiErrors extends SchemaDerivation with TapirJson4s { ) { case Left(ApiErrors.Found(_)) => true }, + oneOfVariantValueMatcher( + StatusCode.Conflict, + jsonBody[Left[ApiErrors.Conflict, T]].description("Conflict") + ) { case Left(ApiErrors.Conflict(_)) => + true + }, oneOfVariantValueMatcher( StatusCode.BadRequest, jsonBody[Left[ApiErrors.BadRequest, T]].description("Bad request") @@ -254,6 +267,7 @@ object ApiErrors extends SchemaDerivation with TapirJson4s { unauthorizedWithChallengeVariant, notFoundVariant, foundVariant, + conflictVariant, badRequestVariant, internalServerErrorVariant, defaultErrorVariant