use of no.nav.pto.veilarbportefolje.domene.Bruker in project veilarbportefolje by navikt.
the class OpensearchService method hentBrukereMedArbeidsliste.
public List<Bruker> hentBrukereMedArbeidsliste(String veilederId, String enhetId) {
SearchSourceBuilder request = byggArbeidslisteQuery(enhetId, veilederId);
OpensearchResponse response = search(request, indexName.getValue(), OpensearchResponse.class);
return response.hits().getHits().stream().map(hit -> Bruker.of(hit.get_source(), erVedtakstottePilotPa(EnhetId.of(enhetId)))).collect(toList());
}
use of no.nav.pto.veilarbportefolje.domene.Bruker in project veilarbportefolje by navikt.
the class OpensearchService method hentBrukere.
public BrukereMedAntall hentBrukere(String enhetId, Optional<String> veilederIdent, String sortOrder, String sortField, Filtervalg filtervalg, Integer fra, Integer antall) {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
int from = Optional.ofNullable(fra).orElse(0);
int size = Optional.ofNullable(antall).orElse(5000);
searchSourceBuilder.from(from);
searchSourceBuilder.size(size);
BoolQueryBuilder boolQuery = boolQuery();
boolQuery.must(matchQuery("enhet_id", enhetId));
boolQuery.must(matchQuery("oppfolging", true));
boolean kallesFraMinOversikt = veilederIdent.isPresent() && StringUtils.isNotBlank(veilederIdent.get());
if (kallesFraMinOversikt) {
boolQuery.filter(termQuery("veileder_id", veilederIdent.get()));
}
List<String> veiledereMedTilgangTilEnhet = veilarbVeilederClient.hentVeilederePaaEnhet(EnhetId.of(enhetId));
if (filtervalg.harAktiveFilter()) {
boolean erVedtakstottePilotPa = erVedtakstottePilotPa(EnhetId.of(enhetId));
filtervalg.ferdigfilterListe.forEach(filter -> boolQuery.filter(leggTilFerdigFilter(filter, veiledereMedTilgangTilEnhet, erVedtakstottePilotPa)));
leggTilManuelleFilter(boolQuery, filtervalg, unleashService);
}
searchSourceBuilder.query(boolQuery);
if (kallesFraMinOversikt) {
searchSourceBuilder.sort("ny_for_veileder", SortOrder.DESC);
} else {
sorterPaaNyForEnhet(searchSourceBuilder, veiledereMedTilgangTilEnhet);
}
sorterQueryParametere(sortOrder, sortField, searchSourceBuilder, filtervalg);
OpensearchResponse response = search(searchSourceBuilder, indexName.getValue(), OpensearchResponse.class);
int totalHits = response.hits().getTotal().getValue();
List<Bruker> brukere = response.hits().getHits().stream().map(Hit::get_source).map(oppfolgingsBruker -> setNyForEnhet(oppfolgingsBruker, veiledereMedTilgangTilEnhet)).map(oppfolgingsBruker -> mapOppfolgingsBrukerTilBruker(oppfolgingsBruker, filtervalg, enhetId)).collect(toList());
return new BrukereMedAntall(totalHits, brukere);
}
use of no.nav.pto.veilarbportefolje.domene.Bruker in project veilarbportefolje by navikt.
the class VeilederController method hentPortefoljeForVeileder.
@PostMapping("/{veilederident}/portefolje")
public Portefolje hentPortefoljeForVeileder(@PathVariable("veilederident") String veilederIdent, @RequestParam("enhet") String enhet, @RequestParam(value = "fra", required = false) Integer fra, @RequestParam(value = "antall", required = false) Integer antall, @RequestParam("sortDirection") String sortDirection, @RequestParam("sortField") String sortField, @RequestBody Filtervalg filtervalg) {
ValideringsRegler.sjekkVeilederIdent(veilederIdent, false);
ValideringsRegler.sjekkEnhet(enhet);
ValideringsRegler.sjekkSortering(sortDirection, sortField);
ValideringsRegler.sjekkFiltervalg(filtervalg);
authService.tilgangTilOppfolging();
authService.tilgangTilEnhet(enhet);
String ident = AuthUtils.getInnloggetVeilederIdent().toString();
String identHash = DigestUtils.md5Hex(ident).toUpperCase();
BrukereMedAntall brukereMedAntall = opensearchService.hentBrukere(enhet, Optional.of(veilederIdent), sortDirection, sortField, filtervalg, fra, antall);
List<Bruker> sensurerteBrukereSublist = authService.sensurerBrukere(brukereMedAntall.getBrukere());
Portefolje portefolje = PortefoljeUtils.buildPortefolje(brukereMedAntall.getAntall(), sensurerteBrukereSublist, enhet, Optional.ofNullable(fra).orElse(0));
Event event = new Event("minoversiktportefolje.lastet");
event.addFieldToReport("identhash", identHash);
metricsClient.report(event);
return portefolje;
}
use of no.nav.pto.veilarbportefolje.domene.Bruker in project veilarbportefolje by navikt.
the class EnhetController method hentPortefoljeForEnhet.
@PostMapping("/{enhet}/portefolje")
public Portefolje hentPortefoljeForEnhet(@PathVariable("enhet") String enhet, @RequestParam(value = "fra", required = false) Integer fra, @RequestParam(value = "antall", required = false) Integer antall, @RequestParam("sortDirection") String sortDirection, @RequestParam("sortField") String sortField, @RequestBody Filtervalg filtervalg) {
ValideringsRegler.sjekkEnhet(enhet);
ValideringsRegler.sjekkSortering(sortDirection, sortField);
ValideringsRegler.sjekkFiltervalg(filtervalg);
authService.tilgangTilOppfolging();
authService.tilgangTilEnhet(enhet);
String ident = AuthUtils.getInnloggetVeilederIdent().toString();
String identHash = DigestUtils.md5Hex(ident).toUpperCase();
BrukereMedAntall brukereMedAntall = opensearchService.hentBrukere(enhet, Optional.empty(), sortDirection, sortField, filtervalg, fra, antall);
List<Bruker> sensurerteBrukereSublist = authService.sensurerBrukere(brukereMedAntall.getBrukere());
Portefolje portefolje = PortefoljeUtils.buildPortefolje(brukereMedAntall.getAntall(), sensurerteBrukereSublist, enhet, Optional.ofNullable(fra).orElse(0));
Event event = new Event("enhetsportefolje.lastet");
event.addFieldToReport("identhash", identHash);
metricsClient.report(event);
return portefolje;
}
Aggregations