Files
mina-sidor-fa-web/mock-api/mina-sidor-fa/scripts/generate-api.js
2021-09-06 07:36:38 +02:00

106 lines
3.7 KiB
JavaScript

import fs from 'fs';
import { authTokens } from './auth-tokens.js';
import avrop from './avrop.js';
import currentUser from './current-user.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';
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 avropTjanster = [];
const utforandeVerksamheter = [];
const avropKommuner = [];
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: currentUser.generate(),
getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions,
invites: [],
minaDeltagare: chooseRandom(generatedAvrop, 3),
};
fs.writeFileSync('api.json', JSON.stringify(apiData, null, '\t'));