diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/provider/OppdragController.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/provider/OppdragController.java index 17e07ffbdce..9bea11de37e 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/provider/OppdragController.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/provider/OppdragController.java @@ -2,20 +2,27 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragKodeverk; import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest; import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragResponse; +import no.nav.testnav.oppdragservice.service.KodeverkService; import no.nav.testnav.oppdragservice.service.OppdragService; +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.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("/api/v1/oppdrag") @RequiredArgsConstructor public class OppdragController { private final OppdragService oppdragService; + private final KodeverkService kodeverkService; @PostMapping @Operation(summary = "Send inn oppdrag") @@ -23,4 +30,11 @@ public OppdragResponse sendInnOppdrag(@RequestBody OppdragRequest oppdragRequest return oppdragService.sendInnOppdrag(oppdragRequest); } + + @GetMapping("/kodeverk/{kodeverk}") + @Operation(summary = "Hent kodeverk") + public List getKodeverk(@PathVariable OppdragKodeverk kodeverk) { + + return kodeverkService.getKodeverk(kodeverk); + } } diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/KodeverkService.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/KodeverkService.java new file mode 100644 index 00000000000..e51aaeee377 --- /dev/null +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/KodeverkService.java @@ -0,0 +1,19 @@ +package no.nav.testnav.oppdragservice.service; + +import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragKodeverk; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Stream; + +@Service +public class KodeverkService { + + public List getKodeverk(OppdragKodeverk oppdragKodeverk) { + + return Stream.of(oppdragKodeverk.getImplementasjon().getEnumConstants()) + .map(Object::toString) + .sorted() + .toList(); + } +} \ No newline at end of file diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java index daed158f05b..caecdb54c77 100644 --- a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java @@ -2,7 +2,7 @@ import ma.glasnost.orika.MapperFacade; import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; -import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag.ValuteType; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag.ValutaType; import no.nav.testnav.oppdragservice.utilty.Oppdragsdata; import no.nav.testnav.oppdragservice.wsdl.FradragTillegg; import no.nav.testnav.oppdragservice.wsdl.KodeArbeidsgiver; @@ -152,7 +152,7 @@ void mapOppdragsLinjeRequest_OK() { hasProperty("attestantId", is(equalTo(TEXT_VALUE))), hasProperty("datoUgyldigFom", is(equalTo(TARGET_DATE_FORMAT)))))), hasProperty("valuta", contains(allOf( - hasProperty("typeValuta", is(equalTo(ValuteType.FAKT.toString()))), + hasProperty("typeValuta", is(equalTo(ValutaType.FAKT.toString()))), hasProperty("valuta", is(equalTo(TEXT_VALUE))), hasProperty("datoValutaFom", is(equalTo(TARGET_DATE_FORMAT))), hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))) diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java index b16e17d1395..752655381ad 100644 --- a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java @@ -157,7 +157,7 @@ void mapOppdragsLinjeResponse_OK() { hasProperty("attestantId", is(equalTo(TEXT_VALUE))), hasProperty("datoUgyldigFom", is(equalTo(LOCAL_DATE)))))), hasProperty("valuta", contains(allOf( - hasProperty("typeValuta", is(equalTo(Oppdrag.ValuteType.FAKT))), + hasProperty("typeValuta", is(equalTo(Oppdrag.ValutaType.FAKT))), hasProperty("valuta", is(equalTo(TEXT_VALUE))), hasProperty("datoValutaFom", is(equalTo(LOCAL_DATE))), hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))) diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java index 6defd582de4..4e72cea63c2 100644 --- a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java @@ -144,7 +144,7 @@ public static OppdragRequest buildOppdragsLinjeRequest() { .datoUgyldigFom(LOCAL_DATE) .build())) .valuta(List.of(Oppdrag.Valuta.builder() - .typeValuta(Oppdrag.ValuteType.FAKT) + .typeValuta(Oppdrag.ValutaType.FAKT) .valuta(TEXT_VALUE) .datoValutaFom(LOCAL_DATE) .feilreg(TEXT_VALUE) @@ -302,7 +302,7 @@ public static SendInnOppdragResponse buildOppdragslinjeResponse() { oppdragslinje.getAttestant().add(attestant); var valuta = new no.nav.testnav.oppdragservice.wsdl.Valuta(); - valuta.setTypeValuta(Oppdrag.ValuteType.FAKT.toString()); + valuta.setTypeValuta(Oppdrag.ValutaType.FAKT.toString()); valuta.setValuta(TEXT_VALUE); valuta.setDatoValutaFom(TARGET_DATE_FORMAT); valuta.setFeilreg(TEXT_VALUE); diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java index 1954544ee2b..30aad8b5dcf 100644 --- a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java @@ -352,7 +352,7 @@ public static class Attestant { public static class Valuta { @NotBlank - protected ValuteType typeValuta; + protected Oppdrag.ValutaType typeValuta; @NotBlank @Schema(minLength = 1, maxLength = 3) protected String valuta; @@ -431,7 +431,7 @@ public enum UtbetalingFrekvensType { ENG } - public enum ValuteType { + public enum ValutaType { FAKT, FRAM, diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragKodeverk.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragKodeverk.java new file mode 100644 index 00000000000..798bd4320db --- /dev/null +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragKodeverk.java @@ -0,0 +1,25 @@ +package no.nav.testnav.libs.dto.oppdragservice.v1; + +import lombok.Getter; + +@Getter +public enum OppdragKodeverk { + + JA_NEI (Oppdrag.JaNei.class), + KODE_STATUS_LINJE(Oppdrag.KodeStatusLinje.class), + FRADRAG_TILLEGG(Oppdrag.FradragTillegg.class), + KODE_ARBEIDSGIVER(Oppdrag.KodeArbeidsgiver.class), + KODE_STATUS(Oppdrag.KodeStatus.class), + KODE_ENDRING(Oppdrag.KodeEndring.class), + KODE_ENDRING_TYPE(Oppdrag.KodeEndringType.class), + SATS_TYPE(Oppdrag.SatsType.class), + UTBETALING_FREKVENS_TYPE(Oppdrag.UtbetalingFrekvensType.class), + VALUTA_TYPE(Oppdrag.ValutaType.class); + + private Class implementasjon; + + private OppdragKodeverk(Class implementasjon) { + this.implementasjon = implementasjon; + } + } +