Skip to content

Commit 726f62b

Browse files
authored
Merge pull request #263 from navikt/resume-klage-instead-of-create
Add resume klage before create
2 parents b2963b2 + 5bb6e03 commit 726f62b

File tree

3 files changed

+40
-15
lines changed

3 files changed

+40
-15
lines changed

src/api/api.ts

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { User } from '../user/user';
44
import { Attachment } from '../klage/attachment';
55
import { environment } from '../environment/environment';
66
import { NewKlage, Klage, UpdateKlage, FinalizedKlage } from '../klage/klage';
7+
import { TemaKey } from '../tema/tema';
78

89
export async function getUser() {
910
const url = environment.userUrl;
@@ -15,6 +16,11 @@ export async function getUser() {
1516
}
1617
}
1718

19+
export async function getDraftKlage(temaKey: TemaKey, ytelse: string, internalSaksnummer: string | null) {
20+
const url = environment.draftKlageUrl(temaKey, ytelse, internalSaksnummer);
21+
return await getJSON<Klage>(url, 'Ingen påbegynt klage funnet.');
22+
}
23+
1824
export async function createKlage(klage: NewKlage) {
1925
const url = environment.klagerUrl;
2026
try {

src/environment/environment.ts

+18
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import queryString from 'query-string';
12
import { logError } from '../logging/frontendLogger';
3+
import { TemaKey } from '../tema/tema';
24

35
type KlageId = string | number;
46

@@ -80,6 +82,22 @@ export class Environment {
8082
return `${this.apiUrl}/klager`;
8183
}
8284
klageUrl = (klageId: KlageId): string => `${this.klagerUrl}/${klageId}`;
85+
draftKlageUrl = (temaKey: TemaKey, ytelse: string, internalSaksnummer: string | null) => {
86+
const query = queryString.stringify(
87+
{
88+
tema: temaKey,
89+
ytelse,
90+
internalSaksnummer
91+
},
92+
{
93+
skipNull: true,
94+
skipEmptyString: true,
95+
sort: false,
96+
encode: true
97+
}
98+
);
99+
return `${this.klagerUrl}/draft?${query}`;
100+
};
83101
finalizeKlageUrl = (klageId: KlageId) => `${this.klageUrl(klageId)}/finalize`;
84102
klageJournalpostIdUrl = (klageId: KlageId) => `${this.klageUrl(klageId)}/journalpostid`;
85103
klagePdfUrl = (klageId: KlageId) => `${this.apiUrl}/klager/${klageId}/pdf`;

src/routes/create-klage.tsx

+16-15
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ import React, { useContext, useEffect, useState } from 'react';
22
import { Redirect, useHistory, useLocation } from 'react-router-dom';
33
import queryString from 'query-string';
44
import { AlertStripeFeil } from 'nav-frontend-alertstriper';
5-
import { ensureStringIsTema } from '../tema/tema';
5+
import { ensureStringIsTema, TemaKey } from '../tema/tema';
66
import { getQueryValue } from '../query/get-query-value';
7-
import { createKlage } from '../api/api';
7+
import { createKlage, getDraftKlage } from '../api/api';
88
import { AppContext } from '../app-context/app-context';
99
import { getTitle } from '../query/get-title';
10-
import { NewKlage } from '../klage/klage';
1110
import LoadingPage from '../loading-page/loading-page';
1211

1312
const CreateKlage = () => {
@@ -31,19 +30,21 @@ const CreateKlage = () => {
3130

3231
const title = getTitle(query, temaKey);
3332
const saksnummer = getQueryValue(query.saksnummer);
34-
const newKlage: NewKlage = {
35-
fritekst: '',
36-
checkboxesSelected: [],
37-
tema: temaKey,
38-
ytelse: title,
39-
vedtakDate: null,
40-
userSaksnummer: null,
41-
internalSaksnummer: saksnummer
42-
};
4333

44-
createKlage(newKlage)
34+
getDraftKlage(temaKey, title, saksnummer)
35+
.catch(() =>
36+
createKlage({
37+
fritekst: '',
38+
checkboxesSelected: [],
39+
tema: temaKey,
40+
ytelse: title,
41+
vedtakDate: null,
42+
userSaksnummer: null,
43+
internalSaksnummer: saksnummer
44+
})
45+
)
4546
.then(setKlage)
46-
.catch(() => setError(formatError(newKlage)));
47+
.catch(() => setError(formatError(temaKey, title, saksnummer)));
4748
}, [search, klage, setKlage, history]);
4849

4950
if (error !== null) {
@@ -57,7 +58,7 @@ const CreateKlage = () => {
5758
return <Redirect to={`/${klage.id}/begrunnelse`} />;
5859
};
5960

60-
function formatError({ tema, ytelse, internalSaksnummer }: NewKlage): string {
61+
function formatError(tema: TemaKey, ytelse: string, internalSaksnummer: string | null): string {
6162
let error = `Klarte ikke opprette klage med tema "${tema}"`;
6263
if (internalSaksnummer === null) {
6364
error += ` og tittel "${ytelse}".`;

0 commit comments

Comments
 (0)