fixed determination of user roles in seeder.helper.js

This commit is contained in:
Sascha Kühl 2025-05-25 19:48:49 +02:00
parent 3f48cea5c3
commit eca0126f45
1 changed files with 20 additions and 12 deletions

View File

@ -1,6 +1,6 @@
const bcrypt = require("bcryptjs"); const bcrypt = require("bcryptjs");
export const createUsers = async (queryInterface, roles, users) => { const createUsers = async (queryInterface, roles, users) => {
// Create Authentications // Create Authentications
await queryInterface.bulkInsert('Authentications', users.map((player) => { await queryInterface.bulkInsert('Authentications', users.map((player) => {
return { return {
@ -26,22 +26,22 @@ export const createUsers = async (queryInterface, roles, users) => {
}; };
})); }));
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) => { const rolesByName = roles.reduce((map, role) => {
map[role.name] = role; map[role.name] = role;
return map; return map;
}) }, {});
const createdUsers = await queryInterface.select(null, 'Users');
const userRoles = users.flatMap(user => user.roles.map(role => ({
id: createdUsers.find(user => user.firstName === user.firstName && user.lastName === user.lastName).id,
role: rolesByName[role]
})));
// Create UserRoles // Create UserRoles
await queryInterface.bulkInsert('UserRoles', userRoles.map(userRole => { await queryInterface.bulkInsert('UserRoles', userRoles.map(userRole => {
return { return {
userId: userRole.id, userId: userRole.id,
roleId: rolesByName[userRole.role].id, roleId: userRole.role.id,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date() updatedAt: new Date()
}; };
@ -50,9 +50,11 @@ export const createUsers = async (queryInterface, roles, users) => {
return createdUsers; return createdUsers;
} }
export const createPlayer = async (queryInterface, roles, players) => { const createPlayer = async (queryInterface, roles, players) => {
const users = await createUsers(queryInterface, roles, players.map(player => ({
const users = await createUsers(queryInterface, roles, players); ...player,
roles: player.roles || ['player']
})));
// Create Players // Create Players
await queryInterface.bulkInsert('Players', players.map(player => { await queryInterface.bulkInsert('Players', players.map(player => {
@ -64,6 +66,7 @@ export const createPlayer = async (queryInterface, roles, players) => {
bats: player.bats, bats: player.bats,
throws: player.throws, throws: player.throws,
state: player.state, state: player.state,
jerseyNumber: player.jerseyNumber,
userId: user ? user.id : null, userId: user ? user.id : null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date() updatedAt: new Date()
@ -72,3 +75,8 @@ export const createPlayer = async (queryInterface, roles, players) => {
} }
module.exports = {
createPlayer,
createUsers
}