Skip to content

Commit ad9943b

Browse files
committed
Merge branch 'master' into upgrade-navikt-ds
2 parents b74aeb3 + c81c708 commit ad9943b

File tree

23 files changed

+565
-78
lines changed

23 files changed

+565
-78
lines changed

mocks/mocks/data/formio-api/test-mellomlagring.json

+89
Original file line numberDiff line numberDiff line change
@@ -1101,6 +1101,95 @@
11011101
"id": "e3vwglb",
11021102
"defaultValue": null,
11031103
"navId": "edqy1v"
1104+
},
1105+
{
1106+
"label": "Ønskeliste",
1107+
"key": "datagrid",
1108+
"input": false,
1109+
"tableView": false,
1110+
"validateOn": "blur",
1111+
"validate": {
1112+
"required": false,
1113+
"custom": "",
1114+
"customPrivate": false,
1115+
"strictDateValidation": false,
1116+
"multiple": false,
1117+
"unique": false
1118+
},
1119+
"type": "datagrid",
1120+
"isNavDataGrid": true,
1121+
"components": [
1122+
{
1123+
"validate": {
1124+
"required": false,
1125+
"custom": "",
1126+
"customPrivate": false,
1127+
"strictDateValidation": false,
1128+
"multiple": false,
1129+
"unique": false
1130+
},
1131+
"label": "Gaveønske",
1132+
"key": "tekstfelt",
1133+
"input": true,
1134+
"tableView": false,
1135+
"type": "textfield",
1136+
"navId": "e0tpgrm"
1137+
}
1138+
],
1139+
"navId": "e5z29dy",
1140+
"placeholder": "",
1141+
"prefix": "",
1142+
"customClass": "",
1143+
"suffix": "",
1144+
"multiple": false,
1145+
"defaultValue": null,
1146+
"protected": false,
1147+
"unique": false,
1148+
"persistent": true,
1149+
"hidden": false,
1150+
"clearOnHide": true,
1151+
"refreshOn": "",
1152+
"redrawOn": "",
1153+
"modalEdit": false,
1154+
"dataGridLabel": false,
1155+
"labelPosition": "top",
1156+
"description": "",
1157+
"errorLabel": "",
1158+
"tooltip": "",
1159+
"hideLabel": false,
1160+
"tabindex": "",
1161+
"disabled": false,
1162+
"autofocus": false,
1163+
"dbIndex": false,
1164+
"customDefaultValue": "",
1165+
"calculateValue": "",
1166+
"calculateServer": false,
1167+
"widget": null,
1168+
"attributes": {},
1169+
"conditional": {
1170+
"show": null,
1171+
"when": null,
1172+
"eq": ""
1173+
},
1174+
"overlay": {
1175+
"style": "",
1176+
"left": "",
1177+
"top": "",
1178+
"width": "",
1179+
"height": ""
1180+
},
1181+
"allowCalculateOverride": false,
1182+
"encrypted": false,
1183+
"showCharCount": false,
1184+
"showWordCount": false,
1185+
"properties": {},
1186+
"allowMultipleMasks": false,
1187+
"addons": [],
1188+
"tree": true,
1189+
"lazyLoad": false,
1190+
"disableAddingRemovingRows": false,
1191+
"id": "euimv9",
1192+
"keyModified": true
11041193
}
11051194
],
11061195
"placeholder": "",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"brukerId": "19876898104",
3+
"skjemanr": "testMellomlagring",
4+
"tittel": "Test mellomlagring",
5+
"tema": "BAR",
6+
"spraak": "nb",
7+
"hoveddokument": {
8+
"vedleggsnr": "testMellomlagring",
9+
"tittel": "Test mellomlagring",
10+
"label": "Test mellomlagring",
11+
"pakrevd": true,
12+
"beskrivelse": null,
13+
"mimetype": "application/pdf",
14+
"document": null,
15+
"propertyNavn": null,
16+
"formioId": null
17+
},
18+
"hoveddokumentVariant": {
19+
"vedleggsnr": "testMellomlagring",
20+
"tittel": "Test mellomlagring",
21+
"label": "Test mellomlagring",
22+
"pakrevd": false,
23+
"beskrivelse": null,
24+
"mimetype": "application/json",
25+
"document": {
26+
"language": "nb-NO",
27+
"data": {
28+
"data": {
29+
"hvaDrakkDuTilFrokost": "",
30+
"hvaSpisteDuTilFrokost": "",
31+
"hvaSyntesDuOmFrokosten": "Helt ok",
32+
"slettetTekstfelt": "Verdi som skal fjernes",
33+
"datagrid": [{"tekstfelt": "Hoppeslott", "tekstfelt1": "Grønn"}, {"tekstfelt": "Hund", "tekstfelt1": "Svart"}],
34+
"datagrid1": [{"tekstfelt": "Katt", "tekstfelt1": "Blå"}, {"tekstfelt": "Kanarifugl", "tekstfelt1": "Gul"}],
35+
"container.slettetTekstFelt": "Verdi fra container som skal fjernes",
36+
"onskerDuAFaGavenInnpakket": "nei",
37+
"hemmeligKode": "",
38+
"kryssAvHvisDuOnskerDagligReklamePaEPost": false,
39+
"hvordanOnskerDuAMottaPakken": {
40+
"label": "På døra",
41+
"value": "paDora"
42+
}
43+
}
44+
}
45+
},
46+
"propertyNavn": null,
47+
"formioId": null
48+
},
49+
"innsendingsId": "01234567-abcd-4ebd-90d4-34448ebaaaa2",
50+
"status": "Opprettet",
51+
"vedleggsListe": [],
52+
"kanLasteOppAnnet": true,
53+
"fristForEttersendelse": 14,
54+
"endretDato": "2023-08-30T12:33:30.399543+02:00"
55+
}

