Skip to content

Commit 1ea6b2b

Browse files
committed
Add query param to set initial value of caseIsAtKA
1 parent 56d429f commit 1ea6b2b

File tree

5 files changed

+30
-12
lines changed

5 files changed

+30
-12
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,18 @@ Dersom dette ikke er oppgitt som query parameter, får bruker mulighet til å fy
7474
|--------|-----|
7575
| Klage | `https://klage.nav.no/nb/klage/DAGPENGER?saksnummer=12345` |
7676
| Anke | `https://klage.nav.no/nb/anke/DAGPENGER?saksnummer=12345` |
77-
| Ettersendelse til klage | `https://klage.nav.no/nb/ettersendelse/klage/DAGPENGER?saksnummer=12345` |
78-
| Ettersendelse til anke | `https://klage.nav.no/nb/ettersendelse/anke/DAGPENGER?saksnummer=12345` |
77+
| Ettersendelse til klage | `https://klage.nav.no/nb/ettersendelse/klage/DAGPENGER?saksnummer=12345&ka` |
78+
| Ettersendelse til anke | `https://klage.nav.no/nb/ettersendelse/anke/DAGPENGER?saksnummer=12345&ka` |
7979

8080
## URL-format
8181
```
82-
https://klage.nav.no/{språk}/{type}/{innsendingsytelse}?saksnummer={saksnummer}
82+
https://klage.nav.no/{språk}/{type}/{innsendingsytelse}?saksnummer={saksnummer}&ka
8383
```
8484
- `språk` = `nb | nn | en`
8585
- `type` = `klage | anke | ettersendelse/klage | ettersendelse/anke`
8686
- `innsendingsytelse` = Se liste over tilgjengelige ytelser under.
8787
- `saksnummer` = Relevant saksnummer.
88+
- `ka` = Kun relevant for ettersendelse. Om saken er sendt til Nav klageinstans. Om paramteret finnes vil det tolkes som `true`. Unntak er om verdien er `false` eller `0`. Dersom parameteret ikke tolkes til `true`, må bruker ta stilling til valget.
8889

