From f5e733cc30150872ff0cd90fbd0309240dfa0b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Andreas=20S=C3=B8rs=C3=A6ther?= Date: Wed, 13 Mar 2024 16:04:26 +0100 Subject: [PATCH] =?UTF-8?q?Test=20hypotese=20p=C3=A5=20"sistEndret"-avvik?= =?UTF-8?q?=20for=20api-kall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Et API-kall som inneholder "if-unmodified-since"-header produserer merkelige resultater; klienten påstår at refusjonen ble sist endret for flere måneder siden! For å utelukke at problemet skyldes tukling med headere, enten fra bruker sin klient eller på vei fra klient til server, er det fint å logge samme tidspunkt fra header og body. --- .../ArbeidsgiverRefusjonController.kt | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/ArbeidsgiverRefusjonController.kt b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/ArbeidsgiverRefusjonController.kt index fe920406..37746081 100644 --- a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/ArbeidsgiverRefusjonController.kt +++ b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/ArbeidsgiverRefusjonController.kt @@ -4,11 +4,25 @@ import no.nav.arbeidsgiver.tiltakrefusjon.UgyldigRequestException import no.nav.arbeidsgiver.tiltakrefusjon.autorisering.InnloggetBrukerService import no.nav.arbeidsgiver.tiltakrefusjon.dokgen.DokgenService import no.nav.security.token.support.core.api.ProtectedWithClaims +import org.slf4j.Logger +import org.slf4j.LoggerFactory import org.springframework.data.domain.Page -import org.springframework.http.* +import org.springframework.http.HttpEntity +import org.springframework.http.HttpHeaders +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity import org.springframework.transaction.annotation.Transactional -import org.springframework.web.bind.annotation.* +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestHeader +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController +import java.time.Duration import java.time.Instant +import java.time.temporal.ChronoField const val REQUEST_MAPPING_ARBEIDSGIVER_REFUSJON = "/api/arbeidsgiver/refusjon" @@ -28,6 +42,8 @@ class ArbeidsgiverRefusjonController( val innloggetBrukerService: InnloggetBrukerService, val dokgenService: DokgenService ) { + var logger: Logger = LoggerFactory.getLogger(javaClass) + @GetMapping fun hentAlle(queryParametre: HentArbeidsgiverRefusjonerQueryParametre): List { if (queryParametre.bedriftNr == null) { @@ -88,6 +104,19 @@ class ArbeidsgiverRefusjonController( arbeidsgiver.settKontonummerOgInntekterPåRefusjon(id, sistEndret); } + @PostMapping("{id}/sett-kontonummer-og-inntekter", consumes = ["application/json"]) + @Transactional + fun settKontonummerOgInntekterPåRefusjon(@PathVariable id: String, @RequestHeader(HttpHeaders.IF_UNMODIFIED_SINCE) sistEndret: Instant?, @RequestBody body: SistEndretBody?) { + if (body?.sistEndret != null && sistEndret != null && Duration.between(sistEndret, body.sistEndret).toMinutes() > 1) { + val avvik = Duration.between(sistEndret, body.sistEndret).toMinutes() > 1 + logger.warn("SistEndret-tid i body og header divergerer for refusjon $id med $avvik minutter") + } + val arbeidsgiver = innloggetBrukerService.hentInnloggetArbeidsgiver() + arbeidsgiver.settKontonummerOgInntekterPåRefusjon(id, sistEndret) + } + + data class SistEndretBody(val sistEndret: Instant?) + @PostMapping("/{id}/endre-bruttolønn") @Transactional fun endreBruttolønn(@PathVariable id: String, @RequestBody request: EndreBruttolønnRequest, @RequestHeader(HttpHeaders.IF_UNMODIFIED_SINCE) sistEndret: Instant) {