/
PostmenBlake
/
NotificationPreferencesService
Обзор
Документация
Войти
/
PostmenBlake
/
NotificationPreferencesService
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/domain/services/PreferenceService.ts
45 строк
2 KB
kurava
feat: initial commit - Notification Preferences Service
17 июн 2026, 09:11
17 июн 2026, 09:11
48825c3
Код
Авторство
О чём код?
import { UserPreference } from '../entities/UserPreference'; import { IUserPreferenceRepository } from '../repositories/IUserPreferenceRepository'; import { NotificationType } from '../value-objects/NotificationType'; import { QuietHours } from '../value-objects/QuietHours'; export class PreferenceService { constructor( private userPreferenceRepository: IUserPreferenceRepository ) {} async getPreferences(userId: string): Promise<UserPreference> { const preferences = await this.userPreferenceRepository.findById(userId); if (!preferences) { return await this.userPreferenceRepository.createDefault(userId, 'US'); } return preferences; } async updatePreference( userId: string, notificationType: NotificationType, enabled: boolean ): Promise<UserPreference> { let preferences = await this.userPreferenceRepository.findById(userId); if (!preferences) { preferences = await this.userPreferenceRepository.createDefault(userId, 'US'); } preferences.updatePreference(notificationType, enabled); await this.userPreferenceRepository.save(preferences); return preferences; } async updateQuietHours( userId: string, quietHours: QuietHours | null ): Promise<UserPreference> { let preferences = await this.userPreferenceRepository.findById(userId); if (!preferences) { preferences = await this.userPreferenceRepository.createDefault(userId, 'US'); } preferences.updateQuietHours(quietHours); await this.userPreferenceRepository.save(preferences); return preferences; } }