Skip to content

Commit

Permalink
Validering av HentBidragBeregning (#232)
Browse files Browse the repository at this point in the history
  • Loading branch information
ugur93 authored Sep 9, 2024
1 parent 54a42d0 commit 0c89091
Showing 1 changed file with 32 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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<HentBidragBeregning>,
) {
@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")
Expand All @@ -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<KClass<*>> = [],
val payload: Array<KClass<out Any>> = [],
)

class GyldigBidragBeregningValidator : ConstraintValidator<GyldigBidragBeregningRequest, BidragBeregningRequestDto.HentBidragBeregning> {
override fun isValid(
input: BidragBeregningRequestDto.HentBidragBeregning?,
constraintValidatorContext: ConstraintValidatorContext,
): Boolean {
if (input == null) {
return false
}
return input.datoSøknad != null || !input.søknadsid.isNullOrEmpty()
}
}

0 comments on commit 0c89091

Please sign in to comment.