Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oppdatert veilederapp - ungdomsytelse #2558

Merged
merged 34 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f7b6f58
Start - nytt veilederoppsett
frodehansen2 Nov 22, 2024
0ccb75f
Grovoppsett - ny
frodehansen2 Nov 25, 2024
ba170af
ReactRouter
frodehansen2 Nov 26, 2024
c5d12ae
Fix load-loop
frodehansen2 Nov 26, 2024
b51b01c
Både oppslag på deltagerId og fnr
frodehansen2 Nov 26, 2024
0e76817
Refactor Deltaker og deltakelser
frodehansen2 Nov 26, 2024
ea9d5e6
Deltaker ikke funnet
frodehansen2 Nov 26, 2024
4eab666
Registrere ny deltaker
frodehansen2 Nov 26, 2024
23c4488
Layoutendringer
frodehansen2 Nov 26, 2024
ea3cc6a
Justere tekst
frodehansen2 Nov 26, 2024
b7b70a3
upd
frodehansen2 Nov 26, 2024
c03ca6f
Oppdatert api kom
frodehansen2 Nov 27, 2024
1a086c3
Fallback på navn
frodehansen2 Nov 27, 2024
72d97ce
Rename
frodehansen2 Nov 27, 2024
583280b
fix - getDeltaker kall
frodehansen2 Nov 27, 2024
1ae8b88
findDeltaker
frodehansen2 Nov 27, 2024
cf4c3c4
Korrigere api payloads
frodehansen2 Nov 27, 2024
fd6259f
Fjerne v0
frodehansen2 Nov 27, 2024
55ae600
Oppdatere AvsluttDeltakelse
frodehansen2 Nov 27, 2024
55c56e7
korrigere method
frodehansen2 Nov 27, 2024
8ea9ec9
Skip decorator test
frodehansen2 Nov 27, 2024
66a467f
Avslutt deltakelse
frodehansen2 Nov 27, 2024
b1afd25
Hente deltakelser på nytt
frodehansen2 Nov 27, 2024
121b176
Vise deltakelse når det er 1 eller aktiv
frodehansen2 Nov 28, 2024
0a631eb
Layoutendringer
frodehansen2 Nov 28, 2024
323327e
Info fra deltaker
frodehansen2 Nov 28, 2024
c680f57
DeltHeader
frodehansen2 Nov 28, 2024
1836b8c
OppdaterDeltakelse
frodehansen2 Nov 28, 2024
76c5189
Reload ved endring
frodehansen2 Nov 28, 2024
3896e57
Oppdateringer
frodehansen2 Nov 28, 2024
d6bea2c
Retry
frodehansen2 Nov 28, 2024
cd37f24
Oppdateringer
frodehansen2 Dec 2, 2024
f343ee5
Utvide min/max periode
frodehansen2 Dec 2, 2024
5bf8949
Merge branch 'main' into ung-veileder
frodehansen2 Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

150 changes: 107 additions & 43 deletions apps/ungdomsytelse-veileder/api-mock/mock-server.cjs
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
/* eslint-disable no-console */
const express = require('express');
const helmet = require('helmet');
const busboyCons = require('busboy');
const os = require('os');
const fs = require('fs');
const cors = require('cors');

const server = express();
Expand All @@ -27,81 +24,148 @@ server.use(
);
server.options('*', cors());

