feat(avrop): Added additional functionality to avrop-flow. (TV-411)
Squashed commit of the following: commit b174dd7480baa5e5e4b7f4bea4c9fc674d344c0c Merge: e1f9d2d0661d22Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Aug 26 11:50:11 2021 +0200 Merged develop and resolved conflicts commit e1f9d2d49e279e704b760a3cbe45941cdcfb81d9 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Aug 26 11:41:45 2021 +0200 Now fetching handledare and patching through API commit cc017fdc6eb5d9620399eee011341a0307fe5658 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Wed Aug 25 16:02:20 2021 +0200 Updated some functionality commit 345712842c12af08dd4a956d0d2fdfd2592ab3de Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Wed Aug 25 15:32:22 2021 +0200 Implmented pagination and select all commit 95f9be3fae6d3f3b258897be9b78f49442ee0747 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Wed Aug 25 13:03:41 2021 +0200 Renamed avrop-table instances to avrop-list and avrop-table-row to avrop-row commit 5f1e11bff74c942e2c8b9e62892f043dc299f612 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Wed Aug 25 12:54:56 2021 +0200 Added some changes to mock-api related to parameter changes inside avrop commit 71b199744a31b2a4b8bcaa6870094fd900851030 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Wed Aug 25 12:23:57 2021 +0200 added qp to avrop requests commit dc0e34b4971ddfd3d683d482502439b961df8852 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 16:02:31 2021 +0200 Renamed multiple variablenames inside avrop-api commit 8a4d5471cf637db7d90c6659c893f6841ec9c961 Merge: be9e9b350a83f7Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 13:57:50 2021 +0200 Merged develop and fixed conflicts commit be9e9b323aee76493b5035cd79f6058781ae4c1a Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 13:27:16 2021 +0200 Moved around elements inside avrop component commit 7ede2d00cd7ed105ef12be88e2ab788841329f00 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 09:34:57 2021 +0200 Moved around some components and other files to match project-structure commit 7d1396216de643388a5690f2fa2733f127623b6c Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 09:04:28 2021 +0200 Fixed issues with utforande verksamheter model and mock-data commit 22baca18c25bd4ce8dcc713e91126214882cf017 Merge: 4ba3c1c59ce393Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 08:56:02 2021 +0200 Merged develop and fixed conflicts commit 4ba3c1ce9dac206602de9651a98aecfd5857a0e5 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 08:48:21 2021 +0200 Fixed issues with tjanst model and mock-data commit 50d8c698778fa64cedd4249f6852715d038b450c Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Aug 24 08:40:25 2021 +0200 Fixed issues with kommun-model and mock-data
This commit is contained in:
@@ -2,20 +2,20 @@ import faker from 'faker';
|
||||
import kommuner from './kommuner.js';
|
||||
import languages from './languages.js';
|
||||
import organizations from './organizations.js';
|
||||
import utforandeVerksamheter from './utforande-verksamheter.js';
|
||||
import tjanster from './tjanster.js';
|
||||
import utforandeVerksamheter from './utforande-verksamheter.js';
|
||||
|
||||
faker.locale = 'sv';
|
||||
|
||||
const TJANSTER = tjanster.generate();
|
||||
const SUPORTLANGUAGES = languages.generate();
|
||||
const TRACK = ['A', 'B', 'C'];
|
||||
const TRACK = [{ kod: 'A012SP1', name: 'Nivå A: Kundval Rusta och matcha' }];
|
||||
const ORGANIZATIONS = organizations.generate();
|
||||
const UTFORANDEVERKSAMHETER = utforandeVerksamheter.generate();
|
||||
const KOMMUNER = kommuner.generate();
|
||||
const FREKVENSER = ['25%', '50%', '75%', '100%'];
|
||||
|
||||
function generateAvrop(amount = 10, deltagare) {
|
||||
function generateAvrop(amount = 10, deltagare, handledare) {
|
||||
const avrop = [];
|
||||
|
||||
for (let i = 1; i <= amount; ++i) {
|
||||
@@ -25,6 +25,7 @@ function generateAvrop(amount = 10, deltagare) {
|
||||
const tjanst = TJANSTER[Math.floor(Math.random() * TJANSTER.length)];
|
||||
const track = TRACK[Math.floor(Math.random() * TRACK.length)];
|
||||
const currentDeltagare = deltagare[i - 1];
|
||||
const utforandeAdress = utforandeVerksamhet.adresser[0];
|
||||
|
||||
avrop.push({
|
||||
id: faker.datatype.uuid(),
|
||||
@@ -37,25 +38,25 @@ function generateAvrop(amount = 10, deltagare) {
|
||||
organisationsnummer: organization.organizationNumber,
|
||||
utforandeVerksamhetId: utforandeVerksamhet.utforandeVerksamhetId,
|
||||
utforandeverksamhet: utforandeVerksamhet.namn,
|
||||
kommunKod: kommun.kommunCode,
|
||||
kommun: kommun.kommun,
|
||||
utforandeAdressId: faker.datatype.number({ min: 10000, max: 99999 }),
|
||||
adress: `${utforandeVerksamhet.adresser.adressrad}`,
|
||||
kommunKod: kommun.id,
|
||||
kommun: kommun.label,
|
||||
utforandeAdressId: utforandeAdress.adressId,
|
||||
adress: utforandeAdress.adressrad,
|
||||
ordernummer: `AKTTEST-${faker.datatype.number({ min: 10000, max: 99999 })}`,
|
||||
bokningsId: faker.datatype.number({ min: 100000, max: 999999 }),
|
||||
personnummer: currentDeltagare.personnummer,
|
||||
sokandeId: currentDeltagare.id,
|
||||
tjanstekod: tjanst.code,
|
||||
tjansteNamn: tjanst.name,
|
||||
tjanstekod: tjanst.id,
|
||||
tjansteNamn: tjanst.label,
|
||||
deltagandeGrad: FREKVENSER[Math.floor(Math.random() * FREKVENSER.length)],
|
||||
startdatumAvrop: faker.date.recent(),
|
||||
slutdatumAvrop: faker.date.future(),
|
||||
aktnummerDiariet: `Af-2021/0000 ${faker.datatype.number({ min: 1000, max: 9999 })}`,
|
||||
tolkbehov: currentDeltagare.translator.sprak.beskrivning,
|
||||
sprakstod: SUPORTLANGUAGES[Math.floor(Math.random() * SUPORTLANGUAGES.length)].beskrivning,
|
||||
sparkod: track,
|
||||
sparNamn: `Nivå ${track}: ${tjanst.name}`,
|
||||
supervisorId: Math.random() > 0.3 && faker.datatype.uuid(),
|
||||
sparkod: track.kod,
|
||||
sparNamn: track.name,
|
||||
handledareCiamUserId: null,
|
||||
recievedTimestamp: faker.date.recent(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import faker from 'faker';
|
||||
import utforandeVerksamheter from './utforande-verksamheter.js';
|
||||
import tjanster from './tjanster.js';
|
||||
import utforandeVerksamheter from './utforande-verksamheter.js';
|
||||
import chooseRandom from './utils/choose-random.util.js';
|
||||
|
||||
faker.locale = 'sv';
|
||||
@@ -36,14 +36,17 @@ function generateEmployees(amount = 10) {
|
||||
roles: hasBehorigheter
|
||||
? ['OrganizationUser', ...chooseRandom(ROLES, faker.datatype.number({ min: 1, max: ROLES.length }))]
|
||||
: ['OrganizationUser'],
|
||||
tjanst: hasBehorigheter ? currentTjanster.map(tjanst => tjanst.name) : [],
|
||||
tjansteKoder: hasBehorigheter ? currentTjanster.map(tjanst => tjanst.tjanstekod) : [],
|
||||
tjanst: hasBehorigheter ? currentTjanster.map(tjanst => tjanst.label) : [],
|
||||
tjansteKoder: hasBehorigheter ? currentTjanster.map(tjanst => tjanst.id) : [],
|
||||
allaUtforandeVerksamheter: faker.datatype.boolean(),
|
||||
utforandeVerksamhet: hasBehorigheter ? currentUtforandeVerksamheter.map(utforandeVerksamhet => utforandeVerksamhet) : [],
|
||||
utforandeVerksamhetIds: hasBehorigheter ? currentUtforandeVerksamheter.map(utforandeVerksamhet => utforandeVerksamhet.utforandeVerksamhetId) : [],
|
||||
utforandeVerksamhet: hasBehorigheter
|
||||
? currentUtforandeVerksamheter.map(utforandeVerksamhet => utforandeVerksamhet)
|
||||
: [],
|
||||
utforandeVerksamhetIds: hasBehorigheter
|
||||
? currentUtforandeVerksamheter.map(utforandeVerksamhet => utforandeVerksamhet.utforandeVerksamhetId)
|
||||
: [],
|
||||
};
|
||||
|
||||
employee.email = `${employee.firstName}.${employee.lastName}@private-epost.se`.toLowerCase();
|
||||
employees.push(employee);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,66 +4,79 @@ 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';
|
||||
|
||||
const generatedEmployees = employees.generate(50);
|
||||
const generatedDeltagare = deltagare.generate(50);
|
||||
const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 10));
|
||||
const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6));
|
||||
const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 10), generatedHandledare);
|
||||
const generatedTjanster = tjanster.generate();
|
||||
const avropTjanster = [];
|
||||
const organizations = [];
|
||||
const kommuner = [];
|
||||
const utforandeVerksamheter = [];
|
||||
const avropKommuner = [];
|
||||
|
||||
generatedAvrop.forEach(({ tjanstekod, tjansteNamn, utforandeVerksamhetId, utforandeverksamhet, kommunKod, kommun }) => {
|
||||
const tjanstExists = avropTjanster.find(tjanst => tjanst.code === tjanstekod);
|
||||
const organizationExists = organizations.find(organization => organization.id === utforandeVerksamhetId);
|
||||
const kommunExists = kommuner.find(kommun => kommun.kommunCode === kommunKod);
|
||||
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) {
|
||||
if (!tjanstExists.related_utforandeverksamhetIds.includes(utforandeVerksamhetId)) {
|
||||
tjanstExists.related_utforandeverksamhetIds.push(utforandeVerksamhetId);
|
||||
tjanstExists.count = tjanstExists.count + 1;
|
||||
|
||||
if (!tjanstExists.related_utforandeverksamhetId.includes(utforandeVerksamhetId)) {
|
||||
tjanstExists.related_utforandeverksamhetId.push(utforandeVerksamhetId);
|
||||
}
|
||||
if (!tjanstExists.related_kommunCodes.includes(kommunKod)) {
|
||||
tjanstExists.related_kommunCodes.push(kommunKod);
|
||||
if (!tjanstExists.related_kommunKod.includes(kommunKod)) {
|
||||
tjanstExists.related_kommunKod.push(kommunKod);
|
||||
}
|
||||
} else {
|
||||
avropTjanster.push({
|
||||
code: tjanstekod,
|
||||
name: tjansteNamn,
|
||||
related_utforandeverksamhetIds: [utforandeVerksamhetId],
|
||||
related_kommunCodes: [kommunKod],
|
||||
id: tjanstekod,
|
||||
label: tjansteNamn,
|
||||
count: 1,
|
||||
related_utforandeverksamhetId: [utforandeVerksamhetId],
|
||||
related_kommunKod: [kommunKod],
|
||||
});
|
||||
}
|
||||
if (organizationExists) {
|
||||
if (!organizationExists.related_tjanstIds.includes(tjanstekod)) {
|
||||
organizationExists.related_tjanstIds.push(tjanstekod);
|
||||
if (utforandeVerksamhetExists) {
|
||||
utforandeVerksamhetExists.count = utforandeVerksamhetExists.count + 1;
|
||||
|
||||
if (!utforandeVerksamhetExists.related_tjanstKod.includes(tjanstekod)) {
|
||||
utforandeVerksamhetExists.related_tjanstKod.push(tjanstekod);
|
||||
}
|
||||
if (!organizationExists.related_kommunCodes.includes(kommunKod)) {
|
||||
organizationExists.related_kommunCodes.push(kommunKod);
|
||||
if (!utforandeVerksamhetExists.related_kommunKod.includes(kommunKod)) {
|
||||
utforandeVerksamhetExists.related_kommunKod.push(kommunKod);
|
||||
}
|
||||
} else {
|
||||
organizations.push({
|
||||
utforandeVerksamheter.push({
|
||||
id: utforandeVerksamhetId,
|
||||
name: utforandeverksamhet,
|
||||
related_tjanstIds: [tjanstekod],
|
||||
related_kommunCodes: [kommunKod],
|
||||
label: utforandeverksamhet,
|
||||
count: 1,
|
||||
related_tjanstKod: [tjanstekod],
|
||||
related_kommunKod: [kommunKod],
|
||||
});
|
||||
}
|
||||
if (kommunExists) {
|
||||
if (!kommunExists.related_tjanstIds.includes(tjanstekod)) {
|
||||
kommunExists.related_tjanstIds.push(tjanstekod);
|
||||
kommunExists.count = kommunExists.count + 1;
|
||||
|
||||
if (!kommunExists.related_tjanstKod.includes(tjanstekod)) {
|
||||
kommunExists.related_tjanstKod.push(tjanstekod);
|
||||
}
|
||||
if (!kommunExists.related_utforandeverksamhetIds.includes(utforandeVerksamhetId)) {
|
||||
kommunExists.related_utforandeverksamhetIds.push(utforandeVerksamhetId);
|
||||
if (!kommunExists.related_utforandeverksamhetId.includes(utforandeVerksamhetId)) {
|
||||
kommunExists.related_utforandeverksamhetId.push(utforandeVerksamhetId);
|
||||
}
|
||||
} else {
|
||||
kommuner.push({
|
||||
kommunCode: kommunKod,
|
||||
kommun,
|
||||
related_tjanstIds: [tjanstekod],
|
||||
related_utforandeverksamhetIds: [utforandeVerksamhetId],
|
||||
avropKommuner.push({
|
||||
id: kommunKod,
|
||||
label: kommun,
|
||||
count: 1,
|
||||
related_tjanstKod: [tjanstekod],
|
||||
related_utforandeverksamhetId: [utforandeVerksamhetId],
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -74,9 +87,10 @@ const apiData = {
|
||||
avrop: generatedAvrop,
|
||||
avropTjanster,
|
||||
tjanster: generatedTjanster,
|
||||
organizations,
|
||||
kommuner,
|
||||
utforandeVerksamheter,
|
||||
kommuner: avropKommuner,
|
||||
deltagare: generatedDeltagare,
|
||||
handledare: generatedHandledare,
|
||||
participants: participants.generate(50).map(participant => ({
|
||||
...participant,
|
||||
employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id,
|
||||
|
||||
21
mock-api/mina-sidor-fa/scripts/handledare.js
Normal file
21
mock-api/mina-sidor-fa/scripts/handledare.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import faker from 'faker';
|
||||
|
||||
faker.locale = 'sv';
|
||||
|
||||
function generateHandledare(employees) {
|
||||
const handledare = [];
|
||||
|
||||
employees.forEach(({ name, ciamUserId }) => {
|
||||
handledare.push({
|
||||
namn: name,
|
||||
ciamUserId,
|
||||
count: faker.datatype.number(20),
|
||||
});
|
||||
});
|
||||
|
||||
return handledare;
|
||||
}
|
||||
|
||||
export default {
|
||||
generate: generateHandledare,
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ import faker from 'faker';
|
||||
|
||||
faker.locale = 'sv';
|
||||
|
||||
function generateOrganizations(amount = 10) {
|
||||
function generateOrganizations(amount = 4) {
|
||||
const organizations = [];
|
||||
|
||||
for (let i = 1; i <= amount; ++i) {
|
||||
|
||||
@@ -16,7 +16,7 @@ function generateParticipants(amount = 10) {
|
||||
firstName: faker.name.firstName(),
|
||||
lastName: faker.name.lastName(),
|
||||
status: STATUSES[Math.floor(Math.random() * STATUSES.length)],
|
||||
service: TJANSTER[Math.floor(Math.random() * TJANSTER.length)].name,
|
||||
service: TJANSTER[Math.floor(Math.random() * TJANSTER.length)].label,
|
||||
nextStep: STEPS[Math.floor(Math.random() * STEPS.length)],
|
||||
errandNumber: faker.datatype.number({ min: 100000, max: 999999 }),
|
||||
startDate: faker.date.recent(),
|
||||
|
||||
@@ -6,19 +6,11 @@ function generateTjanster() {
|
||||
const tjanster = [
|
||||
{
|
||||
id: 'A012',
|
||||
name: 'Kundval Rusta och matcha',
|
||||
tjanstekod: 'A012',
|
||||
tjanstId: 25,
|
||||
count: 8, // Behövs för avrop-tjanst
|
||||
label: 'Kundval Rusta och matcha', // Behövs för avrop-tjanst
|
||||
label: 'Kundval Rusta och matcha',
|
||||
},
|
||||
// {
|
||||
// id: 'KVL',
|
||||
// name: 'Karriärvägledning',
|
||||
// tjanstekod: 'KVL',
|
||||
// tjanstId: 33,
|
||||
// count: 8, // Behövs för avrop-tjanst
|
||||
// label: 'Karriärvägledning', // Behövs för avrop-tjanst
|
||||
// label: 'Karriärvägledning',
|
||||
// },
|
||||
];
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ function generateUtforandeVerksamheter(amount = 10) {
|
||||
for (let i = 1; i <= 5; ++i) {
|
||||
addresses.push({
|
||||
adressId: faker.datatype.uuid(),
|
||||
adressrad: faker.address.streetName(),
|
||||
adressrad: `${faker.address.streetName()} ${faker.datatype.number({ min: 1, max: 999 })}`,
|
||||
postort: faker.address.city(),
|
||||
postnummer: faker.address.zipCode(),
|
||||
});
|
||||
@@ -23,7 +23,7 @@ function generateUtforandeVerksamheter(amount = 10) {
|
||||
leverantorNamn: faker.company.companyName(),
|
||||
tjanstId: faker.datatype.number(10),
|
||||
tjanst: faker.name.jobTitle(),
|
||||
adresser: chooseRandom(addresses, faker.datatype.number(4)),
|
||||
adresser: chooseRandom(addresses, faker.datatype.number({ min: 1, max: addresses.length })),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,13 @@ server.use(
|
||||
'/participant/:id': '/participants/:id?_embed=employees',
|
||||
'/auth/userinfo': '/currentUser',
|
||||
'/auth/organizations': '/currentUser',
|
||||
'/avrop/handledare/assign*': '/avrop$1',
|
||||
'/avrop/tjanster*': '/avropTjanster$1',
|
||||
'/avrop/utforandeverksamheter*': '/organizations$1',
|
||||
'/avrop/handledare*': '/handledare$1',
|
||||
'/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1',
|
||||
'/avrop/kommuner*': '/kommuner$1',
|
||||
'/avrop*utforandeverksamhetId*': '/avrop$1utforandeVerksamhetId$2',
|
||||
'/avrop*tjanstKod*': '/avrop$1tjanstekod$2',
|
||||
'/deltagare?*': '/avrop?$1',
|
||||
'/deltagare/:sokandeId/avrop': '/avrop?sokandeId=:sokandeId',
|
||||
'/deltagare/:sokandeId/*': '/deltagare/:sokandeId',
|
||||
@@ -48,6 +52,11 @@ router.render = (req, res) => {
|
||||
return res.status(401).jsonp({ error: 'No valid access-token' });
|
||||
}
|
||||
|
||||
if (method === 'PATCH') {
|
||||
// Returning status 204 as this is the same as in the API, BUT we're not actually updating the mock-api
|
||||
return res.status(204).jsonp();
|
||||
}
|
||||
|
||||
// Return custom error when status is 404.
|
||||
if (res.statusCode === 404) {
|
||||
return res.status(404).jsonp({ error: `Can't find path: ${pathname}` });
|
||||
@@ -91,11 +100,15 @@ router.render = (req, res) => {
|
||||
if (params) {
|
||||
const newData = [];
|
||||
params.forEach((value, key) => {
|
||||
if (key === 'kommunCodes') {
|
||||
value = +value;
|
||||
}
|
||||
// if (key === 'kommunKod') {
|
||||
// value = +value;
|
||||
// }
|
||||
|
||||
newData.push(...data.filter(item => item[`related_${key}`].includes(value)));
|
||||
newData.push(
|
||||
...data.filter(item => {
|
||||
return item[`related_${key}`].includes(value);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
data = newData.filter((value, index, arr) => arr.findIndex(item => item.code === value.code) === index);
|
||||
@@ -131,13 +144,13 @@ function appendMetaData(params, res) {
|
||||
const limit = +params.get('limit');
|
||||
const page = +params.get('page');
|
||||
const count = res.get('X-Total-Count');
|
||||
const totalPages = Math.ceil(count / limit);
|
||||
const totalPage = Math.ceil(count / limit);
|
||||
return {
|
||||
meta: {
|
||||
count,
|
||||
limit,
|
||||
page,
|
||||
totalPages,
|
||||
totalPage,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user