-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathuseSendInnSkjema.tsx
56 lines (46 loc) · 2.02 KB
/
useSendInnSkjema.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { AxiosError } from 'axios';
import { RessursStatus } from '@navikt/familie-typer';
import Miljø from '../../shared-utils/Miljø';
import { erModellMismatchResponsRessurs } from '../../shared-utils/modellversjon';
import { useApp } from '../context/AppContext';
import { useFeatureToggles } from '../context/FeatureToggleContext';
import { useSpråk } from '../context/SpråkContext';
import { ISøknadKontrakt } from '../typer/kontrakt/kontrakt';
import { dataISøknadKontraktFormat } from '../utils/mappingTilKontrakt/søknad';
import { sendInn } from '../utils/sendInnSkjema';
export const useSendInnSkjema = (): {
sendInnSkjema: () => Promise<[boolean, ISøknadKontrakt]>;
} => {
const { axiosRequest, søknad, settInnsendingStatus, settSisteModellVersjon } = useApp();
const { soknadApiProxyUrl } = Miljø();
const { valgtLocale } = useSpråk();
const { tekster, tilRestLocaleRecord } = useApp();
const { toggles } = useFeatureToggles();
const sendInnSkjema = async (): Promise<[boolean, ISøknadKontrakt]> => {
settInnsendingStatus({ status: RessursStatus.HENTER });
const kontraktVersjon = toggles.BRUK_NYTT_ENDEPUNKT_FOR_INNSENDING_AV_SOKNAD ? 9 : 8;
const formatert: ISøknadKontrakt = dataISøknadKontraktFormat(
valgtLocale,
søknad,
tekster(),
tilRestLocaleRecord,
kontraktVersjon
);
const res = await sendInn<ISøknadKontrakt>(
formatert,
axiosRequest,
`${soknadApiProxyUrl}/soknad/v${kontraktVersjon}`,
(res: AxiosError) => {
const responseData = res.response?.data;
if (responseData && erModellMismatchResponsRessurs(responseData)) {
settSisteModellVersjon(responseData.data.modellVersjon);
}
}
);
settInnsendingStatus(res);
return [res.status === RessursStatus.SUKSESS, formatert];
};
return {
sendInnSkjema: sendInnSkjema,
};
};