Files
mina-sidor-fa-web/mock-api/dafa-web/scripts/employees.js
2021-05-04 14:44:48 +02:00

63 lines
2.1 KiB
JavaScript

import faker from 'faker';
import agencies from './agencies.js';
import kommuner from './kommuner.js';
import languages from './languages.js';
import services from './services.js';
import chooseRandom from './utils/choose-random.util.js';
faker.locale = 'sv';
const SERVICES = services.generate();
const KOMMUN = kommuner.generate();
const AGENCIES = agencies.generate();
const STATUSES = [true, false];
const LANGUAGES = languages.generate();
const AUTHORISATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi'];
function generateEmployees(amount = 10) {
const employees = [];
for (let i = 1; i <= amount; ++i) {
const person = {
id: faker.datatype.uuid(),
employeeId: faker.datatype.number(),
firstName: faker.name.firstName(),
lastName: faker.name.lastName(),
kommun: KOMMUN[Math.floor(Math.random() * KOMMUN.length)].kommun,
active: STATUSES[Math.floor(Math.random() * STATUSES.length)],
service: SERVICES[Math.floor(Math.random() * SERVICES.length)].name,
languages: [
LANGUAGES.find(language => language.name === 'Svenska'),
...chooseRandom(LANGUAGES, faker.datatype.number(3)),
],
ssn: `${faker.date.between('1950', '2000').toISOString().split('T')[0].replace(/-/g, '')}-${faker.datatype.number(
{
min: 1000,
max: 9999,
}
)}`,
phone: `07${faker.datatype.number(9)}-${faker.datatype.number({ min: 1000000, max: 9999999 })}`,
email: faker.internet.email(),
authorisations: chooseRandom(AUTHORISATIONS, faker.datatype.number(3)),
outOfOffice: STATUSES[Math.floor(Math.random() * STATUSES.length)]
? [
{
start: new Date('2021-07-12'),
end: new Date('2021-07-24'),
},
]
: [],
agencies: chooseRandom(AGENCIES, faker.datatype.number(3)),
};
employees.push({ ...person, fullName: `${person.firstName} ${person.lastName}` });
}
console.info('Employees generated...');
return employees;
}
export default {
generate: generateEmployees,
};