From 0c8909184ef9ef9d53e3ba38bef3d291594b9e15 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Mon, 9 Sep 2024 11:04:29 +0200 Subject: [PATCH] Validering av HentBidragBeregning (#232) --- .../felles/BidragBeregningRequestDto.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt index 1b369f8..cff3898 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt @@ -1,16 +1,27 @@ package no.nav.bidrag.transport.behandling.beregning.felles +import io.swagger.v3.oas.annotations.media.Schema +import jakarta.validation.Constraint +import jakarta.validation.ConstraintValidator +import jakarta.validation.ConstraintValidatorContext import jakarta.validation.Valid import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size import no.nav.bidrag.domene.enums.vedtak.Stønadstype import no.nav.bidrag.domene.ident.Personident import java.time.LocalDate +import kotlin.reflect.KClass data class BidragBeregningRequestDto( @field:Valid val hentBeregningerFor: List, ) { + @GyldigBidragBeregningRequest + @Schema( + description = + "Hent bidrag beregning. Enten datoSøknad eller søknadsid må settes. " + + "Hvis søknadsid settes så vil mottattDato på søknaden benyttes som datoSøknad.", + ) data class HentBidragBeregning( @field:NotBlank(message = "Saksnummer kan ikke være blank") @field:Size(max = 7, min = 7, message = "Saksnummer må bestå av 7 tegn") @@ -22,3 +33,24 @@ data class BidragBeregningRequestDto( val stønadstype: Stønadstype, ) } + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +@Constraint(validatedBy = [GyldigBidragBeregningValidator::class]) +annotation class GyldigBidragBeregningRequest( + val message: String = "Enten datoSøknad eller søknadsid må settes", + val groups: Array> = [], + val payload: Array> = [], +) + +class GyldigBidragBeregningValidator : ConstraintValidator { + override fun isValid( + input: BidragBeregningRequestDto.HentBidragBeregning?, + constraintValidatorContext: ConstraintValidatorContext, + ): Boolean { + if (input == null) { + return false + } + return input.datoSøknad != null || !input.søknadsid.isNullOrEmpty() + } +}