Files
mina-sidor-fa-web/mock-api/mina-sidor-fa/scripts/generate-api.js
Nicolas Fuentes Maturana a28bca739c Merge pull request #105 in TEA/mina-sidor-fa-web from bugfix/TV-621 to develop
Squashed commit of the following:

commit b86ee7b9994b647c4ad7616ad0e989cffb2581af
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Sep 20 12:26:13 2021 +0200

    TV-621 deleted path from server.js, updated path name in generate

commit 4370d39e401021d6cde9f47d2da22078ce6fd626
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Fri Sep 17 17:14:47 2021 +0200

    TV-621: updated mock data for avvikelserapporter
2021-09-20 13:52:55 +02:00

132 lines
5.1 KiB
JavaScript

import fs from 'fs';
import { authTokens } from './auth-tokens.js';
import avrop from './avrop.js';
import currentUser from './current-user.js';
import userinfo from './userinfo.js';
import deltagare from './deltagare.js';
import employees from './employees.js';
import handledare from './handledare.js';
import languages from './languages.js';
import participants from './participants.js';
import tjanster from './tjanster.js';
import chooseRandom from './utils/choose-random.util.js';
import organizations from './organizations.js';
import orsaksKoderFranvaro from './avvikelse-alternative/orsaks-koder-franvaro.js';
import orsaksKoderAvvikelse from './avvikelse-alternative/orsaks-koder-avvikelse.js';
import kandaAvvikelseKoder from './avvikelse-alternative/kanda-avvikelse-koder.js';
import fragorForAvvikelser from './avvikelse-alternative/fragor-for-avvikelser.js';
const ORGANIZATIONS = organizations.generate();
const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi'];
const generatedEmployees = employees.generate(50);
const generatedDeltagare = deltagare.generate(50);
const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6));
const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare);
const generatedTjanster = tjanster.generate();
const generatedCurrentUser = currentUser.generate();
const generatedOrganizations = chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length);
const generatedUserinfo = {
...userinfo.generate(),
firstName: generatedCurrentUser.firstName,
lastName: generatedCurrentUser.lastName,
};
const avropTjanster = [];
const utforandeVerksamheter = [];
const avropKommuner = [];
const generateOrsaksKoderFranvaro = orsaksKoderFranvaro.generate();
const generateOrsaksKoderAvvikelse = orsaksKoderAvvikelse.generate();
const generateKandaAvvikelseKoder = kandaAvvikelseKoder.generate();
const generateFragorForAvvikelser = fragorForAvvikelser.generate();
generatedAvrop.forEach(({ tjanstekod, tjansteNamn, utforandeVerksamhetId, utforandeverksamhet, kommunKod, kommun }) => {
const tjanstExists = avropTjanster.find(tjanst => tjanst.id === tjanstekod);
const utforandeVerksamhetExists = utforandeVerksamheter.find(
utforandeVerksamhet => utforandeVerksamhet.id === utforandeVerksamhetId
);
const kommunExists = avropKommuner.find(kommun => kommun.id === kommunKod);
if (tjanstExists) {
tjanstExists.count = tjanstExists.count + 1;
if (!tjanstExists.related_utforandeverksamhetIds.includes(utforandeVerksamhetId)) {
tjanstExists.related_utforandeverksamhetIds.push(utforandeVerksamhetId);
}
if (!tjanstExists.related_kommunKoder.includes(kommunKod)) {
tjanstExists.related_kommunKoder.push(kommunKod);
}
} else {
avropTjanster.push({
id: tjanstekod,
label: tjansteNamn,
count: 1,
related_utforandeverksamhetIds: [utforandeVerksamhetId],
related_kommunKoder: [kommunKod],
});
}
if (utforandeVerksamhetExists) {
utforandeVerksamhetExists.count = utforandeVerksamhetExists.count + 1;
if (!utforandeVerksamhetExists.related_tjanstKoder.includes(tjanstekod)) {
utforandeVerksamhetExists.related_tjanstKoder.push(tjanstekod);
}
if (!utforandeVerksamhetExists.related_kommunKoder.includes(kommunKod)) {
utforandeVerksamhetExists.related_kommunKoder.push(kommunKod);
}
} else {
utforandeVerksamheter.push({
id: utforandeVerksamhetId,
label: utforandeverksamhet,
count: 1,
related_tjanstKoder: [tjanstekod],
related_kommunKoder: [kommunKod],
});
}
if (kommunExists) {
kommunExists.count = kommunExists.count + 1;
if (!kommunExists.related_tjanstKoder.includes(tjanstekod)) {
kommunExists.related_tjanstKoder.push(tjanstekod);
}
if (!kommunExists.related_utforandeverksamhetIds.includes(utforandeVerksamhetId)) {
kommunExists.related_utforandeverksamhetIds.push(utforandeVerksamhetId);
}
} else {
avropKommuner.push({
id: kommunKod,
label: kommun,
count: 1,
related_tjanstKoder: [tjanstekod],
related_utforandeverksamhetIds: [utforandeVerksamhetId],
});
}
});
const apiData = {
languages: languages.generate(),
employees: generatedEmployees,
avrop: generatedAvrop,
avropTjanster,
tjanster: generatedTjanster,
utforandeVerksamheter,
kommuner: avropKommuner,
deltagare: generatedDeltagare,
handledare: generatedHandledare,
participants: participants.generate(50).map(participant => ({
...participant,
employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id,
})),
currentUser: generatedCurrentUser,
organizations: generatedOrganizations,
userinfo: generatedUserinfo,
getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions,
invites: [],
orsakskoderfranvaro: generateOrsaksKoderFranvaro,
orsakskoderavvikelse: generateOrsaksKoderAvvikelse,
kandaavvikelsekoder: generateKandaAvvikelseKoder,
fragorforavvikelser: generateFragorForAvvikelser,
minaDeltagare: chooseRandom(generatedAvrop, 3),
};
fs.writeFileSync('api.json', JSON.stringify(apiData, null, '\t'));