CentralBackend/repositories/UserSettingsRepository.js
2025-09-07 12:44:01 +02:00

38 lines
1.4 KiB
JavaScript

const { logger } = require('../middleware/logger');
class UserSettingsRepository {
constructor(unitOfWork) {
this.unitOfWork = unitOfWork;
}
async getSettingsByUserId(userId) {
logger.info('UserSettingsRepository.getSettingsByUserId:start', { userId });
try {
const conn = this.unitOfWork.connection;
const [rows] = await conn.query('SELECT * FROM user_settings WHERE user_id = ?', [userId]);
logger.info('UserSettingsRepository.getSettingsByUserId:success', { userId, found: rows.length > 0 });
return rows.length > 0 ? rows[0] : null;
} catch (error) {
logger.error('UserSettingsRepository.getSettingsByUserId:error', { userId, error: error.message });
throw error;
}
}
async createDefaultSettings(userId, unitOfWork) {
logger.info('UserSettingsRepository.createDefaultSettings:start', { userId });
try {
const conn = unitOfWork ? unitOfWork.connection : this.unitOfWork.connection;
await conn.query(
`INSERT INTO user_settings (user_id) VALUES (?) ON DUPLICATE KEY UPDATE user_id = user_id`,
[userId]
);
logger.info('UserSettingsRepository.createDefaultSettings:success', { userId });
} catch (error) {
logger.error('UserSettingsRepository.createDefaultSettings:error', { userId, error: error.message });
throw error;
}
}
}
module.exports = UserSettingsRepository;