feature/creation #2

Merged
zobrock merged 7 commits from feature/creation into main 2025-10-19 15:41:14 +02:00
1 changed files with 41 additions and 0 deletions
Showing only changes of commit 819c74bb57 - Show all commits

View File

@ -0,0 +1,41 @@
package org.octopus.internal.web.utils.dtos.validators
import jakarta.validation.Constraint
import jakarta.validation.ConstraintValidator
import jakarta.validation.ConstraintValidatorContext
import jakarta.validation.Payload
import org.octopus.internal.common.enums.EEntryType
import kotlin.reflect.KClass
class EntryHexColorValidator : ConstraintValidator<EntryHexColorValidator.Validate, String> {
companion object {
private val HEX_COLOR_PATTERN = Regex("^0x([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$")
}
override fun isValid(value: String?, context: ConstraintValidatorContext): Boolean {
if (value.isNullOrBlank()) {
return false
}
val isMatched = HEX_COLOR_PATTERN.matches(value)
if (!isMatched) {
context.disableDefaultConstraintViolation()
context.buildConstraintViolationWithTemplate("Invalid hex color format. Value must be in 0xRRGGBB format.")
.addConstraintViolation()
}
return isMatched
}
@Target(AnnotationTarget.FIELD, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
@Constraint(validatedBy = [EntryHexColorValidator::class])
annotation class Validate(
val message: String = "",
val groups: Array<KClass<*>> = [],
val payload: Array<KClass<out Payload>> = []
)
}