Skip to content

Commit

Permalink
FEATURE: update krav priority by etterlevelse request and merge funct…
Browse files Browse the repository at this point in the history
…ion to only update krav priority list for etterlevelse dokumentasjon
  • Loading branch information
JeremiahUy committed Aug 14, 2024
1 parent 776cb59 commit b6c5e16
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,10 @@ public ResponseEntity<EtterlevelseResponse> createEtterlevelse(@RequestBody Ette
throw new ValidationException("Tried to create etterlevelse with old architecture");
}

var krav = service.save(request);
return new ResponseEntity<>(krav.toResponse(), HttpStatus.CREATED);
etterlevelseDokumentasjonService.updatePriorityList(request.getEtterlevelseDokumentasjonId(), request.getKravNummer(), request.isPrioritised());

var etterlevelse = service.save(request);
return new ResponseEntity<>(etterlevelse.toResponse(), HttpStatus.CREATED);
}

@Operation(summary = "Update Etterlevelse")
Expand All @@ -128,6 +130,8 @@ public ResponseEntity<EtterlevelseResponse> updateEtterlevelse(@PathVariable UUI
throw new ValidationException("Tried to create etterlevelse with old architecture");
}

etterlevelseDokumentasjonService.updatePriorityList(request.getEtterlevelseDokumentasjonId(), request.getKravNummer(), request.isPrioritised());

var etterlevelse = service.save(request);
return ResponseEntity.ok(etterlevelse.toResponse());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class EtterlevelseRequest implements RequestElement, KravId {
private List<SuksesskriterieBegrunnelseRequest> suksesskriterieBegrunnelser;

private Boolean update;
private boolean prioritised;

@Override
public void format() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,27 @@ public EtterlevelseDokumentasjon delete(UUID id) {
return storage.delete(id);
}


@Transactional(propagation = Propagation.REQUIRED)
public EtterlevelseDokumentasjon updatePriorityList(String etterlevelseDokumentasjonId, int kravNummer, boolean prioritised) {
EtterlevelseDokumentasjon etterlevelseDokumentasjon = get(UUID.fromString(etterlevelseDokumentasjonId));

List<String> priorityList = etterlevelseDokumentasjon.getPrioritertKravNummer();
if (prioritised) {
if (!priorityList.contains(String.valueOf(kravNummer))) {
priorityList.add(String.valueOf(kravNummer));
}
} else {
if (priorityList.contains(String.valueOf(kravNummer))) {
priorityList = priorityList.stream().filter(number -> !number.equals(String.valueOf(kravNummer))).toList();
}
}
etterlevelseDokumentasjon.mergePrioritertKravNummer(priorityList);
return storage.save(etterlevelseDokumentasjon);
}

;

public List<EtterlevelseDokumentasjon> getByBehandlingId(List<String> ids) {
return convertToDomaionObject(etterlevelseDokumentasjonRepo.findByBehandlingIds(ids));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ public void merge(EtterlevelseDokumentasjonRequest request) {
varslingsadresser = copyOf(request.getVarslingsadresser());
}

public void mergePrioritertKravNummer(List<String> newPrioritertKravNummer) {
prioritertKravNummer = newPrioritertKravNummer;
}

public EtterlevelseDokumentasjonResponse toResponse() {
return EtterlevelseDokumentasjonResponse.builder()
.id(id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@
import no.nav.data.etterlevelse.codelist.CodelistStub;
import no.nav.data.etterlevelse.etterlevelse.domain.Etterlevelse;
import no.nav.data.etterlevelse.etterlevelseDokumentasjon.domain.EtterlevelseDokumentasjon;
import no.nav.data.etterlevelse.etterlevelseDokumentasjon.dto.EtterlevelseDokumentasjonRequest;
import no.nav.data.etterlevelse.etterlevelseDokumentasjon.dto.EtterlevelseDokumentasjonResponse;
import no.nav.data.etterlevelse.etterlevelsemetadata.domain.EtterlevelseMetadata;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.http.HttpStatus;

import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

public class EtterlevelseDokumentasjonIT extends IntegrationTestBase {
Expand Down Expand Up @@ -70,5 +73,36 @@ void deleteEtterlevelseDokumentasjonAndChildren() {

}

@Test
void shouldOnlyUpdatePrioritertKravNummerWithoutOverwrittingOtherFields() {
var etterlevelseDokumentasjon_1 = etterlevelseDokumentasjonService.save(
EtterlevelseDokumentasjonRequest.builder()
.title("test dokumentasjon")
.etterlevelseNummer(101)
.knyttetTilVirkemiddel(false)
.virkemiddelId("")
.beskrivelse("")
.forGjenbruk(false)
.teams(List.of(""))
.resources(List.of(""))
.risikoeiere(List.of(""))
.irrelevansFor(List.of(""))
.update(false)
.behandlerPersonopplysninger(true)
.behandlingIds(List.of(""))
.prioritertKravNummer(List.of())
.varslingsadresser(List.of())
.build()
);

etterlevelseDokumentasjon_1.mergePrioritertKravNummer(List.of("test"));

var updatedEtterlevelseDokumentasjon = etterlevelseDokumentasjonStorageService.save(etterlevelseDokumentasjon_1);

assertThat(updatedEtterlevelseDokumentasjon.getId()).isEqualTo(etterlevelseDokumentasjon_1.getId());
assertThat(updatedEtterlevelseDokumentasjon.getTitle()).isEqualTo(etterlevelseDokumentasjon_1.getTitle());
assertThat(updatedEtterlevelseDokumentasjon.getPrioritertKravNummer()).isEqualTo(List.of("test"));
}


}

0 comments on commit b6c5e16

Please sign in to comment.