use of io.vavr.control.Validation in project veilarbportefolje by navikt.
the class ArbeidslisteService method erVeilederForBruker.
public Validation<String, Fnr> erVeilederForBruker(String fnr) {
VeilederId veilederId = AuthUtils.getInnloggetVeilederIdent();
boolean erVeilederForBruker = ValideringsRegler.validerFnr(fnr).map(validFnr -> erVeilederForBruker(validFnr, veilederId)).getOrElse(false);
if (erVeilederForBruker) {
return valid(Fnr.ofValidFnr(fnr));
}
return invalid(format("Veileder %s er ikke veileder for bruker med fnr %s", veilederId, fnr));
}
use of io.vavr.control.Validation in project veilarbportefolje by navikt.
the class ArbeidsListeController method deleteArbeidslisteListe.
@PostMapping("/delete")
public RestResponse<String> deleteArbeidslisteListe(@RequestBody java.util.List<ArbeidslisteRequest> arbeidslisteData) {
authService.tilgangTilOppfolging();
java.util.List<String> feiledeFnrs = new ArrayList<>();
java.util.List<String> okFnrs = new ArrayList<>();
java.util.List<Fnr> fnrs = arbeidslisteData.stream().map(data -> Fnr.ofValidFnr(data.getFnr())).collect(Collectors.toList());
Validation<List<Fnr>, List<Fnr>> validerFnrs = ValideringsRegler.validerFnrs(fnrs);
Validation<String, List<Fnr>> veilederForBrukere = arbeidslisteService.erVeilederForBrukere(fnrs);
if (validerFnrs.isInvalid() || veilederForBrukere.isInvalid()) {
throw new IllegalStateException(format("%s inneholder ett eller flere ugyldige fødselsnummer", validerFnrs.getError()));
}
validerFnrs.get().forEach(fnr -> {
final int antallRaderSlettet = arbeidslisteService.slettArbeidsliste(fnr);
final AktorId aktoerId = brukerService.hentAktorId(fnr).orElse(new AktorId("uten aktør-ID"));
if (antallRaderSlettet != 1) {
feiledeFnrs.add(fnr.get());
log.warn("Kunne ikke slette arbeidsliste for bruker {} ", aktoerId.get());
} else {
okFnrs.add(fnr.get());
log.info("Arbeidsliste for aktoerid {} slettet", aktoerId.get());
}
});
if (feiledeFnrs.size() == fnrs.size()) {
throw new IllegalStateException();
}
return RestResponse.of(okFnrs, feiledeFnrs);
}
Aggregations