Director hiring added

This commit is contained in:
Torsten Schulz
2025-01-09 15:31:55 +01:00
parent 6f7d97672e
commit 2f60741116
30 changed files with 2368 additions and 751 deletions

View File

@@ -214,12 +214,15 @@ const initializeFalukantLastnames = async () => {
}
async function initializeFalukantStockTypes() {
await FalukantStockType.bulkCreate([
{ labelTr: 'wood', cost: 15 },
{ labelTr: 'stone', cost: 25 },
{ labelTr: 'iron', cost: 100 },
{ labelTr: 'field', cost: 5 },
]);
try {
await FalukantStockType.bulkCreate([
{ labelTr: 'wood', cost: 15 },
{ labelTr: 'stone', cost: 25 },
{ labelTr: 'iron', cost: 100 },
{ labelTr: 'field', cost: 5 },
]);
} catch (error) {
}
}
async function initializeFalukantProducts() {
@@ -338,4 +341,4 @@ async function initializeFalukantBranchTypes() {
{ labelTr: 'store', baseCost: 2000 },
{ labelTr: 'fullstack', baseCost: 4500},
], { ignoreDuplicates: true });
}
}

View File

@@ -9,7 +9,7 @@ const EXPIRATION_TIME = 30 * 60 * 1000;
const redisClient = createClient({
url: `redis://${process.env.REDIS_HOST}:${process.env.REDIS_PORT}`,
password: process.env.REDIS_PASSWORD,
legacyMode: false,
legacyMode: false,
});
redisClient.connect().catch(console.error);
@@ -23,7 +23,7 @@ const setUserSession = async (userId, sessionData) => {
} catch (error) {
console.error('Fehler beim Setzen der Benutzersitzung:', error);
}
};
};
const deleteUserSession = async (userId) => {
try {
@@ -41,8 +41,8 @@ const deleteUserSession = async (userId) => {
const convertToOriginalType = (value) => {
if (value === 'true') return true;
if (value === 'false') return false;
if (!isNaN(value) && value.trim() !== '') return Number(value);
return value;
if (!isNaN(value) && value.trim() !== '') return Number(value);
return value;
};
const getUserSession = async (userId) => {

View File

@@ -20,6 +20,7 @@ const createSchemas = async () => {
await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_data');
await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_type');
await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_predefine');
await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_log');
};
const initializeDatabase = async () => {
@@ -34,4 +35,37 @@ const syncModels = async (models) => {
}
};
export { sequelize, initializeDatabase, syncModels };
async function updateFalukantUserMoney(falukantUserId, moneyChange, activity, changedBy = null) {
try {
const result = await sequelize.query(
`SELECT falukant_data.update_money(
:falukantUserId,
:moneyChange,
:activity,
:changedBy
)`,
{
replacements: {
falukantUserId,
moneyChange,
activity,
changedBy,
},
type: sequelize.QueryTypes.SELECT,
}
);
return {
success: true,
message: 'Money updated successfully',
result
};
} catch (error) {
console.error('Error updating money:', error);
return {
success: false,
message: error.message
};
}
}
export { sequelize, initializeDatabase, syncModels, updateFalukantUserMoney };

View File

@@ -4,12 +4,12 @@ import BaseService from '../services/BaseService.js';
const baseService = new BaseService();
let io;
const userSockets = {};
const userSockets = {};
export function setupWebSocket(server) {
io = new Server(server, {
cors: {
origin: '*',
origin: '*',
},
});
@@ -48,7 +48,9 @@ export async function notifyUser(recipientHashedUserId, event, data) {
if (recipientUser) {
const socketId = userSockets[recipientUser.hashedId];
if (socketId) {
io.to(socketId).emit(event, data);
setTimeout(() => {
io.to(socketId).emit(event, data);
}, 250);
}
} else {
console.log(`Benutzer mit gehashter ID ${recipientHashedUserId} nicht gefunden.`);
@@ -56,6 +58,7 @@ export async function notifyUser(recipientHashedUserId, event, data) {
} catch (err) {
console.error('Fehler beim Senden der Benachrichtigung:', err);
}
console.log('done sending socket');
}
export async function notifyAllUsers(event, data) {