Skip to content

Commit a3c2171

Browse files
committed
Add optional errorMessage parameter for number validation annotations
1 parent 3ddc516 commit a3c2171

File tree

14 files changed

+19
-19
lines changed

14 files changed

+19
-19
lines changed

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/NumberConstraintProcessor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ abstract class NumberConstraintProcessor<A: Annotation>(allowedTypes: Iterable<K
5959
}
6060
}
6161

62-
data class NumberConstraint(val min: BigDecimal? = null, val max: BigDecimal? = null, val minInclusive: Boolean = true, val maxInclusive: Boolean = true)
62+
data class NumberConstraint(val min: BigDecimal? = null, val max: BigDecimal? = null, val minInclusive: Boolean = true, val maxInclusive: Boolean = true, val errorMessage: String)
6363

6464
class NumberConstraintViolation(val actual: Number?, val constraint: NumberConstraint): ConstraintViolation("Constraint violation: $actual should be ${
6565
{
@@ -72,6 +72,6 @@ class NumberConstraintViolation(val actual: Number?, val constraint: NumberConst
7272
else -> "anything"
7373
}
7474
}()
75-
}")
75+
}", constraint.errorMessage)
7676

7777
class NotANumberViolationViolation(val value: Any?): ConstraintViolation("Constraint violation: $value is not a number")

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/clamp/FClamp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ import com.papsign.ktor.openapigen.validation.ValidatorAnnotation
66
@Target(AnnotationTarget.TYPE, AnnotationTarget.PROPERTY)
77
@SchemaProcessorAnnotation(FClampProcessor::class)
88
@ValidatorAnnotation(FClampProcessor::class)
9-
annotation class FClamp(val min: Double, val max: Double)
9+
annotation class FClamp(val min: Double, val max: Double, val errorMessage: String = "")
1010

1111

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/clamp/FClampProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ object FClampProcessor : FloatingNumberConstraintProcessor<FClamp>() {
1818
}
1919

2020
override fun getConstraint(annotation: FClamp): NumberConstraint {
21-
return NumberConstraint(BigDecimal(annotation.min), BigDecimal(annotation.max))
21+
return NumberConstraint(BigDecimal(annotation.min), BigDecimal(annotation.max), errorMessage = annotation.errorMessage)
2222
}
2323
}

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/max/FMax.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import com.papsign.ktor.openapigen.validation.ValidatorAnnotation
66
@Target(AnnotationTarget.TYPE, AnnotationTarget.PROPERTY)
77
@SchemaProcessorAnnotation(FMaxProcessor::class)
88
@ValidatorAnnotation(FMaxProcessor::class)
9-
annotation class FMax(val value: Double)
9+
annotation class FMax(val value: Double, val errorMessage: String = "")

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/max/FMaxProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ object FMaxProcessor: FloatingNumberConstraintProcessor<FMax>() {
1616
}
1717
}
1818
override fun getConstraint(annotation: FMax): NumberConstraint {
19-
return NumberConstraint(max= BigDecimal(annotation.value))
19+
return NumberConstraint(max= BigDecimal(annotation.value), errorMessage = annotation.errorMessage)
2020
}
2121
}

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/min/FMin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import com.papsign.ktor.openapigen.validation.ValidatorAnnotation
66
@Target(AnnotationTarget.TYPE, AnnotationTarget.PROPERTY)
77
@SchemaProcessorAnnotation(FMinProcessor::class)
88
@ValidatorAnnotation(FMinProcessor::class)
9-
annotation class FMin(val value: Double)
9+
annotation class FMin(val value: Double, val errorMessage: String = "")

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/floating/min/FMinProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ object FMinProcessor: FloatingNumberConstraintProcessor<FMin>() {
1717
}
1818

1919
override fun getConstraint(annotation: FMin): NumberConstraint {
20-
return NumberConstraint(min = BigDecimal(annotation.value))
20+
return NumberConstraint(min = BigDecimal(annotation.value), errorMessage = annotation.errorMessage)
2121
}
2222
}

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/integer/clamp/Clamp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import com.papsign.ktor.openapigen.validation.ValidatorAnnotation
66
@Target(AnnotationTarget.TYPE, AnnotationTarget.PROPERTY)
77
@SchemaProcessorAnnotation(ClampProcessor::class)
88
@ValidatorAnnotation(ClampProcessor::class)
9-
annotation class Clamp(val min: Long, val max: Long)
9+
annotation class Clamp(val min: Long, val max: Long, val errorMessage: String = "")

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/integer/clamp/ClampProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ object ClampProcessor: IntegerNumberConstraintProcessor<Clamp>() {
1818
}
1919

2020
override fun getConstraint(annotation: Clamp): NumberConstraint {
21-
return NumberConstraint(BigDecimal(annotation.min), BigDecimal(annotation.max))
21+
return NumberConstraint(BigDecimal(annotation.min), BigDecimal(annotation.max), errorMessage = annotation.errorMessage)
2222
}
2323
}

src/main/kotlin/com/papsign/ktor/openapigen/annotations/type/number/integer/max/Max.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import com.papsign.ktor.openapigen.validation.ValidatorAnnotation
66
@Target(AnnotationTarget.TYPE, AnnotationTarget.PROPERTY)
77
@SchemaProcessorAnnotation(MaxProcessor::class)
88
@ValidatorAnnotation(MaxProcessor::class)
9-
annotation class Max(val value: Long)
9+
annotation class Max(val value: Long, val errorMessage: String = "")

0 commit comments

Comments
 (0)