Skip to content

Commit f5ff6f5

Browse files
authored
Add SlettePoppInntektCommand for deleting POPP income entries #deploy-test-dolly-backend (#3765)
1 parent b943435 commit f5ff6f5

File tree

3 files changed

+84
-18
lines changed

3 files changed

+84
-18
lines changed

apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterClient.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ private Flux<String> getErrors(Set<String> miljoer, Throwable throwable) {
9696
@Override
9797
public void release(List<String> identer) {
9898

99-
// Pensjonforvalter / POPP, AP, UT støtter pt ikke sletting
99+
// Pensjonforvalter AP, UT støtter pt ikke sletting
100100

101101
pensjonforvalterConsumer.sletteTpForhold(identer);
102102
pensjonforvalterConsumer.slettePensjonsavtale(identer);
103103
pensjonforvalterConsumer.sletteAfpOffentlig(identer);
104+
pensjonforvalterConsumer.slettePoppinntekt(identer);
104105
}
105106

106107
private String prepInitStatus(Set<String> miljoer) {

apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumer.java

+30-17
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package no.nav.dolly.bestilling.pensjonforvalter;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.sun.jna.Function;
45
import lombok.extern.slf4j.Slf4j;
56
import no.nav.dolly.bestilling.ConsumerStatus;
67
import no.nav.dolly.bestilling.pensjonforvalter.command.AnnullerSamboerCommand;
@@ -19,6 +20,7 @@
1920
import no.nav.dolly.bestilling.pensjonforvalter.command.PensjonHentVedtakCommand;
2021
import no.nav.dolly.bestilling.pensjonforvalter.command.SletteAfpOffentligCommand;
2122
import no.nav.dolly.bestilling.pensjonforvalter.command.SlettePensjonsavtaleCommand;
23+
import no.nav.dolly.bestilling.pensjonforvalter.command.SlettePoppInntektCommand;
2224
import no.nav.dolly.bestilling.pensjonforvalter.command.SletteTpForholdCommand;
2325
import no.nav.dolly.bestilling.pensjonforvalter.domain.AfpOffentligRequest;
2426
import no.nav.dolly.bestilling.pensjonforvalter.domain.AlderspensjonRequest;
@@ -69,30 +71,30 @@ public PensjonforvalterConsumer(
6971
.build();
7072
}
7173

72-
@Timed(name = "providers", tags = { "operation", "pen_getMiljoer" })
74+
@Timed(name = "providers", tags = {"operation", "pen_getMiljoer"})
7375
public Mono<Set<String>> getMiljoer() {
7476

7577
return tokenService.exchange(serverProperties)
7678
.flatMap(token -> new HentMiljoerCommand(webClient, token.getTokenValue()).call());
7779
}
7880

79-
@Timed(name = "providers", tags = { "operation", "popp_lagreInntekt" })
81+
@Timed(name = "providers", tags = {"operation", "popp_lagreInntekt"})
8082
public Flux<PensjonforvalterResponse> lagreInntekter(PensjonPoppInntektRequest pensjonPoppInntektRequest) {
8183

8284
return tokenService.exchange(serverProperties)
8385
.flatMapMany(token -> new LagrePoppInntektCommand(webClient, token.getTokenValue(),
8486
pensjonPoppInntektRequest).call());
8587
}
8688

87-
@Timed(name = "providers", tags = { "operation", "popp_lagreGenerertInntekt" })
89+
@Timed(name = "providers", tags = {"operation", "popp_lagreGenerertInntekt"})
8890
public Flux<PensjonforvalterResponse> lagreGenererteInntekter(PensjonPoppGenerertInntektRequest pensjonPoppGenerertInntektRequest) {
8991

9092
return tokenService.exchange(serverProperties)
9193
.flatMapMany(token -> new LagreGenerertPoppInntektCommand(webClient, token.getTokenValue(),
9294
pensjonPoppGenerertInntektRequest).call());
9395
}
9496

95-
@Timed(name = "providers", tags = { "operation", "pen_opprettPerson" })
97+
@Timed(name = "providers", tags = {"operation", "pen_opprettPerson"})
9698
public Flux<PensjonforvalterResponse> opprettPerson(PensjonPersonRequest pensjonPersonRequest,
9799
Set<String> miljoer) {
98100

@@ -102,15 +104,15 @@ public Flux<PensjonforvalterResponse> opprettPerson(PensjonPersonRequest pensjon
102104
.doOnNext(response -> log.info("Opprettet person for {}: {}", pensjonPersonRequest.getFnr(), response));
103105
}
104106

105-
@Timed(name = "providers", tags = { "operation", "pen_hentSamboer" })
107+
@Timed(name = "providers", tags = {"operation", "pen_hentSamboer"})
106108
public Flux<PensjonSamboerResponse> hentSamboer(String ident, String miljoe) {
107109

108110
return tokenService.exchange(serverProperties)
109111
.flatMapMany(token -> new HentSamboerCommand(webClient, ident, miljoe, token.getTokenValue()).call())
110112
.doOnNext(response -> log.info("Pensjon samboer for {} i {} hentet {}", ident, miljoe, response));
111113
}
112114

113-
@Timed(name = "providers", tags = { "operation", "pen_opprettSamboer" })
115+
@Timed(name = "providers", tags = {"operation", "pen_opprettSamboer"})
114116
public Flux<PensjonforvalterResponse> lagreSamboer(PensjonSamboerRequest pensjonSamboerRequest,
115117
String miljoe) {
116118
log.info("Oppretter samboerskap i pensjon: {}", pensjonSamboerRequest);
@@ -119,36 +121,36 @@ public Flux<PensjonforvalterResponse> lagreSamboer(PensjonSamboerRequest pensjon
119121
.flatMapMany(token -> new LagreSamboerCommand(webClient, pensjonSamboerRequest, miljoe, token.getTokenValue()).call());
120122
}
121123

122-
@Timed(name = "providers", tags = { "operation", "pen_opprettSamboer" })
124+
@Timed(name = "providers", tags = {"operation", "pen_opprettSamboer"})
123125
public Flux<PensjonforvalterResponse> annullerSamboer(String periodeId, String miljoe) {
124126

125127
return tokenService.exchange(serverProperties)
126128
.flatMapMany(token -> new AnnullerSamboerCommand(webClient, periodeId, miljoe, token.getTokenValue()).call());
127129
}
128130

129-
@Timed(name = "providers", tags = { "operation", "pen_lagreAlderspensjon" })
131+
@Timed(name = "providers", tags = {"operation", "pen_lagreAlderspensjon"})
130132
public Flux<PensjonforvalterResponse> lagreAlderspensjon(AlderspensjonRequest request) {
131133

132134
return tokenService.exchange(serverProperties)
133135
.flatMapMany(token ->
134136
new LagreAlderspensjonCommand(webClient, token.getTokenValue(), request).call());
135137
}
136138

137-
@Timed(name = "providers", tags = { "operation", "pen_lagreUforetrygd" })
139+
@Timed(name = "providers", tags = {"operation", "pen_lagreUforetrygd"})
138140
public Flux<PensjonforvalterResponse> lagreUforetrygd(PensjonUforetrygdRequest request) {
139141

140142
return tokenService.exchange(serverProperties)
141143
.flatMapMany(token -> new LagreUforetrygdCommand(webClient, token.getTokenValue(), request).call());
142144
}
143145

144-
@Timed(name = "providers", tags = { "operation", "pen_lagreTpForhold" })
146+
@Timed(name = "providers", tags = {"operation", "pen_lagreTpForhold"})
145147
public Flux<PensjonforvalterResponse> lagreTpForhold(PensjonTpForholdRequest pensjonTpForholdRequest) {
146148

147149
return tokenService.exchange(serverProperties)
148150
.flatMapMany(token -> new LagreTpForholdCommand(webClient, token.getTokenValue(), pensjonTpForholdRequest).call());
149151
}
150152

151-
@Timed(name = "providers", tags = { "operation", "pen_sletteTpForhold" })
153+
@Timed(name = "providers", tags = {"operation", "pen_sletteTpForhold"})
152154
public void sletteTpForhold(List<String> identer) {
153155

154156
tokenService.exchange(serverProperties)
@@ -160,21 +162,21 @@ public void sletteTpForhold(List<String> identer) {
160162
.subscribe(response -> log.info("Slettet mot PESYS (tp) i alle miljoer"));
161163
}
162164

163-
@Timed(name = "providers", tags = { "operation", "pen_lagreTpYtelse" })
165+
@Timed(name = "providers", tags = {"operation", "pen_lagreTpYtelse"})
164166
public Flux<PensjonforvalterResponse> lagreTpYtelse(PensjonTpYtelseRequest pensjonTpYtelseRequest) {
165167

166168
return tokenService.exchange(serverProperties)
167169
.flatMapMany(token -> new LagreTpYtelseCommand(webClient, token.getTokenValue(), pensjonTpYtelseRequest).call());
168170
}
169171

170-
@Timed(name = "providers", tags = { "operation", "pen_lagrePensjpnsavtale" })
172+
@Timed(name = "providers", tags = {"operation", "pen_lagrePensjpnsavtale"})
171173
public Flux<PensjonforvalterResponse> lagrePensjonsavtale(PensjonsavtaleRequest pensjonsavtaleRequest) {
172174

173175
return tokenService.exchange(serverProperties)
174176
.flatMapMany(token -> new LagrePensjonsavtaleCommand(webClient, pensjonsavtaleRequest, token.getTokenValue()).call());
175177
}
176178

177-
@Timed(name = "providers", tags = { "operation", "pen_slettePensjpnsavtale" })
179+
@Timed(name = "providers", tags = {"operation", "pen_slettePensjpnsavtale"})
178180
public void slettePensjonsavtale(List<String> identer) {
179181

180182
tokenService.exchange(serverProperties)
@@ -184,7 +186,18 @@ public void slettePensjonsavtale(List<String> identer) {
184186
.subscribe(resultat -> log.info("Slettet pensjonsavtaler (PEN), alle miljøer"));
185187
}
186188

187-
@Timed(name = "providers", tags = { "operation", "pen_hentVedtak" })
189+
@Timed(name = "providers", tags = {"operation", "pen_slettePoppinntekt"})
190+
public void slettePoppinntekt(List<String> identer) {
191+
192+
tokenService.exchange(serverProperties)
193+
.flatMap(token -> Flux.from(new HentMiljoerCommand(webClient, token.getTokenValue()).call())
194+
.flatMap(miljoer -> Flux.fromIterable(identer)
195+
.flatMap(ident -> new SlettePoppInntektCommand(webClient, ident, miljoer, token.getTokenValue()).call()))
196+
.collectList())
197+
.subscribe(resultat -> log.info("Slettet POPP-inntekt, alle miljøer"));
198+
}
199+
200+
@Timed(name = "providers", tags = {"operation", "pen_hentVedtak"})
188201
public Flux<PensjonVedtakResponse> hentVedtak(String ident, String miljoe) {
189202

190203
return tokenService.exchange(serverProperties)
@@ -193,14 +206,14 @@ public Flux<PensjonVedtakResponse> hentVedtak(String ident, String miljoe) {
193206
ident, miljoe, response));
194207
}
195208

196-
@Timed(name = "providers", tags = { "operation", "pen_lagreAfpOffentlig" })
209+
@Timed(name = "providers", tags = {"operation", "pen_lagreAfpOffentlig"})
197210
public Flux<PensjonforvalterResponse> lagreAfpOffentlig(AfpOffentligRequest afpOffentligRequest, String ident, String miljoe) {
198211

199212
return tokenService.exchange(serverProperties)
200213
.flatMapMany(token -> new LagreAfpOffentligCommand(webClient, afpOffentligRequest, ident, miljoe, token.getTokenValue()).call());
201214
}
202215

203-
@Timed(name = "providers", tags = { "operation", "pen_sletteAfpOffentlig" })
216+
@Timed(name = "providers", tags = {"operation", "pen_sletteAfpOffentlig"})
204217
public void sletteAfpOffentlig(List<String> identer) {
205218

206219
tokenService.exchange(serverProperties)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package no.nav.dolly.bestilling.pensjonforvalter.command;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonforvalterResponse;
5+
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
6+
import no.nav.testnav.libs.securitycore.config.UserConstant;
7+
import org.springframework.http.HttpStatus;
8+
import org.springframework.web.reactive.function.client.WebClient;
9+
import reactor.core.publisher.Flux;
10+
import reactor.core.publisher.Mono;
11+
12+
import java.util.Collections;
13+
import java.util.List;
14+
import java.util.Set;
15+
import java.util.concurrent.Callable;
16+
17+
import static no.nav.dolly.domain.CommonKeysAndUtils.CONSUMER;
18+
import static no.nav.dolly.domain.CommonKeysAndUtils.HEADER_NAV_CALL_ID;
19+
import static no.nav.dolly.domain.CommonKeysAndUtils.HEADER_NAV_CONSUMER_ID;
20+
import static no.nav.dolly.util.CallIdUtil.generateCallId;
21+
import static no.nav.dolly.util.TokenXUtil.getUserJwt;
22+
import static org.springframework.http.HttpHeaders.AUTHORIZATION;
23+
24+
@RequiredArgsConstructor
25+
public class SlettePoppInntektCommand implements Callable<Flux<PensjonforvalterResponse>> {
26+
27+
private static final String POPP_DELETE_URL = "/api/v1/popp/person";
28+
29+
private final WebClient webClient;
30+
private final String ident;
31+
private final Set<String> miljoer;
32+
private final String token;
33+
34+
public Flux<PensjonforvalterResponse> call() {
35+
36+
return webClient
37+
.delete()
38+
.uri(uriBuilder -> uriBuilder
39+
.path(POPP_DELETE_URL)
40+
.queryParam("miljoer", miljoer)
41+
.build())
42+
.header("pid", ident)
43+
.header(AUTHORIZATION, "Bearer " + token)
44+
.header(UserConstant.USER_HEADER_JWT, getUserJwt())
45+
.header(HEADER_NAV_CALL_ID, generateCallId())
46+
.header(HEADER_NAV_CONSUMER_ID, CONSUMER)
47+
.retrieve()
48+
.bodyToFlux(PensjonforvalterResponse.class)
49+
.doOnError(WebClientFilter::logErrorMessage)
50+
.onErrorResume(Exception.class, error -> Mono.empty());
51+
}
52+
}

0 commit comments

Comments
 (0)