Skip to content

Commit

Permalink
Legg til meir Swagger-dokumentasjon
Browse files Browse the repository at this point in the history
NB: Nokre request/response felt er enno ikkje dokumenter.
  • Loading branch information
slovrid committed Nov 14, 2024
1 parent ab43a4c commit 718a8a2
Show file tree
Hide file tree
Showing 15 changed files with 405 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package no.nav.veilarbvedtaksstotte.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import no.nav.veilarbvedtaksstotte.service.BeslutterService;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -12,43 +15,112 @@

@RestController
@RequestMapping("/api/beslutter")
@Tag(name = "Beslutter", description = "Funksjonalitet knyttet til besluttere og beslutterprosesser.")
@Tag(name = "Kvalitetssikring", description = "Funksjonalitet knyttet til kvalitetssikring og kvalitetssikrere.")
public class BeslutterController {

private final BeslutterService beslutterService;

@Autowired
public BeslutterController(BeslutterService beslutterService) {
this.beslutterService = beslutterService;
}

@PostMapping("/start")
@Operation(
summary = "Start beslutterprosess",
description = "Starter en beslutterprosess for det spesifiserte vedtaksutkastet."
)
public void startBeslutterProsess(@RequestParam("vedtakId") long vedtakId) {
beslutterService.startBeslutterProsess(vedtakId);
}

@PostMapping("/avbryt")
public void avbrytBeslutterProsess(@RequestParam("vedtakId") long vedtakId) {
beslutterService.avbrytBeslutterProsess(vedtakId);
}

@PostMapping("/bliBeslutter")
public void bliBeslutter(@RequestParam("vedtakId") long vedtakId) {
beslutterService.bliBeslutter(vedtakId);
}

@PostMapping("/godkjenn")
public void godkjennVedtak(@RequestParam("vedtakId") long vedtakId) {
beslutterService.setGodkjentAvBeslutter(vedtakId);
}

@PutMapping("/status")
public void oppdaterBeslutterProsessStatus(@RequestParam("vedtakId") long vedtakId) {
beslutterService.oppdaterBeslutterProsessStatus(vedtakId);
}
private final BeslutterService beslutterService;

@Autowired
public BeslutterController(BeslutterService beslutterService) {
this.beslutterService = beslutterService;
}

@PostMapping("/start")
@Operation(
summary = "Start kvalitetssikring",
description = "Starter kvalitetssikring for det spesifiserte vedtaksutkastet. " +
"Informasjon om brukeren som er knyttet til vedtaksutkastet samt øvrig informasjon fra vedtaksutkastet " +
"vil bli lagt til i kvalitetssikringsoversikten og en systemmelding om at kvalitetssikring er startet vil bli produsert" +
"og postet i meldingskanalen mellom ansvarlig veileder og kvalitetssikrer.",
responses = {
@ApiResponse(responseCode = "200", content = @Content()),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public void startBeslutterProsess(@RequestParam("vedtakId") long vedtakId) {
beslutterService.startBeslutterProsess(vedtakId);
}

@PostMapping("/avbryt")
@Operation(
summary = "Avbryt kvalitetssikring",
description = "Avbryter kvalitetssikring for det spesifiserte vedtaksutkastet. " +
"Informasjon om brukeren som er knyttet til vedtaksutkastet samt øvrig informasjon fra vedtaksutkastet " +
"vil bli fjernet fra kvalitetssikringsoversikten og en systemmelding om at kvalitetssikring er avbrutt vil bli produsert" +
"og postet i meldingskanalen mellom ansvarlig veileder og kvalitetssikrer.",
responses = {
@ApiResponse(responseCode = "200", content = @Content()),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public void avbrytBeslutterProsess(@RequestParam("vedtakId") long vedtakId) {
beslutterService.avbrytBeslutterProsess(vedtakId);
}

@PostMapping("/bliBeslutter")
@Operation(
summary = "Bli kvalitetssikrer",
description = "Innlogget/autentisert bruker (veileder) blir kvalitetssikrer for det spesifiserte vedtaksutkastet." +
"Kvalitetssikringsoversikten vil bli oppdatert med informasjon om kvalitetssikreren og en systemmelding om " +
"at vedtakutkastet har fått en kvalitetssikrer vil bli produsert og postet i meldingskanalen mellom ansvarlig " +
"veileder og kvalitetssikrer",
responses = {
@ApiResponse(responseCode = "200", content = @Content()),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public void bliBeslutter(@RequestParam("vedtakId") long vedtakId) {
beslutterService.bliBeslutter(vedtakId);
}

@PostMapping("/godkjenn")
@Operation(
summary = "Godkjenn vedtaksutkast",
description = "Godkjenn det spesifiserte vedtaksutkastet. Informasjon om brukeren som er knyttet til vedtaksutkastet " +
"samt øvrig informasjon fra vedtaksutkastet vil bli fjernet fra kvalitetssikringsoversikten og en systemmelding " +
"om at vedtaksutkastet er godkjent vil bli produsert og postet i meldingskanalen mellom ansvarlig veileder og kvalitetssikrer.",
responses = {
@ApiResponse(responseCode = "200", content = @Content()),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public void godkjennVedtak(@RequestParam("vedtakId") long vedtakId) {
beslutterService.setGodkjentAvBeslutter(vedtakId);
}

@PutMapping("/status")
@Operation(
summary = "Oppdater status på kvalitetssikringen",
description = """
Oppdaterer og setter ny status for kvalitetssikringen:
* dersom innlogget/autentisert bruker er ansvarlig veileder for vedtaksutkastet vil ny status bli "Klar til kvalitetssikrer"
* dersom innlogget/autentisert bruker er kvalitetssikrer for vedtaksutkastet vil ny status bli "Klar til ansvarlig veileder"
Kvalitetssikringsoversikten vil bli oppdatert med informasjon om ny status og en systemmelding om at vedtakutkastet har fått en ny status bli produsert og postet i meldingskanalen mellom ansvarlig veileder og kvalitetssikrer.
""",
responses = {
@ApiResponse(responseCode = "200", content = @Content()),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public void oppdaterBeslutterProsessStatus(@RequestParam("vedtakId") long vedtakId) {
beslutterService.oppdaterBeslutterProsessStatus(vedtakId);
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package no.nav.veilarbvedtaksstotte.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import no.nav.veilarbvedtaksstotte.domain.beslutteroversikt.BeslutteroversiktSok;
import no.nav.veilarbvedtaksstotte.domain.beslutteroversikt.BrukereMedAntall;
import no.nav.veilarbvedtaksstotte.service.BeslutteroversiktService;
Expand All @@ -11,6 +16,10 @@

@RestController
@RequestMapping("/api/beslutteroversikt")
@Tag(
name = "Kvalitetssikringsoversikt",
description = "Funksjonalitet knyttet til kvalitetssikringsoversikten."
)
public class BeslutteroversiktController {

private final BeslutteroversiktService beslutteroversiktService;
Expand All @@ -21,6 +30,17 @@ public BeslutteroversiktController(BeslutteroversiktService beslutteroversiktSer
}

@PostMapping("/sok")
@Operation(
summary = "Søk",
description = "Søker etter brukere og tilhørende vedtaksutkast som krever kvalitetssikring. Søket vil returnere brukere fra samtlige enheter som innlogget/autentisert bruker (veileder) er knyttet til og har tilgang til, med mindre en liste av enheter som det skal filtreres på oppgis i requesten.",
responses = {
@ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = BrukereMedAntall.class))),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true)))
}
)
public BrukereMedAntall startBeslutterProsess(@RequestBody BeslutteroversiktSok sokData) {
return beslutteroversiktService.sokEtterBruker(sokData);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package no.nav.veilarbvedtaksstotte.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import no.nav.veilarbvedtaksstotte.controller.dto.KodeverkDTO;
import no.nav.veilarbvedtaksstotte.domain.vedtak.HovedmalDetaljert;
import no.nav.veilarbvedtaksstotte.domain.vedtak.InnsatsgruppeDetaljert;
Expand All @@ -10,20 +16,54 @@

@RestController
@RequestMapping("/open/api/kodeverk")
@Tag(
name = "Kodeverk",
description = "Funksjonalitet knyttet til veilarbvedtaksstotte sitt kodeverk."
)
public class KodeverkController {
KodeverkDTO kodeverk = new KodeverkDTO();

@GetMapping("/innsatsgruppe")
@Operation(
summary = "Hent kodeverk for innsatsgruppe",
description = "Henter kodeverket for innsatsgruppe.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(array = @ArraySchema(schema = @Schema(implementation = InnsatsgruppeDetaljert.class)))
)
}
)
public InnsatsgruppeDetaljert[] getInnsatsgrupper() {
return kodeverk.getInnsatsgrupper();
}

@GetMapping("/hovedmal")
@Operation(
summary = "Hent kodeverk for hovedmål",
description = "Henter kodeverket for hovedmål.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(array = @ArraySchema(schema = @Schema(implementation = HovedmalDetaljert.class)))
)
}
)
public HovedmalDetaljert[] getHovedmal() {
return kodeverk.getHovedmal();
}

@GetMapping("/innsatsgruppeoghovedmal")
@Operation(
summary = "Hent kodeverk for innsatsgruppe og hovedmål",
description = "Henter kodeverket for både innsatsgruppe og hovedmål.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(array = @ArraySchema(schema = @Schema(implementation = KodeverkDTO.class)))
)
}
)
public KodeverkDTO getKodeverk() {
return kodeverk;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package no.nav.veilarbvedtaksstotte.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import no.nav.veilarbvedtaksstotte.controller.dto.MeldingDTO;
import no.nav.veilarbvedtaksstotte.controller.dto.OpprettDialogMeldingDTO;
import no.nav.veilarbvedtaksstotte.service.MeldingService;
Expand All @@ -18,6 +24,12 @@

@RestController
@RequestMapping("/api/meldinger")
@Tag(
name = "Meldinger",
description = "Funksjonalitet knyttet til meldinger/meldingskanal mellom ansvarlig veileder og kvalitetssikrer. " +
"Alle meldinger er knyttet til et gitt vedtaksutkast. Meldinger kan enten være produsert av systemet " +
"(f.eks. i forbindelse med endring av status på kvalitetssikring) eller skrevet av ansvarlig veileder/kvalitetssikrer."
)
public class MeldingController {

private final VedtakService vedtakService;
Expand All @@ -31,6 +43,20 @@ public MeldingController(VedtakService vedtakService, MeldingService meldingServ
}

@GetMapping
@Operation(
summary = "Hent meldinger",
description = "Henter alle meldinger mellom ansvarlig veileder og kvalitetssikrer som er knyttet til det " +
"spesifiserte vedtaksutkastet.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(array = @ArraySchema(schema = @Schema(implementation = MeldingDTO.class)))
),
@ApiResponse(responseCode = "400", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))),
@ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true)))
}
)
public List<MeldingDTO> hentDialogMeldinger(@RequestParam("vedtakId") long vedtakId) {
if (vedtakService.erFattet(vedtakId)) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
Expand All @@ -40,6 +66,11 @@ public List<MeldingDTO> hentDialogMeldinger(@RequestParam("vedtakId") long vedta
}

@PostMapping
@Operation(
summary = "Opprett melding",
description = "Opprettet en ny melding og knytter den til det spesifiserte vedtaksutkastet. Meldingen vil " +
"bli synlig i meldingskanalen mellom ansvarlig veileder og kvalitetssikrer."
)
public void opprettDialogMelding(@RequestParam("vedtakId") long vedtakId, @RequestBody OpprettDialogMeldingDTO opprettDialogMeldingDTO) {
if (vedtakService.erFattet(vedtakId)) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.veilarbvedtaksstotte.controller

import io.swagger.v3.oas.annotations.tags.Tag
import no.nav.common.types.identer.Fnr
import no.nav.veilarbvedtaksstotte.controller.dto.Siste14aVedtakDTO
import no.nav.veilarbvedtaksstotte.service.AuthService
Expand All @@ -13,6 +14,10 @@ import org.springframework.web.server.ResponseStatusException

@RestController
@RequestMapping("/api")
@Tag(
name = "Siste § 14 a-vedtak",
description = "Funksjonalitet knyttet til siste § 14 a-vedtak."
)
class Siste14aVedtakController(
val authService: AuthService,
val siste14aVedtakService: Siste14aVedtakService
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package no.nav.veilarbvedtaksstotte.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import no.nav.common.types.identer.EnhetId;
import no.nav.common.types.identer.Fnr;
import no.nav.veilarbvedtaksstotte.service.UtrullingService;
Expand All @@ -11,6 +16,10 @@

@RestController
@RequestMapping("/api/utrulling")
@Tag(
name = "Utrulling",
description = "Funksjonalitet knyttet til utrulling (hvilke kontorer som har tilgang til løsningen)."
)
public class UtrullingController {

private final UtrullingService utrullingService;
Expand All @@ -27,11 +36,33 @@ public boolean tilhorerBrukerUtrulletKontor(@RequestParam Fnr fnr) {
}

@GetMapping("/tilhorerVeilederUtrulletKontor")
@Operation(
summary = "Tilhører veileder utrullet enhet",
description = "Sjekker om innlogget/autentisert bruker (veileder) tilhører (har tilgang til) minst en NAV-enhet hvor løsningen er rullet ut.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(schema = @Schema(implementation = Boolean.class))
),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true))),
}
)
public boolean tilhorerVeilederUtrulletKontor() {
return utrullingService.tilhorerInnloggetVeilederUtrulletKontor();
}

@GetMapping("/erUtrullet")
@Operation(
summary = "Er utrullet til enhet",
description = "Sjekker om løsningen er rullet ut til spesifisert NAV-enhet.",
responses = {
@ApiResponse(
responseCode = "200",
content = @Content(schema = @Schema(implementation = Boolean.class))
),
@ApiResponse(responseCode = "500", content = @Content(schema = @Schema(hidden = true))),
}
)
public boolean erUtrullet(@RequestParam EnhetId enhetId) {
return utrullingService.erUtrullet(enhetId);
}
Expand Down
Loading

0 comments on commit 718a8a2

Please sign in to comment.