75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
const bcrypt = require("bcryptjs");
|
|
|
|
export const createUsers = async (queryInterface, roles, users) => {
|
|
// Create Authentications
|
|
await queryInterface.bulkInsert('Authentications', users.map((player) => {
|
|
return {
|
|
email: player.email,
|
|
password: bcrypt.hashSync(player.password, 8),
|
|
createdAt: new Date(),
|
|
updatedAt: new Date()
|
|
}
|
|
}));
|
|
|
|
const auths = await queryInterface.select(null, 'Authentications');
|
|
|
|
// Create Users
|
|
await queryInterface.bulkInsert('Users', users.map(player => {
|
|
const auth = auths.find(auth => auth.email === player.email);
|
|
return {
|
|
firstName: player.firstName,
|
|
lastName: player.lastName,
|
|
dateOfBirth: player.dateOfBirth,
|
|
authId: auth ? auth.id : null,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date()
|
|
};
|
|
}));
|
|
|
|
const createdUsers = await queryInterface.select(null, 'Users');
|
|
const userRoles = createdUsers.flatMap(user => user.roles.map(role => ({
|
|
id: user.id,
|
|
role: role
|
|
})));
|
|
|
|
const rolesByName = roles.reduce((map, role) => {
|
|
map[role.name] = role;
|
|
return map;
|
|
})
|
|
|
|
// Create UserRoles
|
|
await queryInterface.bulkInsert('UserRoles', userRoles.map(userRole => {
|
|
return {
|
|
userId: userRole.id,
|
|
roleId: rolesByName[userRole.role].id,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date()
|
|
};
|
|
}));
|
|
|
|
return createdUsers;
|
|
}
|
|
|
|
export const createPlayer = async (queryInterface, roles, players) => {
|
|
|
|
const users = await createUsers(queryInterface, roles, players);
|
|
|
|
// Create Players
|
|
await queryInterface.bulkInsert('Players', players.map(player => {
|
|
const user = users.find(user => user.firstName === player.firstName && user.lastName === player.lastName);
|
|
return {
|
|
height: player.height ? player.height : null,
|
|
weight: player.weight ? player.weight : null,
|
|
gender: player.gender,
|
|
bats: player.bats,
|
|
throws: player.throws,
|
|
state: player.state,
|
|
userId: user ? user.id : null,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date()
|
|
};
|
|
}));
|
|
|
|
|
|
}
|