1
1
package no .nav .foreldrepenger .abakus .aktor ;
2
2
3
+ import java .net .URI ;
3
4
import java .util .List ;
4
5
import java .util .Optional ;
5
6
import java .util .Set ;
18
19
import no .nav .pdl .Identliste ;
19
20
import no .nav .pdl .IdentlisteResponseProjection ;
20
21
import no .nav .vedtak .exception .VLException ;
22
+ import no .nav .vedtak .felles .integrasjon .pdl .JerseyPdlKlient ;
23
+ import no .nav .vedtak .felles .integrasjon .pdl .Pdl ;
21
24
import no .nav .vedtak .felles .integrasjon .pdl .PdlKlient ;
22
- import no .nav .vedtak .felles .integrasjon .pdl .Tema ;
25
+ import no .nav .vedtak .felles .integrasjon .rest .StsAccessTokenConfig ;
26
+ import no .nav .vedtak .konfig .KonfigVerdi ;
23
27
import no .nav .vedtak .util .LRUCache ;
24
28
25
29
@@ -29,28 +33,27 @@ public class AktørTjeneste {
29
33
private static final int DEFAULT_CACHE_SIZE = 1000 ;
30
34
private static final long DEFAULT_CACHE_TIMEOUT = TimeUnit .MILLISECONDS .convert (8 , TimeUnit .HOURS );
31
35
36
+ private static final Set <YtelseType > FORELDREPENGER_YTELSER = Set .of (YtelseType .FORELDREPENGER , YtelseType .SVANGERSKAPSPENGER , YtelseType .ENGANGSTØNAD );
37
+
32
38
private LRUCache <AktørId , PersonIdent > cacheAktørIdTilIdent ;
33
39
private LRUCache <PersonIdent , AktørId > cacheIdentTilAktørId ;
34
40
35
- private PdlKlient pdlKlient ;
36
-
41
+ private Pdl pdlKlientFOR ;
42
+ private Pdl pdlKlientOMS ;
37
43
38
44
public AktørTjeneste () {
39
45
// for CDI proxy
40
46
}
41
47
42
48
@ Inject
43
- public AktørTjeneste (PdlKlient pdlKlient ) {
44
- this .pdlKlient = pdlKlient ;
49
+ public AktørTjeneste (@ KonfigVerdi (value = "pdl.base.url" ,defaultVerdi = "http://pdl-api.default/graphql" ) URI endpoint , StsAccessTokenConfig config ) {
50
+ this .pdlKlientFOR = new JerseyPdlKlient (endpoint , config , "FOR" );
51
+ this .pdlKlientOMS = new JerseyPdlKlient (endpoint , config , "OMS" );
45
52
this .cacheAktørIdTilIdent = new LRUCache <>(DEFAULT_CACHE_SIZE , DEFAULT_CACHE_TIMEOUT );
46
53
this .cacheIdentTilAktørId = new LRUCache <>(DEFAULT_CACHE_SIZE , DEFAULT_CACHE_TIMEOUT );
47
54
}
48
55
49
56
public Optional <AktørId > hentAktørForIdent (PersonIdent fnr , YtelseType ytelse ) {
50
- var tema = ytelse != null ? gjelderTema (ytelse ) : null ;
51
- if (tema == null )
52
- throw new IllegalArgumentException ("Utviklerfeil mangler fagsystem mot PDL" );
53
-
54
57
var request = new HentIdenterQueryRequest ();
55
58
request .setIdent (fnr .getIdent ());
56
59
request .setGrupper (List .of (IdentGruppe .AKTORID ));
@@ -59,7 +62,7 @@ public class AktørTjeneste {
59
62
.identer (new IdentInformasjonResponseProjection ().ident ());
60
63
61
64
try {
62
- var identliste = pdlKlient . hentIdenter (request , projection );
65
+ var identliste = hentIdenterForYtelse (request , projection , ytelse );
63
66
var aktørId = identliste .getIdenter ().stream ().findFirst ().map (IdentInformasjon ::getIdent ).map (AktørId ::new );
64
67
aktørId .ifPresent (a -> cacheIdentTilAktørId .put (fnr , a ));
65
68
return aktørId ;
@@ -72,10 +75,6 @@ public class AktørTjeneste {
72
75
}
73
76
74
77
public Optional <PersonIdent > hentIdentForAktør (AktørId aktørId , YtelseType ytelse ) {
75
- var tema = ytelse != null ? gjelderTema (ytelse ) : null ;
76
- if (tema == null )
77
- throw new IllegalArgumentException ("Utviklerfeil mangler fagsystem mot PDL" );
78
-
79
78
var fraCache = cacheAktørIdTilIdent .get (aktørId );
80
79
if (fraCache != null ) {
81
80
return Optional .of (fraCache );
@@ -90,7 +89,7 @@ public class AktørTjeneste {
90
89
final Identliste identliste ;
91
90
92
91
try {
93
- identliste = pdlKlient . hentIdenter (request , projection );
92
+ identliste = hentIdenterForYtelse (request , projection , ytelse );
94
93
var ident = identliste .getIdenter ().stream ().findFirst ().map (IdentInformasjon ::getIdent ).map (PersonIdent ::new );
95
94
ident .ifPresent (i -> cacheAktørIdTilIdent .put (aktørId , i ));
96
95
return ident ;
@@ -102,7 +101,7 @@ public class AktørTjeneste {
102
101
}
103
102
}
104
103
105
- private static Tema gjelderTema ( YtelseType y ) {
106
- return Set . of ( YtelseType . ENGANGSTØNAD , YtelseType . FORELDREPENGER , YtelseType . SVANGERSKAPSPENGER ). contains (y ) ? Tema . FOR : Tema . OMS ;
104
+ private Identliste hentIdenterForYtelse ( HentIdenterQueryRequest request , IdentlisteResponseProjection projection , YtelseType ytelseType ) {
105
+ return FORELDREPENGER_YTELSER . contains (ytelseType ) ? pdlKlientFOR . hentIdenter ( request , projection ) : pdlKlientOMS . hentIdenter ( request , projection ) ;
107
106
}
108
107
}
0 commit comments