Skip to content

Commit

Permalink
Refactor tilgang handling to return Mono<TilgangDTO> and improve data…
Browse files Browse the repository at this point in the history
… structure for user access #deploy-test-bruker-service #deploy-bruker-service
  • Loading branch information
krharum committed Feb 28, 2025
1 parent 63d001e commit 0d671e8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package no.nav.testnav.apps.brukerservice.controller;

import lombok.RequiredArgsConstructor;
import no.nav.testnav.apps.brukerservice.dto.TilgangDTO;
import no.nav.testnav.apps.brukerservice.service.TilgangService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

@RestController
@RequestMapping("/api/v1/tilgang")
Expand All @@ -15,7 +16,7 @@ public class TilgangController {
private final TilgangService tilgangService;

@GetMapping
public Flux<String> getBrukereISammeOrganisasjon(String brukerId) {
public Mono<TilgangDTO> getBrukereISammeOrganisasjon(String brukerId) {

return tilgangService.getBrukereISammeOrganisasjon(brukerId);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package no.nav.testnav.apps.brukerservice.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TilgangDTO {

private List<String> brukere;
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
package no.nav.testnav.apps.brukerservice.service;

import lombok.RequiredArgsConstructor;
import no.nav.testnav.apps.brukerservice.dto.TilgangDTO;
import no.nav.testnav.apps.brukerservice.repository.UserEntity;
import no.nav.testnav.apps.brukerservice.repository.UserRepository;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

@Service
@RequiredArgsConstructor
public class TilgangService {

private final UserRepository userRepository;

public Flux<String> getBrukereISammeOrganisasjon(String brukerId) {
public Mono<TilgangDTO> getBrukereISammeOrganisasjon(String brukerId) {

return userRepository.findBrukereISammeOrganisasjoner(brukerId)
.mapNotNull(UserEntity::getId);
.mapNotNull(UserEntity::getId)
.collectList()
.map(TilgangDTO::new);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,7 @@ private void sjekkTilgang(Long gruppeId, Integer pageNo, Integer pageSize) {

var bruker = brukerService.fetchOrCreateBruker();
if (bruker.getBrukertype() == BANKID) {
log.info("Sjekker tilgang for bruker: {}, brukertype: {}", bruker.getBrukerId(), bruker.getBrukertype());
brukerServiceConsumer.getKollegaerIOrganisasjon(bruker.getBrukerId())
.doOnNext(brukere -> log.info("BrukerServiceConsumer hentet {} kollegaer for bruker: {}",
String.join(",", brukere), bruker.getBrukerId()))
.map(testgruppeRepository::findAllByOpprettetAv_BrukerIdIn)
.filter(page -> page.stream().anyMatch(gruppe -> gruppe.equals(gruppeId)))
.switchIfEmpty(Mono.error(new NotFoundException(format("Gruppe med id %s ble ikke funnet.", gruppeId))))
Expand All @@ -124,11 +121,8 @@ public Testgruppe fetchTestgruppeById(Long gruppeId) {
public Mono<Page<Testgruppe>> getAllTestgrupper(Integer pageNo, Integer pageSize) {

var bruker = brukerService.fetchOrCreateBruker();
log.info("Henter testgrupper for bruker: {}, brukertype: {}", bruker.getBrukerId(), bruker.getBrukertype());
if (bruker.getBrukertype() == BANKID) {
return brukerServiceConsumer.getKollegaerIOrganisasjon(bruker.getBrukerId())
.doOnNext(brukere -> log.info("BrukerServiceConsumer hentet {} kollegaer for bruker: {}",
String.join(",", brukere), bruker.getBrukerId()))
.map(brukere -> testgruppeRepository.findAllByOpprettetAv_BrukerIdIn(brukere,
PageRequest.of(pageNo, pageSize, Sort.by("id").descending())));
} else {
Expand Down Expand Up @@ -205,14 +199,11 @@ public Testgruppe oppdaterTestgruppe(Long gruppeId, RsOpprettEndreTestgruppe end
public RsTestgruppePage getTestgruppeByBrukerId(Integer pageNo, Integer pageSize, String brukerId) {

var bruker = brukerService.fetchOrCreateBruker(brukerId);
log.info("Henter testgrupper for bruker: {}, brukertype: {}", bruker.getBrukerId(), bruker.getBrukertype());

Page<Testgruppe> paginertGruppe;

if (bruker.getBrukertype() == BANKID) {
paginertGruppe = brukerServiceConsumer.getKollegaerIOrganisasjon(bruker.getBrukerId())
.doOnNext(brukere -> log.info("BrukerServiceConsumer hentet {} kollegaer for bruker: {}",
String.join(",", brukere), bruker.getBrukerId()))
.map(brukere -> testgruppeRepository.findAllByOpprettetAv_BrukerIdIn(brukere,
PageRequest.of(pageNo, pageSize, Sort.by("id").descending())))
.block();
Expand Down

0 comments on commit 0d671e8

Please sign in to comment.