Skip to content

Commit

Permalink
Feature/kodeverk kommuner2024 (#3459)
Browse files Browse the repository at this point in the history
Lagt til nytt kodeverk, Kommuner2024, og referert til denne fra klientene
  • Loading branch information
krharum authored Apr 5, 2024
1 parent 2a4b97c commit 58f4072
Show file tree
Hide file tree
Showing 12 changed files with 179 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { DollySelect } from '@/components/ui/form/inputs/select/Select'
import { AdresseKodeverk } from '@/config/kodeverk'
import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst'
import styled from 'styled-components'
import { Search } from '@navikt/ds-react'
import { Button } from '@navikt/ds-react'

type Props = {
Expand Down Expand Up @@ -42,7 +41,7 @@ export default ({ onSubmit, loading = false }: Props) => {
<DollySelect
name="kommunenummer"
label="Kommunenummer"
kodeverk={AdresseKodeverk.Kommunenummer}
kodeverk={AdresseKodeverk.Kommunenummer2024}
size="grow"
value={kommunenummer}
onChange={(e: any) => setKommunenummer(e ? e.value : null)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export const Matrikkeladresse = ({ path }: MatrikkeladresseValues) => {
<FormSelect
name={`${path}.kommunenummer`}
label="Kommunenummer"
kodeverk={AdresseKodeverk.Kommunenummer}
kodeverk={AdresseKodeverk.Kommunenummer2024}
size="large"
isClearable={false}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export const UkjentBosted = ({ path }: UkjentBostedValues) => {
<FormSelect
name={`${path}.bostedskommune`}
label="Bostedskommune"
kodeverk={AdresseKodeverk.Kommunenummer}
kodeverk={AdresseKodeverk.Kommunenummer2024}
size="large"
/>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export const VegadresseVelger = ({ formMethods, path }: VegadressevelgerValues)
<FormSelect
name={`${path}.kommunenummer`}
label="Kommunenummer"
kodeverk={AdresseKodeverk.Kommunenummer}
kodeverk={AdresseKodeverk.Kommunenummer2024}
size="large"
isClearable={false}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export enum AdresseKodeverk {
Postnummer = 'Postnummer',
PostnummerUtenPostboks = 'Postnummer vegadresser',
Kommunenummer = 'Kommuner',
Kommunenummer2024 = 'Kommuner2024',

PostadresseLand = 'LandAdresserFreg',
StatsborgerskapLand = 'StatsborgerskapFreg',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export const SortKodeverkArray = (data) => {
data.name === 'Postnummer' ||
data.name === 'Postnummer vegadresser' ||
data.name === 'Kommuner' ||
data.name === 'Kommuner2024' ||
data.name === 'Bydeler' ||
data.name === 'Næringskoder' ||
data.name === 'Sektorkoder'
Expand Down
5 changes: 3 additions & 2 deletions apps/kodeverk-service/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Testnav-Kodeverk-Service
Henter, formatterer, og cacher data fra felles kodeverk.

Henter, formatterer, og cacher data fra felles kodeverk.</br>
Lagt til eget kodeverk, Kommuner2024, som henter Kommuner og fjerner gamle kommunenummere

## Swagger
Swagger finnes under [/swagger](https://testnav-kodeverk-service.intern.dev.nav.no/swagger-ui.html) -endepunktet til
applikasjonen.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import no.nav.testnav.kodeverkservice.service.KodeverkService;
import no.nav.testnav.kodeverkservice.utility.KommunerUtility;
import no.nav.testnav.libs.dto.kodeverkservice.v1.KodeverkAdjustedDTO;
import no.nav.testnav.libs.dto.kodeverkservice.v1.KodeverkDTO;
import org.springframework.cache.annotation.Cacheable;
Expand All @@ -16,6 +17,8 @@

import static no.nav.testnav.kodeverkservice.config.CacheConfig.CACHE_KODEVERK;
import static no.nav.testnav.kodeverkservice.config.CacheConfig.CACHE_KODEVERK_2;
import static no.nav.testnav.kodeverkservice.utility.KommunerUtility.KOMMUNER;
import static no.nav.testnav.kodeverkservice.utility.KommunerUtility.KOMMUNER2024;

@RestController
@RequestMapping("/api/v1/kodeverk")
Expand All @@ -30,14 +33,24 @@ public class KodeverkController {
@Operation(description = "Hent kodeverk, returnerer map")
public Mono<KodeverkDTO> fetchKodeverk(@RequestParam String kodeverk) {

return kodeverkService.getKodeverkMap(kodeverk);
return !KOMMUNER2024.equals(kodeverk) ?

kodeverkService.getKodeverkMap(kodeverk) :

kodeverkService.getKodeverkMap(KOMMUNER)
.map(KommunerUtility::filterKommuner2024);
}

@Cacheable(value = CACHE_KODEVERK_2, unless = "#result.koder?.size() == 0")
@GetMapping("/{kodeverkNavn}")
@Operation(description = "Hent kodeverk etter kodeverkNavn")
public Mono<KodeverkAdjustedDTO> getKodeverkByName(@PathVariable("kodeverkNavn") String kodeverkNavn) {

return kodeverkService.getKodeverkByName(kodeverkNavn);
return !KOMMUNER2024.equals(kodeverkNavn) ?

kodeverkService.getKodeverkByName(kodeverkNavn) :

kodeverkService.getKodeverkByName(KOMMUNER)
.map(KommunerUtility::filterKommuner2024);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
package no.nav.testnav.kodeverkservice.utility;

import lombok.Getter;
import lombok.experimental.UtilityClass;
import no.nav.testnav.libs.dto.kodeverkservice.v1.KodeverkAdjustedDTO;
import no.nav.testnav.libs.dto.kodeverkservice.v1.KodeverkDTO;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

@UtilityClass
public class KommunerUtility {

public static final String KOMMUNER = "Kommuner";
public static final String KOMMUNER2024 = "Kommuner2024";

@Getter
private static final Set<String> gamleKommunenummer = new HashSet<>();

static {
gamleKommunenummer.add("3043"); // Ål
gamleKommunenummer.add("1507"); // Ålesund
gamleKommunenummer.add("5403"); // Alta
gamleKommunenummer.add("3012"); // Aremark
gamleKommunenummer.add("3021"); // Ås
gamleKommunenummer.add("3025"); // Asker
gamleKommunenummer.add("3026"); // Aurskog-Høland
gamleKommunenummer.add("3024"); // Bærum
gamleKommunenummer.add("5422"); // Balsfjord
gamleKommunenummer.add("3813"); // Bamble
gamleKommunenummer.add("5416"); // Bardu
gamleKommunenummer.add("5443"); // Båtsfjord
gamleKommunenummer.add("5440"); // Berlevåg
gamleKommunenummer.add("3005"); // Drammen
gamleKommunenummer.add("3815"); // Drangedal
gamleKommunenummer.add("5420"); // Dyrøy
gamleKommunenummer.add("3035"); // Eidsvoll
gamleKommunenummer.add("3028"); // Enebakk
gamleKommunenummer.add("3811"); // Færder
gamleKommunenummer.add("3039"); // Flå
gamleKommunenummer.add("3050"); // Flesberg
gamleKommunenummer.add("3004"); // Fredrikstad
gamleKommunenummer.add("3022"); // Frogn
gamleKommunenummer.add("3823"); // Fyresdal
gamleKommunenummer.add("5439"); // Gamvik
gamleKommunenummer.add("3032"); // Gjerdrum
gamleKommunenummer.add("3041"); // Gol
gamleKommunenummer.add("5414"); // Gratangen
gamleKommunenummer.add("3001"); // Halden
gamleKommunenummer.add("5406"); // Hammerfest
gamleKommunenummer.add("5402"); // Harstad
gamleKommunenummer.add("5433"); // Hasvik
gamleKommunenummer.add("3042"); // Hemsedal
gamleKommunenummer.add("1515"); // Herøy
gamleKommunenummer.add("3819"); // Hjartdal
gamleKommunenummer.add("3044"); // Hol
gamleKommunenummer.add("3038"); // Hole
gamleKommunenummer.add("3802"); // Holmestrand
gamleKommunenummer.add("3801"); // Horten
gamleKommunenummer.add("3037"); // Hurdal
gamleKommunenummer.add("3011"); // Hvaler
gamleKommunenummer.add("5413"); // Ibestad
gamleKommunenummer.add("3014"); // Indre Østfold
gamleKommunenummer.add("3053"); // Jevnaker
gamleKommunenummer.add("5423"); // Karlsøy
gamleKommunenummer.add("3006"); // Kongsberg
gamleKommunenummer.add("3814"); // Kragerø
gamleKommunenummer.add("3046"); // Krødsherad
gamleKommunenummer.add("5411"); // Kvæfjord
gamleKommunenummer.add("5429"); // Kvænangen
gamleKommunenummer.add("3821"); // Kviteseid
gamleKommunenummer.add("3805"); // Larvik
gamleKommunenummer.add("5438"); // Lebesby
gamleKommunenummer.add("3049"); // Lier
gamleKommunenummer.add("3030"); // Lillestrøm
gamleKommunenummer.add("5432"); // Loppa
gamleKommunenummer.add("3029"); // Lørenskog
gamleKommunenummer.add("3054"); // Lunner
gamleKommunenummer.add("5424"); // Lyngen
gamleKommunenummer.add("5418"); // Målselv
gamleKommunenummer.add("3013"); // Marker
gamleKommunenummer.add("5434"); // Måsøy
gamleKommunenummer.add("3817"); // Midt-Telemark
gamleKommunenummer.add("3047"); // Modum
gamleKommunenummer.add("3002"); // Moss
gamleKommunenummer.add("3036"); // Nannestad
gamleKommunenummer.add("3034"); // Nes
gamleKommunenummer.add("3040"); // Nesbyen
gamleKommunenummer.add("3023"); // Nesodden
gamleKommunenummer.add("3822"); // Nissedal
gamleKommunenummer.add("3031"); // Nittedal
gamleKommunenummer.add("3816"); // Nome
gamleKommunenummer.add("5435"); // Nordkapp
gamleKommunenummer.add("3020"); // Nordre Follo
gamleKommunenummer.add("3052"); // Nore og Uvdal
gamleKommunenummer.add("3808"); // Notodden
gamleKommunenummer.add("3048"); // Øvre Eiker
gamleKommunenummer.add("3806"); // Porsgrunn
gamleKommunenummer.add("3017"); // Råde
gamleKommunenummer.add("3027"); // Rælingen
gamleKommunenummer.add("3016"); // Rakkestad
gamleKommunenummer.add("3007"); // Ringerike
gamleKommunenummer.add("3051"); // Rollag
gamleKommunenummer.add("5417"); // Salangen
gamleKommunenummer.add("3804"); // Sandefjord
gamleKommunenummer.add("3003"); // Sarpsborg
gamleKommunenummer.add("3820"); // Seljord
gamleKommunenummer.add("5421"); // Senja
gamleKommunenummer.add("3045"); // Sigdal
gamleKommunenummer.add("3812"); // Siljan
gamleKommunenummer.add("3807"); // Skien
gamleKommunenummer.add("3015"); // Skiptvet
gamleKommunenummer.add("5427"); // Skjervøy
gamleKommunenummer.add("5419"); // Sørreisa
gamleKommunenummer.add("5444"); // Sør-Varanger
gamleKommunenummer.add("3818"); // Tinn
gamleKommunenummer.add("5412"); // Tjeldsund
gamleKommunenummer.add("3824"); // Tokke
gamleKommunenummer.add("3803"); // Tønsberg
gamleKommunenummer.add("5401"); // Tromsø
gamleKommunenummer.add("3033"); // Ullensaker
gamleKommunenummer.add("5405"); // Vadsø
gamleKommunenummer.add("5404"); // Vardø
gamleKommunenummer.add("3019"); // Vestby
gamleKommunenummer.add("3825"); // Vinje
}

public static KodeverkAdjustedDTO filterKommuner2024(KodeverkAdjustedDTO response) {

return KodeverkAdjustedDTO.builder()
.name(KOMMUNER2024)
.koder(
response.getKoder().stream()
.filter(kode -> !gamleKommunenummer.contains(kode.getValue()))
.toList())
.build();
}

public static KodeverkDTO filterKommuner2024(KodeverkDTO response) {

return KodeverkDTO.builder()
.kodeverknavn(KOMMUNER2024)
.kodeverk(
response.getKodeverk().entrySet().stream()
.filter(entry ->!gamleKommunenummer.contains(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)))
.build();
}
}
2 changes: 1 addition & 1 deletion apps/kodeverk-service/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ AAD_ISSUER_URI: https://login.microsoftonline.com/62366534-1ec3-4962-8869-9b5535
spring:
application:
name: testnav-kodeverk-service
description: Tjeneste for å hente fra felles kodeverk
description: Tjeneste for å hente fra felles kodeverk.</br>Lagt til eget kodeverk, Kommuner2024, som henter Kommuner og fjerner gamle kommunenummere.
security:
oauth2:
resourceserver:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class KodeverkConsumer {

private static final String POSTNUMMER = "Postnummer";
private static final String LANDKODER = "Landkoder";
private static final String KOMMUNER = "Kommuner";
private static final String KOMMUNER = "Kommuner2024";
private static final String EMBETER = "Vergemål_Fylkesmannsembeter";
private static final Random random = new SecureRandom();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public Mono<KodeverkDTO> call() {
.bodyToMono(KodeverkDTO.class)
.doFinally(value -> log.info("Kodeverk {} hentet", kodeverknavn))
.retryWhen(Retry.backoff(3, Duration.ofSeconds(5))
.filter(WebClientFilter::is5xxException));
.filter(WebClientFilter::is5xxException))
.cache(Duration.ofHours(8));
}
}

0 comments on commit 58f4072

Please sign in to comment.