Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
farjamm committed Nov 21, 2024
1 parent bf60eda commit 71d0527
Show file tree
Hide file tree
Showing 21 changed files with 253 additions and 221 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,6 @@ public T delete(UUID id) {
return storage.getDomainObjectData();
}

// TODO: getAll(...)
// Metodene er kilder til feil (kan potensielt returnere veldig mye data). De bør derfor fjernes og evt. erstattes av
// metoder kun for de typene vi trenger dette for (f.eks. findAllMailTasks)

public List<T> getAll(Class<T> type) {
return convert(repository.findAllByType(TypeRegistration.typeOf(type)), GenericStorage::getDomainObjectData);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ public interface GenericStorageRepository<T extends DomainObject> extends JpaRep

boolean existsById(UUID id);

// TODO: findAllByType(...)
// Metodene er kilder til feil (kan potensielt returnere veldig mye data). De bør derfor fjernes og evt. erstattes av
// metoder kun for de typene vi trenger dette for (f.eks. findAllMailTasks).
// Hvis de bare brukes i test, kan metodene bli, men da bør testen kalle repo direkte, slik at disse ikke eksponeres i service.
// Hvis de bare brukes til å sjekke at noe finnes eller ikke, bør man heller kalle *Repository.count()

List<GenericStorage<T>> findAllByType(String type);

Page<GenericStorage<T>> findAllByType(String type, Pageable pageable);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,18 @@ public ResponseEntity<EtterlevelseDokumentasjonResponse> getById(@PathVariable U
boolean teamIsEmpty = response.getTeams() == null || response.getTeams().isEmpty();
boolean risikoeiereIsEmpty = response.getRisikoeiere() == null || response.getRisikoeiere().isEmpty();

boolean resourceIsNotEmpty = response.getResources() != null && !response.getResources().isEmpty();
boolean teamIsNotEmpty = response.getTeams() != null && !response.getTeams().isEmpty();
boolean risikoeiereIsNotEmpty = response.getRisikoeiere() != null && !response.getRisikoeiere().isEmpty();

if (resourceIsEmpty && teamIsEmpty && risikoeiereIsEmpty) {
response.setHasCurrentUserAccess(true);
} else {
List<String> memeberList = new ArrayList<>();
var currentUser = SecurityUtils.getCurrentIdent();
if (resourceIsNotEmpty) {
if (!resourceIsEmpty) {
memeberList.addAll(response.getResources());
}
if (risikoeiereIsNotEmpty) {
if (!risikoeiereIsEmpty) {
memeberList.addAll(response.getRisikoeiere());
}
if (teamIsNotEmpty) {
if (!teamIsEmpty) {
response.getTeamsData().forEach((team) -> {
if (team.getMembers() != null && !team.getMembers().isEmpty()) {
memeberList.addAll(team.getMembers().stream().map(MemberResponse::getNavIdent).toList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
import java.util.List;
import java.util.UUID;

public interface EtterlevelseDokumentasjonRepo extends JpaRepository<GenericStorage<EtterlevelseDokumentasjon>, UUID>, EtterlevelseDokumentasjonRepoCustom {

public interface EtterlevelseDokumentasjonRepo extends JpaRepository<GenericStorage<EtterlevelseDokumentasjon>, UUID>, EtterlevelseDokumentasjonRepoCustom {

@Override
@Query(value = "select * from generic_storage where type = 'EtterlevelseDokumentasjon'",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public class EtterlevelseDokumentasjonFilter {
private Boolean knyttetTilVirkemiddel;
private String sok;


public boolean isEmpty() {
validate();
return StringUtils.isBlank(id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public ResponseEntity<RestResponsePage<EtterlevelseMetadataResponse>> getAll(
) {
log.info("Get all etterlevelsemetadata");
Page<EtterlevelseMetadata> page = service.getAll(pageParameters);
return ResponseEntity.ok(new RestResponsePage<>(page).convert(EtterlevelseMetadata::toResponse));
return ResponseEntity.ok(new RestResponsePage<>(page).convert(EtterlevelseMetadataResponse::buildFrom));
}

@Operation(summary = "Get etterlevelsemetadata by id")
Expand All @@ -55,7 +55,7 @@ public ResponseEntity<EtterlevelseMetadataResponse> getById(
@PathVariable UUID id
) {
log.info("Get etterlevelsemetadata by id={}", id);
return ResponseEntity.ok(service.get(id).toResponse());
return ResponseEntity.ok(EtterlevelseMetadataResponse.buildFrom(service.get(id)));
}

@Operation(summary = "Get etterlevelsemetadata by KravNummer and KravVersjon")
Expand All @@ -67,7 +67,7 @@ public ResponseEntity<RestResponsePage<EtterlevelseMetadataResponse>> getByKravN
) {
log.info("Get etterlevelsemetadata for kravnummer={}", kravNummer);
List<EtterlevelseMetadata> etterlevelseMetadataList = service.getByKravNummer(kravNummer, kravVersjon);
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadata::toResponse));
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadataResponse::buildFrom));
}

@Operation(summary = "Get etterlevelsemetadata by etterlevelseDokumentasjonId")
Expand All @@ -78,7 +78,7 @@ public ResponseEntity<RestResponsePage<EtterlevelseMetadataResponse>> getByEtter
) {
log.info("Get etterlevelsemetadatafor etterlevelseDokumentasjonId={}", etterlevelseDokumentasjonId);
List<EtterlevelseMetadata> etterlevelseMetadataList = service.getByEtterlevelseDokumentasjon(etterlevelseDokumentasjonId);
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadata::toResponse));
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadataResponse::buildFrom));
}

@Operation(summary = "Get etterlevelsemetadata by etterlevelseDokumentasjon and krav")
Expand All @@ -91,7 +91,7 @@ public ResponseEntity<RestResponsePage<EtterlevelseMetadataResponse>> getByEtter
) {
log.info("Get etterlevelsemetadatafor etterlevelseDokumentasjonId={}, kravNummer={}", etterlevelseDokumentasjonId, kravNummer);
List<EtterlevelseMetadata> etterlevelseMetadataList = service.getByEtterlevelseDokumentasjonAndKrav(etterlevelseDokumentasjonId, kravNummer, kravVersjon);
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadata::toResponse));
return ResponseEntity.ok(new RestResponsePage<>(etterlevelseMetadataList).convert(EtterlevelseMetadataResponse::buildFrom));
}

@Operation(summary = "Creating etterlevelsemetadata")
Expand All @@ -100,7 +100,7 @@ public ResponseEntity<RestResponsePage<EtterlevelseMetadataResponse>> getByEtter
public ResponseEntity<EtterlevelseMetadataResponse> createEtterlevelseMetadata(@RequestBody EtterlevelseMetadataRequest request) {
log.info("Create etterlevelsemetadata");
var etterlevelseMetadata = service.save(request);
return new ResponseEntity<>(etterlevelseMetadata.toResponse(), HttpStatus.CREATED);
return new ResponseEntity<>(EtterlevelseMetadataResponse.buildFrom(etterlevelseMetadata), HttpStatus.CREATED);
}

@Operation(summary = "Update etterlevelsemetadata")
Expand All @@ -114,7 +114,7 @@ public ResponseEntity<EtterlevelseMetadataResponse> updateEtterlevelseMetadata(@
}

var etterlevelseMetadata = service.save(request);
return ResponseEntity.ok(etterlevelseMetadata.toResponse());
return ResponseEntity.ok(EtterlevelseMetadataResponse.buildFrom(etterlevelseMetadata));
}

@Operation(summary = "Delete etterlevelsemetadata")
Expand All @@ -123,7 +123,7 @@ public ResponseEntity<EtterlevelseMetadataResponse> updateEtterlevelseMetadata(@
public ResponseEntity<EtterlevelseMetadataResponse> deleteEtterlevelseMetadata(@PathVariable UUID id) {
log.info("Delete EtterlevelseMetadataResponse id={}", id);
var etterlevelseMetadata = service.delete(id);
return ResponseEntity.ok(etterlevelseMetadata.toResponse());
return ResponseEntity.ok(EtterlevelseMetadataResponse.buildFrom(etterlevelseMetadata));
}

// Used only for unittests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public List<EtterlevelseMetadata> getByEtterlevelseDokumentasjonAndKrav(String e
public EtterlevelseMetadata save(EtterlevelseMetadataRequest request) {

var etterlevelseMetadata = request.isUpdate() ? storage.get(request.getIdAsUUID()) : new EtterlevelseMetadata();
etterlevelseMetadata.merge(request);
request.mergeInto(etterlevelseMetadata);

return storage.save(etterlevelseMetadata);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,9 @@
import lombok.experimental.SuperBuilder;
import no.nav.data.common.storage.domain.DomainObject;
import no.nav.data.etterlevelse.common.domain.KravId;
import no.nav.data.etterlevelse.etterlevelsemetadata.dto.EtterlevelseMetadataRequest;
import no.nav.data.etterlevelse.etterlevelsemetadata.dto.EtterlevelseMetadataResponse;

import java.util.List;

import static no.nav.data.common.utils.StreamUtils.copyOf;

@Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
Expand All @@ -28,28 +24,4 @@ public class EtterlevelseMetadata extends DomainObject implements KravId {
private List<String> tildeltMed;
private String notater;

// Updates all fields from the request except id, behandlingId, version and changestamp
public EtterlevelseMetadata merge(EtterlevelseMetadataRequest request) {
kravNummer = request.getKravNummer();
kravVersjon = request.getKravVersjon();
etterlevelseDokumentasjonId = request.getEtterlevelseDokumentasjonId();
tildeltMed = copyOf(request.getTildeltMed());
notater = request.getNotater();
return this;
}

public EtterlevelseMetadataResponse toResponse(){
return EtterlevelseMetadataResponse.builder()
.id(id)
.version(version)
.changeStamp(convertChangeStampResponse())
.kravNummer(kravNummer)
.kravVersjon(kravVersjon)
.behandlingId(behandlingId)
.etterlevelseDokumentasjonId(etterlevelseDokumentasjonId)
.tildeltMed(copyOf(tildeltMed))
.notater(notater)
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
import no.nav.data.common.validator.RequestElement;
import no.nav.data.common.validator.Validator;
import no.nav.data.etterlevelse.common.domain.KravId;
import no.nav.data.etterlevelse.etterlevelsemetadata.domain.EtterlevelseMetadata;

import java.util.List;

import static no.nav.data.common.utils.StreamUtils.copyOf;
import static org.apache.commons.lang3.StringUtils.trimToNull;

@Data
Expand Down Expand Up @@ -41,4 +43,13 @@ public void validateFieldValues(Validator<?> validator) {
validator.checkNull(Fields.kravVersjon, kravVersjon);
}

// Updates all fields of the input with this request, except id, behandlingId, version and changestamp
public void mergeInto(EtterlevelseMetadata emd) {
emd.setKravNummer(kravNummer);
emd.setKravVersjon(kravVersjon);
emd.setEtterlevelseDokumentasjonId(etterlevelseDokumentasjonId);
emd.setTildeltMed(copyOf(tildeltMed));
emd.setNotater(notater);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import lombok.Data;
import lombok.NoArgsConstructor;
import no.nav.data.common.rest.ChangeStampResponse;
import no.nav.data.etterlevelse.etterlevelsemetadata.domain.EtterlevelseMetadata;

import java.util.List;
import java.util.UUID;

import static no.nav.data.common.utils.StreamUtils.copyOf;


@Data
@Builder
@AllArgsConstructor
Expand All @@ -25,4 +29,19 @@ public class EtterlevelseMetadataResponse {
private List<String> tildeltMed;
private ChangeStampResponse changeStamp;
private String notater;

public static EtterlevelseMetadataResponse buildFrom(EtterlevelseMetadata emd){
return EtterlevelseMetadataResponse.builder()
.id(emd.getId())
.version(emd.getVersion())
.changeStamp(emd.convertChangeStampResponse())
.kravNummer(emd.getKravNummer())
.kravVersjon(emd.getKravVersjon())
.behandlingId(emd.getBehandlingId())
.etterlevelseDokumentasjonId(emd.getEtterlevelseDokumentasjonId())
.tildeltMed(copyOf(emd.getTildeltMed()))
.notater(emd.getNotater())
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import no.nav.data.common.exceptions.ValidationException;
Expand Down Expand Up @@ -37,6 +38,7 @@
@RestController
@RequestMapping("/export")
@Tag(name = "Export", description = "REST API for exports")
@RequiredArgsConstructor
public class ExportController {

private static final String WORDPROCESSINGML_DOCUMENT = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
Expand All @@ -53,18 +55,6 @@ public class ExportController {

private final EtterlevelseDokumentasjonService etterlevelseDokumentasjonService;

public ExportController(CodelistToDoc codelistToDoc, KravToDoc kravToDoc, EtterlevelseDokumentasjonToDoc etterlevelseDokumentasjonToDoc, KravService kravService, CodelistService codelistService, CodeUsageService codeUsageService,
EtterlevelseService etterlevelseService, EtterlevelseDokumentasjonService etterlevelseDokumentasjonService) {
this.codelistToDoc = codelistToDoc;
this.kravToDoc = kravToDoc;
this.etterlevelseDokumentasjonToDoc = etterlevelseDokumentasjonToDoc;
this.kravService = kravService;
this.codelistService = codelistService;
this.codeUsageService = codeUsageService;
this.etterlevelseService = etterlevelseService;
this.etterlevelseDokumentasjonService = etterlevelseDokumentasjonService;
}


@Operation(summary = "Get export for codelist")
@ApiResponse(description = "Doc fetched", content = @Content(schema = @Schema(implementation = byte[].class)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,11 @@ public class EtterlevelseDokumentasjonGraphQlController {
private final AuditVersionService auditVersionService;

@QueryMapping
public RestResponsePage<EtterlevelseDokumentasjonGraphQlResponse> etterlevelseDokumentasjon(@Argument EtterlevelseDokumentasjonFilter filter, @Argument Integer pageNumber, @Argument Integer pageSize) {
public RestResponsePage<EtterlevelseDokumentasjonGraphQlResponse> etterlevelseDokumentasjon(
@Argument EtterlevelseDokumentasjonFilter filter,
@Argument Integer pageNumber,
@Argument Integer pageSize
) {
log.info("etterlevelseDokumentasjon filter {}", filter);
var pageInput = new PageParameters(pageNumber, pageSize);

Expand Down
Loading

0 comments on commit 71d0527

Please sign in to comment.