Skip to content

Commit

Permalink
⚗️ mellomlagrer til nytt endepunkt med vedlegg array
Browse files Browse the repository at this point in the history
Co-authored-by: Øivind Stensrud <[email protected]>
Co-authored-by: Thomas Rognes <[email protected]>
  • Loading branch information
3 people committed May 31, 2024
1 parent 309d06c commit 2d1e186
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ const soknadContextInitial: SoknadContextState = {
],
},
requiredVedlegg,
søknadUrl: undefined,
};

describe('Vedlegg', () => {
Expand Down
2 changes: 0 additions & 2 deletions context/soknadcontext/soknadContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ export interface SoknadContextState {
søknad?: Soknad;
lagretStepList?: Array<StepType>;
requiredVedlegg: RequiredVedlegg[];
søknadUrl?: string;
sistLagret?: string;
}

Expand All @@ -20,7 +19,6 @@ export const soknadContextInititalState: SoknadContextState = {
version: SOKNAD_VERSION,
søknad: undefined,
requiredVedlegg: [],
søknadUrl: undefined,
type: SøknadType.STANDARD,
};

Expand Down
14 changes: 12 additions & 2 deletions hooks/useDebounceLagreSoknad.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { useCallback } from 'react';
import { formatDateTime } from 'utils/date';
import { setSistLagret, useAppStateContext } from 'context/appStateContext';
import { SoknadContextState } from 'context/soknadcontext/soknadContext';
import { søknadVedleggStateTilFilArray } from 'utils/vedlegg';

export function useDebounceLagreSoknad<SoknadStateType>() {
const { appStateDispatch } = useAppStateContext();
Expand All @@ -19,8 +20,8 @@ export function useDebounceLagreSoknad<SoknadStateType>() {
lagretStepList: stepList,
sistLagret: formatDateTime(new Date()),
};
const res = await fetchPOST(`/aap/soknad/api/mellomlagring/lagre`, payload);
if (res.ok) setSistLagret(formatDateTime(new Date()), appStateDispatch);
const res = await mellomLagreSøknad(payload);
if (res?.ok) setSistLagret(formatDateTime(new Date()), appStateDispatch);
}

const debouncedLagre = () => {
Expand All @@ -32,3 +33,12 @@ export function useDebounceLagreSoknad<SoknadStateType>() {
};
return useCallback(debouncedLagre(), []);
}
export async function mellomLagreSøknad(contextState: SoknadContextState) {
if (contextState.søknad) {
const vedlegg = søknadVedleggStateTilFilArray(contextState.søknad);
return await fetchPOST(`/aap/soknad/api/mellomlagring/lagre`, {
soknad: contextState,
vedlegg,
});
}
}
38 changes: 2 additions & 36 deletions pages/api/innsending/soknadinnsending.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { SOKNAD_VERSION } from 'context/soknadcontext/soknadContext';
import { deleteCache } from 'mock/mellomlagringsCache';
import { simpleTokenXProxy } from 'lib/utils/api/simpleTokenXProxy';
import { IncomingMessage } from 'http';
import { søknadVedleggStateTilFilArray } from 'utils/vedlegg';

// TODO: Sjekke om vi må generere pdf på samme språk som bruker har valgt når de fyller ut søknaden
function getIntl() {
Expand Down Expand Up @@ -73,21 +74,7 @@ const handler = beskyttetApi(async (req: NextApiRequest, res: NextApiResponse) =
søknad: Soknad;
requiredVedlegg: RequiredVedlegg[];
};

const filer: Fil[] = Object.keys(søknad.vedlegg ?? {})
.map((key) => {
const vedleggArray = søknad?.vedlegg?.[key];
const filerArray: Fil[] =
vedleggArray?.map((vedlegg) => {
return {
id: vedlegg.vedleggId,
tittel: mapVedleggTypeTilVedleggTekst(key),
};
}) ?? [];

return filerArray;
})
.flat();
const filer: Fil[] = søknadVedleggStateTilFilArray(søknad);

const etterspurtDokumentasjon = requiredVedlegg?.map((vedlegg) => vedlegg.type);

Expand Down Expand Up @@ -122,27 +109,6 @@ const handler = beskyttetApi(async (req: NextApiRequest, res: NextApiResponse) =
}
});

function mapVedleggTypeTilVedleggTekst(vedleggType: AttachmentType): string {
switch (vedleggType) {
case 'LØNN_OG_ANDRE_GODER':
return 'Dokumentasjon om lønn og andre goder';
case 'OMSORGSSTØNAD':
return 'Dokumentasjon om omsorgsstønad';
case 'UTLANDSSTØNAD':
return 'Dokumentasjon om utenlandsstønad';
case 'SYKESTIPEND':
return 'Dokumentasjon om sykestipend';
case 'LÅN':
return 'Dokumentasjon om lån';
case 'AVBRUTT_STUDIE':
return 'Dokumentasjon om avbrutt studie';
case 'ANNET':
return 'Annen dokumentasjon';
default:
return 'Dokumentasjon om barn eller fosterbarn';
}
}

export const sendSoknadViaAapInnsending = async (
innsending: SoknadInnsendingRequestBody,
req: IncomingMessage,
Expand Down
2 changes: 1 addition & 1 deletion pages/api/mellomlagring/lagre.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export const mellomlagreSøknad = async (data: object, req: IncomingMessage) =>
if (isMock()) return await lagreCache(JSON.stringify(data));
try {
const result = await simpleTokenXProxy({
url: `${process.env.INNSENDING_URL}/mellomlagring/søknad`,
url: `${process.env.INNSENDING_URL}/mellomlagring/søknad/v2`,
method: 'POST',
audience: process.env.INNSENDING_AUDIENCE!,
body: data,
Expand Down
12 changes: 7 additions & 5 deletions pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import React, { useEffect, useRef, useState } from 'react';
import { useRouter } from 'next/router';
import { GetServerSidePropsResult, NextPageContext } from 'next/types';
import { beskyttetSide } from 'auth/beskyttetSide';
import { fetchPOST } from 'api/fetch';
import { StepType } from 'components/StepWizard/Step';
import { logSkjemaStartetEvent } from 'utils/amplitude';
import metrics from 'utils/metrics';
Expand All @@ -13,6 +12,7 @@ import { hentMellomlagring } from 'pages/api/mellomlagring/les';
import { isFunctionalTest } from 'utils/environments';
import { logError, logInfo } from '@navikt/aap-felles-utils';
import { Person, getPerson } from 'pages/api/oppslagapi/person';
import { mellomLagreSøknad } from 'hooks/useDebounceLagreSoknad';

interface PageProps {
person: Person;
Expand Down Expand Up @@ -54,13 +54,15 @@ const Introduksjon = ({ person }: PageProps) => {
setIsLoading(true);
setHasError(false);
logSkjemaStartetEvent();
const result = await fetchPOST('/aap/soknad/api/mellomlagring/lagre', {
const initState: SoknadContextState = {
version: SOKNAD_VERSION,
søknad: {},
søknad: { vedlegg: {} },
lagretStepList: defaultStepList,
});
requiredVedlegg: [],
};
const result = await mellomLagreSøknad(initState);

if (!result.ok) {
if (!result?.ok) {
setIsLoading(false);
setHasError(true);
} else {
Expand Down
44 changes: 44 additions & 0 deletions utils/vedlegg.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { Soknad } from 'types/Soknad';
import { AttachmentType } from 'types/SoknadContext';

export interface Fil {
id: string;
tittel: string;
}
export const søknadVedleggStateTilFilArray = (søknad: Soknad) => {
const filer: Fil[] = Object.keys(søknad.vedlegg ?? {})
.map((key) => {
const vedleggArray = søknad?.vedlegg?.[key];
const filerArray: Fil[] =
vedleggArray?.map((vedlegg) => {
return {
id: vedlegg.vedleggId,
tittel: mapVedleggTypeTilVedleggTekst(key),
};
}) ?? [];

return filerArray;
})
.flat();
return filer;
};
function mapVedleggTypeTilVedleggTekst(vedleggType: AttachmentType): string {
switch (vedleggType) {
case 'LØNN_OG_ANDRE_GODER':
return 'Dokumentasjon om lønn og andre goder';
case 'OMSORGSSTØNAD':
return 'Dokumentasjon om omsorgsstønad';
case 'UTLANDSSTØNAD':
return 'Dokumentasjon om utenlandsstønad';
case 'SYKESTIPEND':
return 'Dokumentasjon om sykestipend';
case 'LÅN':
return 'Dokumentasjon om lån';
case 'AVBRUTT_STUDIE':
return 'Dokumentasjon om avbrutt studie';
case 'ANNET':
return 'Annen dokumentasjon';
default:
return 'Dokumentasjon om barn eller fosterbarn';
}
}

0 comments on commit 2d1e186

Please sign in to comment.