Skip to content

Commit e77ebe5

Browse files
authored
Merge pull request #179 from navikt/klage-id-as-string
Handle klage ID as string and number
2 parents 74defc8 + c40be51 commit e77ebe5

File tree

6 files changed

+37
-25
lines changed

6 files changed

+37
-25
lines changed

src/clients/apiUrls.tsx

+10-11
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,29 @@ export const getUserDataUrl = () => `${Environment.REACT_APP_API_URL}/bruker`;
55

66
export const getKlagerUrl = () => `${Environment.REACT_APP_API_URL}/klager`;
77

8-
export const getKlageByIdUrl = (id: string | number): string => `${Environment.REACT_APP_API_URL}/klager/${id}`;
9-
10-
export const getKlagerByKlageIdUrl = (id: number) => `${Environment.REACT_APP_API_URL}/klager/klageid/${id}`;
11-
12-
export const getKlagerByFnrUrl = (fnr: string) => `${Environment.REACT_APP_API_URL}/klager/fnr/${fnr}`;
8+
export const getKlageByIdUrl = (klageId: string | number): string =>
9+
`${Environment.REACT_APP_API_URL}/klager/${klageId}`;
1310

1411
export const getAddKlageUrl = (): string => `${Environment.REACT_APP_API_URL}/klager`;
1512

1613
export const getLoginserviceRedirectUrl = (params: string) =>
1714
`${Environment.REACT_APP_LOGINSERVICE_URL}?redirect=${Environment.REACT_APP_URL}/klage${params}`;
1815

19-
export const getVedleggUrl = (klageId: number, vedleggId: string) =>
16+
export const getVedleggUrl = (klageId: string | number, vedleggId: string) =>
2017
`${Environment.REACT_APP_API_URL}/klager/${klageId}/vedlegg/${vedleggId}`;
2118

22-
export const getAddVedleggUrl = (id: number) => `${Environment.REACT_APP_API_URL}/klager/${id}/vedlegg`;
19+
export const getAddVedleggUrl = (klageId: string | number) =>
20+
`${Environment.REACT_APP_API_URL}/klager/${klageId}/vedlegg`;
2321

24-
export const getDeleteVedleggUrl = (klageId: number, vedleggId: string) =>
22+
export const getDeleteVedleggUrl = (klageId: string | number, vedleggId: string | number) =>
2523
`${Environment.REACT_APP_API_URL}/klager/${klageId}/vedlegg/${vedleggId}`;
2624

27-
export const getFinalizeKlageUrl = (klageId: number) => `${Environment.REACT_APP_API_URL}/klager/${klageId}/finalize`;
25+
export const getFinalizeKlageUrl = (klageId: string | number) =>
26+
`${Environment.REACT_APP_API_URL}/klager/${klageId}/finalize`;
2827

29-
export const getKlageJournalpostIdUrl = (klageId: number) =>
28+
export const getKlageJournalpostIdUrl = (klageId: string | number) =>
3029
`${Environment.REACT_APP_API_URL}/klager/${klageId}/journalpostid`;
3130

32-
export const getKlagePdfUrl = (klageId: number) => `${Environment.REACT_APP_API_URL}/klager/${klageId}/pdf`;
31+
export const getKlagePdfUrl = (klageId: string | number) => `${Environment.REACT_APP_API_URL}/klager/${klageId}/pdf`;
3332

3433
export const getTemaObjectUrl = (klageKode: string) => `${Environment.REACT_APP_API_URL}/temaer/${klageKode}`;

src/components/kvittering/kvittering.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Lenke from 'nav-frontend-lenker';
1414
import { isoDateToPretty } from '../../utils/date';
1515

1616
interface Props {
17-
klageId: number;
17+
klageId: string | number;
1818
journalPostId: string;
1919
success: boolean;
2020
finalizedDate: string;

src/pages/kvittering/kvittering-page.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const KvitteringPage = (props: RouteComponentProps<{}, StaticContext, FinalizedK
2929
waitingJoark = false;
3030
}, 15000);
3131

