Skip to content

Commit 5de1a6a

Browse files
committed
OPHYK-214 Make varda-rekisterointi not fail on startup if it can't connect to organisaatio service
1 parent 69d65ab commit 5de1a6a

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

varda-rekisterointi/src/main/java/fi/vm/sade/varda/rekisterointi/service/OrganisaatioService.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import fi.vm.sade.varda.rekisterointi.model.*;
55
import org.slf4j.Logger;
66
import org.slf4j.LoggerFactory;
7+
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.stereotype.Service;
89

910
import java.time.LocalDate;
@@ -36,11 +37,21 @@ public class OrganisaatioService {
3637
private static final String EMAIL_TYYPPI = "email";
3738
private static final Pattern YRITYSMUOTOURI_PATTERN = Pattern.compile("yritysmuoto_\\d+");
3839

40+
@Autowired private final KoodistoClient koodistoClient;
3941
private final Map<String,Koodi> yritysmuotoUriToKoodi = new HashMap<>();
4042

4143
public OrganisaatioService(KoodistoClient koodistoClient) {
42-
koodistoClient.listKoodit(KoodistoType.YRITYSMUOTO).forEach(
43-
koodi -> yritysmuotoUriToKoodi.put(koodi.uri, koodi));
44+
this.koodistoClient = koodistoClient;
45+
tryUpdateYritysmuotoKoodisto();
46+
}
47+
48+
private void tryUpdateYritysmuotoKoodisto() {
49+
try {
50+
koodistoClient.listKoodit(KoodistoType.YRITYSMUOTO).forEach(
51+
koodi -> yritysmuotoUriToKoodi.put(koodi.uri, koodi));
52+
} catch (Exception e) {
53+
LOGGER.error("Failed to fetch koodisto data", e);
54+
}
4455
}
4556

4657
/**
@@ -115,13 +126,20 @@ List<OrganisaatioNimi> organisaatioNimet(KielistettyNimi kielistettyNimi) {
115126
return List.of(organisaatioNimi);
116127
}
117128

129+
private Koodi getYritysmuotoFromUri(String uri) {
130+
if (yritysmuotoUriToKoodi.isEmpty()) {
131+
tryUpdateYritysmuotoKoodisto();
132+
}
133+
return yritysmuotoUriToKoodi.get(uri);
134+
}
135+
118136
// organisaatiopalvelu tallentaa ikävä kyllä kielistettyjä yritysmuotoja,
119137
// muunnetaan kunnes saadaan organisaatiopalvelu järkevämpään kuosiin
120138
String yritysMuotoKoodiUriToNimi(String uri) {
121139
String nimi = null;
122140
if (YRITYSMUOTOURI_PATTERN.matcher(uri).matches()) {
123141
LOGGER.info("Muunnetaan yritysmuotokoodi: {}", uri);
124-
Koodi koodi = yritysmuotoUriToKoodi.get(uri);
142+
Koodi koodi = getYritysmuotoFromUri(uri);
125143
if (koodi != null) {
126144
nimi = koodi.nimi.get(DEFAULT_KIELI_KOODI_ARVO);
127145
} else {

0 commit comments

Comments
 (0)