8990
### Tilgjengelige ytelser
9091
| Key | Bokmål | Engelsk | Nynorsk |
+11-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
export const getQueryValue = (queryValue: string | string[] | null | undefined): string | null => {
2-
if (typeof queryValue === 'string' && queryValue.length !== 0) {
3-
return queryValue;
1+
export const getQueryValue = (queryValue: string | null): string | null => {
2+
if (queryValue === null || queryValue.length === 0) {
3+
return null;
44
}
55

6-
return null;
6+
return queryValue;
77
};
8+
9+
/**
10+
* Get a boolean value from a query string.
11+
* `null`, `'false'` and `'0'` will return `false`, everything else will return `true`.
12+
*/
13+
export const getBooleanQueryValue = (queryValue: string | null): boolean =>
14+
queryValue !== null && queryValue !== 'false' && queryValue !== '0';

frontend/src/redux-api/case/params.ts

+1
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ export interface ResumeCaseParams {
3737
readonly type: CaseType;
3838
readonly innsendingsytelse: Innsendingsytelse;
3939
readonly internalSaksnummer: string | null;
40+
readonly caseIsAtKA: true | null;
4041
}

frontend/src/routes/create-case/handlers.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import type { NavigateFunction } from 'react-router-dom';
1414
interface IHandler {
1515
language: Languages;
1616
internalSaksnummer: string | null;
17+
caseIsAtKA: true | null;
1718
navigate: NavigateFunction;
1819
innsendingsytelse: Innsendingsytelse;
1920
}
@@ -63,14 +64,15 @@ interface IHandleCreate extends IHandler {
6364
export const handleCreateCase = ({
6465
sessionCase,
6566
internalSaksnummer,
67+
caseIsAtKA,
6668
innsendingsytelse,
6769
language,
6870
createCase,
6971
dispatch,
7072
navigate,
7173
}: IHandleCreate) => {
7274
appEvent(AppEventEnum.CASE_CREATE_FROM_SESSION_STORAGE);
73-
createCase(getCreatePayload(sessionCase, language, internalSaksnummer))
75+
createCase(getCreatePayload(sessionCase, language, internalSaksnummer, caseIsAtKA))
7476
.unwrap()
7577
.then(({ id }) => {
7678
dispatch(deleteSessionCase({ type: sessionCase.type, innsendingsytelse }));
@@ -88,22 +90,24 @@ export const handleResumeOrCreateCase = ({
8890
type,
8991
innsendingsytelse,
9092
internalSaksnummer,
93+
caseIsAtKA,
9194
language,
9295
navigate,
9396
resumeOrCreateCase,
9497
}: IHandleResumeOrCreate) => {
9598
appEvent(AppEventEnum.CASE_CREATE_OR_RESUME);
96-
resumeOrCreateCase({ innsendingsytelse, internalSaksnummer, type })
99+
resumeOrCreateCase({ innsendingsytelse, internalSaksnummer, caseIsAtKA, type })
97100
.unwrap()
98101
.then(({ id }) => navigate(`/${language}/sak/${id}/begrunnelse`, { replace: true }));
99102
};
100103

101104
const getCreatePayload = (
102105
{ type, ...data }: ISessionCase,
103106
language: Languages,
104-
internalSaksnummer: string | null = null,
107+
internalSaksnummer: string | null,
108+
caseIsAtKA: true | null,
105109
): CreateCaseParams => {
106110
const { id, navn, modifiedByUser, ...rest } = data;
107111

108-
return { type, ...rest, internalSaksnummer, language };
112+
return { type, ...rest, internalSaksnummer, caseIsAtKA, language };
109113
};

frontend/src/routes/create-case/use-case.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getQueryValue } from '@app/functions/get-query-value';
1+
import { getBooleanQueryValue, getQueryValue } from '@app/functions/get-query-value';
22
import { useSessionCase } from '@app/hooks/use-session-klage';
33
import type { Innsendingsytelse } from '@app/innsendingsytelser/innsendingsytelser';
44
import { useLanguage } from '@app/language/use-language';
@@ -24,6 +24,7 @@ export const useCase = (type: CaseType, innsendingsytelse: Innsendingsytelse): I
2424
const { data: user, isLoading: isLoadingUser, isSuccess } = useGetUserQuery();
2525

2626
const internalSaksnummer = getQueryValue(query.get('saksnummer'));
27+
const caseIsAtKA = getBooleanQueryValue(query.get('ka')) ? true : null;
2728

2829
const [createCase, { isLoading: createIsLoading, isError: createHasFailed, isSuccess: createIsSuccess }] =
2930
useCreateCaseMutation();
@@ -47,6 +48,7 @@ export const useCase = (type: CaseType, innsendingsytelse: Innsendingsytelse): I
4748
type,
4849
dispatch,
4950
internalSaksnummer,
51+
caseIsAtKA,
5052
innsendingsytelse,
5153
language,
5254
navigate,
@@ -61,6 +63,7 @@ export const useCase = (type: CaseType, innsendingsytelse: Innsendingsytelse): I
6163
createCase,
6264
dispatch,
6365
internalSaksnummer,
66+
caseIsAtKA,
6467
innsendingsytelse,
6568
language,
6669
navigate,
@@ -73,6 +76,7 @@ export const useCase = (type: CaseType, innsendingsytelse: Innsendingsytelse): I
7376
handleResumeOrCreateCase({
7477
type,
7578
internalSaksnummer,
79+
caseIsAtKA,
7680
innsendingsytelse,
7781
language,
7882
navigate,
@@ -83,6 +87,7 @@ export const useCase = (type: CaseType, innsendingsytelse: Innsendingsytelse): I
8387
dispatch,
8488
innsendingsytelse,
8589
internalSaksnummer,
90+
caseIsAtKA,
8691
isDone,
8792
isLoading,
8893
isSuccess,

0 commit comments

Comments
 (0)