32-
const waitForJournalpostId = (klageId: number) => {
32+
const waitForJournalpostId = (klageId: string | number) => {
3333
getJournalpostId(klageId)
3434
.then(response => {
3535
if (response === '') {

src/services/fileService.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import * as baseService from './baseService';
22
import { getAddVedleggUrl, getDeleteVedleggUrl } from '../clients/apiUrls';
33

4-
export const addVedleggToKlage = (id: number, vedlegg: File) => baseService.postVedlegg(getAddVedleggUrl(id), vedlegg);
4+
export const addVedleggToKlage = (klageId: string | number, vedlegg: File) =>
5+
baseService.postVedlegg(getAddVedleggUrl(klageId), vedlegg);
56

6-
export const deleteVedlegg = (klageID: number, vedleggID: number | string) =>
7-
baseService.deleteVedlegg(getDeleteVedleggUrl(klageID, vedleggID.toString()));
7+
export const deleteVedlegg = (klageID: string | number, vedleggID: number | string) =>
8+
baseService.deleteVedlegg(getDeleteVedleggUrl(klageID, vedleggID));

src/services/klageService.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ export const postKlage = (klage: KlageDraft) => baseService.postKlage(getAddKlag
1515

1616
export const putKlage = (klage: Klage) => baseService.putKlage(getKlageByIdUrl(klage.id), klage);
1717

18-
export const getKlage = (klageId: string) => baseService.get<Klage>(getKlageByIdUrl(klageId));
18+
export const getKlage = (klageId: string | number) => baseService.get<Klage>(getKlageByIdUrl(klageId));
1919

20-
export const finalizeKlage = (klageId: number) => baseService.post<FinalizedKlage>(getFinalizeKlageUrl(klageId));
20+
export const finalizeKlage = (klageId: string | number) =>
21+
baseService.post<FinalizedKlage>(getFinalizeKlageUrl(klageId));
2122

22-
export const getJournalpostId = (klageId: number) => baseService.get<string>(getKlageJournalpostIdUrl(klageId));
23+
export const getJournalpostId = (klageId: string | number) =>
24+
baseService.get<string>(getKlageJournalpostIdUrl(klageId));
2325

2426
export const getTemaObject = (temaKode: string) => baseService.get<TemaObject>(getTemaObjectUrl(temaKode));
2527

src/types/klage.tsx

+16-6
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ export interface KlageDraft {
1414
}
1515

1616
export interface Klage extends KlageDraft {
17-
readonly id: number;
17+
readonly id: string | number;
1818
}
1919

2020
export interface KlageSkjema {
21-
id: number | null;
21+
id: string | null;
2222
fritekst: string;
2323
tema: string;
2424
ytelse: string;
@@ -41,11 +41,11 @@ export const klageSkjemaToKlageDraft = (klageSkjema: KlageSkjema): KlageDraft =>
4141
});
4242

4343
export const klageSkjemaToKlage = (klageSkjema: KlageSkjema): Klage => {
44-
if (klageSkjema.id === null) {
45-
throw new Error("KlageSkjema is missing required property 'id'. Did you mean to create a draft?");
44+
if (klageSkjema.id === null || klageSkjema.id.length === 0) {
45+
throw new Error('KlageSkjema is missing required property "id". Did you mean to create a draft?');
4646
}
4747
return {
48-
id: klageSkjema.id,
48+
id: ensureInt(klageSkjema.id),
4949
fritekst: klageSkjema.fritekst,
5050
tema: klageSkjema.tema,
5151
ytelse: klageSkjema.ytelse,
@@ -57,10 +57,20 @@ export const klageSkjemaToKlage = (klageSkjema: KlageSkjema): Klage => {
5757
};
5858
};
5959

60+
const ensureInt = (klageId: string): number => {
61+
const parsed = Number.parseInt(klageId, 10);
62+
if (Number.isNaN(parsed)) {
63+
throw new Error(
64+
`KlageSkjema property "id" is not parsable to an integer. Expected string parsable to integer, got "${klageId}".`
65+
);
66+
}
67+
return parsed;
68+
};
69+
6070
export const klageToKlageSkjema = (klage: Klage): KlageSkjema => {
6171
const { isoDate, dateChoice } = parseVedtakText(klage.vedtak);
6272
return {
63-
id: klage.id,
73+
id: klage.id.toString(),
6474
fritekst: klage.fritekst,
6575
tema: klage.tema,
6676
ytelse: klage.ytelse,

0 commit comments

Comments
 (0)