mocks/mocks/routes/innsending-api.js

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const responseWithInnsendingsId = require('../data/innsending-api/mellomlagring/responseWithInnsendingsId.json');
22
const mellomlagringValid1 = require('../data/innsending-api/mellomlagring/getTestMellomlagring-valid-1.json');
33
const mellomlagringValid2 = require('../data/innsending-api/mellomlagring/getTestMellomlagring-valid-2.json');
4+
const mellomlagringValidExtraValues = require('../data/innsending-api/mellomlagring/getTestMellomlagring-valid-extra-values.json');
45
const prefillDataNames = require('../data/innsending-api/prefill-data/prefill-data-names.json');
56

67
const paabegyntMellomlagringOgInnsendt = require('../data/innsending-api/active-tasks/mellomlagringOgEttersending.json');
@@ -162,6 +163,14 @@ module.exports = [
162163
body: convertToInnsendingApiResponse(mellomlagringValid2),
163164
},
164165
},
166+
{
167+
id: 'success-extra-values',
168+
type: 'json',
169+
options: {
170+
status: 200,
171+
body: convertToInnsendingApiResponse(mellomlagringValidExtraValues),
172+
},
173+
},
165174
{
166175
id: 'success-prefill-data',
167176
type: 'json',

packages/bygger/src/Forms/publish/PublishModalComponents.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { ConfirmationModal, useModal } from '@navikt/skjemadigitalisering-shared-components';
2-
import { navFormUtils } from '@navikt/skjemadigitalisering-shared-domain';
2+
import { NavFormType, navFormUtils } from '@navikt/skjemadigitalisering-shared-domain';
33
import { useEffect, useState } from 'react';
44
import ConfirmPublishModal from './ConfirmPublishModal';
55
import PublishSettingsModal from './PublishSettingsModal';
66

7-
const validateAttachments = (form) =>
7+
const validateAttachments = (form: NavFormType) =>
88
navFormUtils
99
.flattenComponents(form.components)
1010
.filter(navFormUtils.isAttachment)

packages/fyllut-backend/src/routers/api/helpers/sendInn.ts

+23-8
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interface HovedDokument {
1717
document: string | null;
1818
}
1919

20-
export interface Attachment {
20+
interface Attachment {
2121
vedleggsnr: string;
2222
tittel: string;
2323
label: string;
@@ -28,7 +28,7 @@ export interface Attachment {
2828
vedleggskjema?: string;
2929
}
3030

31-
export interface SendInnSoknadBody {
31+
interface SendInnSoknadBody {
3232
brukerId: string;
3333
skjemanr: string;
3434
skjemapath: string;
@@ -49,13 +49,13 @@ const isValidUuid = (innsendingsId: string): boolean => {
4949
};
5050

5151
const DEFAULT_LANGUAGE = 'nb-NO';
52-
export const objectToByteArray = (obj: object) => Array.from(new TextEncoder().encode(JSON.stringify(obj)));
52+
const objectToByteArray = (obj: object) => Array.from(new TextEncoder().encode(JSON.stringify(obj)));
5353

54-
export const byteArrayToObject = (byteArray?: Buffer) => JSON.parse(new TextDecoder().decode(byteArray));
54+
const byteArrayToObject = (byteArray?: Buffer) => JSON.parse(new TextDecoder().decode(byteArray));
5555

56-
export const sanitizeInnsendingsId = (innsendingsId: string) => innsendingsId.replace(/[./]/g, '');
56+
const sanitizeInnsendingsId = (innsendingsId: string) => innsendingsId.replace(/[./]/g, '');
5757

58-
export const validateInnsendingsId = (innsendingsId: string | undefined, supplementaryMessage?: string) => {
58+
const validateInnsendingsId = (innsendingsId: string | undefined, supplementaryMessage?: string) => {
5959
let errorMessage;
6060
if (!innsendingsId) {
6161
errorMessage = 'InnsendingsId mangler.';
@@ -71,7 +71,7 @@ export const validateInnsendingsId = (innsendingsId: string | undefined, supplem
7171
return errorMessage;
7272
};
7373

74-
export const isMellomLagringEnabled = (featureToggles: FeatureTogglesMap) => {
74+
const isMellomLagringEnabled = (featureToggles: FeatureTogglesMap) => {
7575
if (!featureToggles?.enableMellomlagring) {
7676
logger.debug('Mellomlagring not enabled, returning data in body');
7777
return false;
@@ -84,7 +84,7 @@ export const isMellomLagringEnabled = (featureToggles: FeatureTogglesMap) => {
8484
return true;
8585
};
8686

87-
export const assembleSendInnSoknadBody = (
87+
const assembleSendInnSoknadBody = (
8888
requestBody: {
8989
form: NavFormType;
9090
submission: Submission;
@@ -159,3 +159,18 @@ export const assembleSendInnSoknadBody = (
159159

160160
return body;
161161
};
162+
163+
const isNotFound = (response: { status: number }, responseError: Error | undefined) =>
164+
response.status === 404 ||
165+
responseError?.['http_response_body']?.errorCode === 'illegalAction.applicationSentInOrDeleted';
166+
167+
export {
168+
assembleSendInnSoknadBody,
169+
byteArrayToObject,
170+
isMellomLagringEnabled,
171+
isNotFound,
172+
objectToByteArray,
173+
sanitizeInnsendingsId,
174+
validateInnsendingsId,
175+
};
176+
export type { Attachment, SendInnSoknadBody };

packages/fyllut-backend/src/routers/api/send-inn-soknad.ts

+27-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
assembleSendInnSoknadBody,
1111
byteArrayToObject,
1212
isMellomLagringEnabled,
13+
isNotFound,
1314
sanitizeInnsendingsId,
1415
validateInnsendingsId,
1516
} from './helpers/sendInn';
@@ -57,12 +58,11 @@ const sendInnSoknad = {
5758
`Feil ved kall til SendInn. ${getErrorMessage}`,
5859
true,
5960
);
60-
if (
61-
sendInnResponse.status === 404 ||
62-
responseError?.['http_response_body']?.errorCode === 'illegalAction.applicationSentInOrDeleted'
63-
) {
61+
if (isNotFound(sendInnResponse, responseError)) {
62+
logger.info(`${sanitizedInnsendingsId}: Not found. Failed to get`, responseError);
6463
return res.sendStatus(404);
6564
}
65+
6666
logger.debug('Failed to fetch data from SendInn');
6767
return next(responseError);
6868
}
@@ -115,6 +115,7 @@ const sendInnSoknad = {
115115
next(err);
116116
}
117117
},
118+
118119
put: async (req: Request, res: Response, next: NextFunction) => {
119120
try {
120121
const idportenPid = getIdportenPid(req);
@@ -152,8 +153,18 @@ const sendInnSoknad = {
152153
logger.debug('Successfylly updated data in SendInn');
153154
res.json(await sendInnResponse.json());
154155
} else {
156+
const responseError = await responseToError(
157+
sendInnResponse,
158+
`Feil ved kall til SendInn. ${putErrorMessage}`,
159+
true,
160+
);
161+
if (isNotFound(sendInnResponse, responseError)) {
162+
logger.info(`${sanitizedInnsendingsId}: Not found. Failed to update`, responseError);
163+
return res.sendStatus(404);
164+
}
165+
155166
logger.debug('Failed to update data in SendInn');
156-
next(await responseToError(sendInnResponse, `Feil ved kall til SendInn. ${putErrorMessage}`, true));
167+
next(responseError);
157168
}
158169
} catch (err) {
159170
next(err);
@@ -192,8 +203,18 @@ const sendInnSoknad = {
192203
const json = await sendInnResponse.json();
193204
res.json(json);
194205
} else {
206+
const responseError = await responseToError(
207+
sendInnResponse,
208+
`Feil ved kall til SendInn. ${deleteErrorMessage}`,
209+
true,
210+
);
211+
if (isNotFound(sendInnResponse, responseError)) {
212+
logger.info(`${sanitizedInnsendingsId}: Not found. Failed to delete`, responseError);
213+
return res.sendStatus(404);
214+
}
215+
195216
logger.debug(`Failed to delete soknad with innsendingsId ${sanitizedInnsendingsId}`);
196-
next(await responseToError(sendInnResponse, `Feil ved kall til SendInn. ${deleteErrorMessage}`, true));
217+
next(responseError);
197218
}
198219
} catch (err) {
199220
next(err);

packages/fyllut-backend/src/routers/api/send-inn-utfylt-soknad.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { createPdfAsByteArray } from './helpers/pdfService';
99
import {
1010
assembleSendInnSoknadBody,
1111
isMellomLagringEnabled,
12+
isNotFound,
1213
sanitizeInnsendingsId,
1314
validateInnsendingsId,
1415
} from './helpers/sendInn';
@@ -74,8 +75,14 @@ const sendInnUtfyltSoknad = {
7475
});
7576
res.sendStatus(201);
7677
} else {
78+
const responseError = await responseToError(sendInnResponse, 'Feil ved kall til SendInn', true);
79+
if (isNotFound(sendInnResponse, responseError)) {
80+
logger.info(`${sanitizedInnsendingsId}: Not found. Failed to submit`, responseError);
81+
return res.sendStatus(404);
82+
}
83+
7784
logger.debug('Failed to post data to SendInn');
78-
next(await responseToError(sendInnResponse, 'Feil ved kall til SendInn', true));
85+
next(responseError);
7986
}
8087
} catch (err) {
8188
next(err);

0 commit comments

Comments
 (0)