const readFileSync = (path) => {
return fs.readFileSync(path, 'utf8');
const nyDeltaker = {
id: null,
deltakerIdent: '56857102105',
navn: {
fornavn: 'GLORETE',
mellomnavn: null,
etternavn: 'TØFFEL',
},
};

const existsSync = (path) => fs.existsSync(path);
const nyDeltakerRegistrert = {
...nyDeltaker,
id: 'd-n',
};

const registrertDeltaker = {
id: 'd-r',
deltakerIdent: '03867198392',
navn: {
fornavn: 'PRESENTABEL',
mellomnavn: null,
etternavn: 'HOFTE',
},
};

const mockPath = `${__dirname}/data`;
const deltakelser = 'deltaker';
const deltakelse1 = {
id: '3ebb8cb3-a2eb-45a5-aeee-22a2766aaab0',
deltakerIdent: '03867198392',
deltaker: {
id: 'd-r',
deltakerIdent: '03867198392',
},
fraOgMed: '2025-09-01',
harSøkt: false,
};
const deltakelser = [deltakelse1];

const readMockFile = (file, responseObject) => {
const filePath = `${mockPath}/${soker}/${file}`;
if (existsSync(filePath)) {
const body = readFileSync(filePath);
responseObject.send(JSON.parse(body));
} else {
responseObject.send({});
const getDeltaker = ({ deltakerIdent, deltakerId }) => {
if (deltakerIdent) {
console.log('henter deltaker med deltakerIdent', deltakerIdent);
switch (deltakerIdent) {
case nyDeltaker.deltakerIdent:
return nyDeltaker;
case registrertDeltaker.deltakerIdent:
return registrertDeltaker;
default:
console.log('fant ikke deltaker med deltakerIdent', deltakerIdent);
return null;
}
}
if (deltakerId) {
console.log('henter deltaker med id', deltakerId);
switch (deltakerId) {
case registrertDeltaker.id:
return registrertDeltaker;
case nyDeltakerRegistrert.id:
return nyDeltakerRegistrert;
default:
console.log('fant ikke deltaker med id', deltakerId);
return null;
}
}
};

const getDeltakelser = (id) => {
console.log('getDeltakelser', id);
return id === 'd-n' ? [] : deltakelser;
};

const startExpressServer = () => {
const port = process.env.PORT || 8099;

server.post('/veileder/register/hent/alle', (req, res) => {
const response = [
{
id: '3ebb8cb3-a2eb-45a5-aeee-22a2766aaab0',
deltakerIdent: '56857102105',
fraOgMed: '2025-09-01',
},
];
server.get('/oppslag/deltaker/:id', (req, res) => {
console.log('/oppslag/deltaker', req.params);
const response = getDeltaker({ deltakerId: req.params.id });
setTimeout(() => {
res.status(200).send(response);
}, 50);
}, 350);
});

server.post('/oppslag/deltaker', (req, res) => {
const response = getDeltaker({ deltakerIdent: req.body.deltakerIdent });
setTimeout(() => {
res.status(200).send(response);
}, 350);
});

server.post('/veileder/register/legg-til', (req, res) => {
server.post('/oppslag/deltaker-500', (req, res) => {
const response = getDeltaker(req.body);
setTimeout(() => {
res.status(500).send(response);
}, 350);
});

server.get('/veileder/register/deltaker/:deltakerId/deltakelser', (req, res) => {
const response = getDeltakelser(req.params.deltakerId);
console.log(response);
setTimeout(() => {
res.status(200).send(response);
}, 250);
});

server.post('/veileder/register/deltaker/innmelding', (req, res) => {
const body = req.body;
console.log('[POST] body', body);
const response = {
...req.body,
id: 'd-n',
deltakerIdent: req.body.deltakerIdent,
deltaker: {
id: 'd-n',
deltakerIdent: req.body.deltakerIdent,
},
harSøkt: false,
fraOgMed: req.body.fraOgMed,
};
setTimeout(() => {
res.status(200).send(response);
}, 50);
}, 1500);
});

server.post('/veileder/register/legg-til-error', (req, res) => {
const body = req.body;
console.log('[POST] body', body);
server.put('/veileder/register/deltakelse/:id/avslutt', (req, res) => {
const response = {
...req.body,
...deltakelse1,
tilOgMed: req.body.utmeldingsdato,
};
setTimeout(() => {
res.status(409).send({
type: '/problem-details/deltaker-med-overlappende-periode',
title: 'Deltaker er allerede i programmet for oppgitt periode',
status: 409,
detail: 'Key (deltaker_ident, periode)=(02499435811, [2024-10-08,)) conflicts with existing key (deltaker_ident, periode)=(02499435811, [2024-10-01,)).',
instance: 'https://ungdomsytelse-veileder.intern.dev.nav.no/veileder/register/legg-til',
});
}, 50);
res.status(200).send(response);
}, 1500);
});

server.put('/veileder/register/oppdater/:id', (req, res) => {
server.put('/veileder/register/deltakelse/:id/oppdater', (req, res) => {
const body = req.body;
console.log('[put] body', body);
const response = {
...req.body,
...deltakelse1,
...body,
};
setTimeout(() => {
res.status(200).send(response);
}, 50);
});

server.delete('/veileder/register/fjern/:id', (req, res) => {
server.delete('/veileder/register/deltakelse/:id/fjern', (req, res) => {
res.sendStatus(200);
});

Expand Down
7 changes: 3 additions & 4 deletions apps/ungdomsytelse-veileder/dev-server.cjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const { createProxyMiddleware, fixRequestBody } = require('http-proxy-middleware');
const { injectDecoratorServerSide } = require('@navikt/nav-dekoratoren-moduler/ssr/index.js');
const express = require('express');
const server = express();
server.use(express.json());
const path = require('path');
const mustacheExpress = require('mustache-express');
const compression = require('compression');
const getAppSettings = require('./getAppSettings.cjs');
const fs = require('fs');

server.disable('x-powered-by');

Expand Down Expand Up @@ -43,9 +43,9 @@ const startServer = async () => {

const indexHtmlPath = path.resolve(__dirname, 'index.html');

const htmlWithDecoratorInjected = await injectDecorator(indexHtmlPath);
const html = fs.readFileSync(indexHtmlPath, 'utf-8');

const renderedHtml = htmlWithDecoratorInjected.replaceAll(
const renderedHtml = html.replaceAll(
'{{{APP_SETTINGS}}}',
JSON.stringify({
APP_VERSION: `${process.env.APP_VERSION}`,
Expand All @@ -66,7 +66,6 @@ const startServer = async () => {
}),
);

const fs = require('fs');
fs.writeFileSync(path.resolve(__dirname, 'index-decorated.html'), renderedHtml);

const vite = await require('vite').createServer({
Expand Down
6 changes: 5 additions & 1 deletion apps/ungdomsytelse-veileder/env.schema.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { commonEnvSchema, ungDeltakelseOpplyserEnvSchema } from '@navikt/sif-common-env';
import * as z from 'zod';

export const appEnvSchema = commonEnvSchema.merge(ungDeltakelseOpplyserEnvSchema);
const localSchema = z.object({
isLocal: z.boolean().optional(),
});

export const appEnvSchema = commonEnvSchema.merge(ungDeltakelseOpplyserEnvSchema).merge(localSchema);

export type AppEnv = z.infer<typeof appEnvSchema>;
16 changes: 15 additions & 1 deletion apps/ungdomsytelse-veileder/getAppSettings.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,29 @@ require('dotenv').config();
const process = require('process');

const getAppSettings = () => ({
ENV: `${process.env.ENV}`,
APP_VERSION: `${process.env.APP_VERSION}`,
GITHUB_REF_NAME: `${process.env.GITHUB_REF_NAME}`,
PUBLIC_PATH: `${process.env.PUBLIC_PATH}`,

K9_BRUKERDIALOG_PROSESSERING_API_URL: `${process.env.K9_BRUKERDIALOG_PROSESSERING_API_URL}`,
SIF_PUBLIC_AMPLITUDE_API_KEY: `${process.env.SIF_PUBLIC_AMPLITUDE_API_KEY}`,
SIF_PUBLIC_APPSTATUS_DATASET: `${process.env.SIF_PUBLIC_APPSTATUS_DATASET}`,
SIF_PUBLIC_APPSTATUS_PROJECT_ID: `${process.env.SIF_PUBLIC_APPSTATUS_PROJECT_ID}`,
SIF_PUBLIC_DEKORATOR_URL: `${process.env.SIF_PUBLIC_DEKORATOR_URL}`,
SIF_PUBLIC_FEATURE_NYNORSK: `${process.env.SIF_PUBLIC_FEATURE_NYNORSK}`,
SIF_PUBLIC_LOGIN_URL: `${process.env.SIF_PUBLIC_LOGIN_URL}`,
SIF_PUBLIC_MINSIDE_URL: `${process.env.SIF_PUBLIC_MINSIDE_URL}`,
SIF_PUBLIC_USE_AMPLITUDE: `${process.env.SIF_PUBLIC_USE_AMPLITUDE}`,
SIF_PUBLIC_AMPLITUDE_API_KEY: `${process.env.SIF_PUBLIC_AMPLITUDE_API_KEY}`,
IS_LOCAL: `${process.env.IS_LOCAL}`,

K9_BRUKERDIALOG_PROSESSERING_FRONTEND_PATH: `${process.env.K9_BRUKERDIALOG_PROSESSERING_FRONTEND_PATH}`,
K9_BRUKERDIALOG_PROSESSERING_API_SCOPE: `${process.env.K9_BRUKERDIALOG_PROSESSERING_API_SCOPE}`,
K9_BRUKERDIALOG_PROSESSERING_API_URL: `${process.env.K9_BRUKERDIALOG_PROSESSERING_API_URL}`,

UNG_DELTAKELSE_OPPLYSER_API_URL: `${process.env.UNG_DELTAKELSE_OPPLYSER_API_URL}`,
UNG_DELTAKELSE_OPPLYSER_FRONTEND_PATH: `${process.env.UNG_DELTAKELSE_OPPLYSER_FRONTEND_PATH}`,
UNG_DELTAKELSE_OPPLYSER_API_SCOPE: `${process.env.UNG_DELTAKELSE_OPPLYSER_API_SCOPE}`,
});

module.exports = getAppSettings;
7 changes: 0 additions & 7 deletions apps/ungdomsytelse-veileder/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@
<script type="text/json" id="nav:appSettings">
{{{APP_SETTINGS}}}
</script>
<style>
#decorator-header,
#decorator-footer {
display: none;
}
</style>

</head>

<body>
Expand Down
3 changes: 2 additions & 1 deletion apps/ungdomsytelse-veileder/nais/dev-gcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
"NPM_CONFIG_CACHE": "/tmp",
"PUBLIC_PATH": "/",

"SKIP_DECORATOR": "true",

"SIF_PUBLIC_AMPLITUDE_API_KEY": "default",
"SIF_PUBLIC_USE_AMPLITUDE": "false",
"SIF_PUBLIC_APPSTATUS_DATASET": "staging",

"SIF_PUBLIC_APPSTATUS_PROJECT_ID": "ryujtq87",
"SIF_PUBLIC_DEKORATOR_URL": "https://dekoratoren.ekstern.dev.nav.no/?simple=true&chatbot=false&urlLookupTable=false",
"SIF_PUBLIC_FEATURE_NYNORSK": "on",
Expand Down
Loading
Loading