- Add ioredis dependency for Redis connection pooling - Create RedisService singleton with connection management - Add Redis config (url, dedupWindowSeconds) to notification.config.ts - Implement NotificationService.checkRateLimit using Redis INCR+EXPIRE - Implement NotificationService.deduplicateNotification using Redis SET/NX - Add configurable rate limit windows and thresholds via env vars - Add 29 unit tests covering Redis operations, rate limiting, and dedup - All tests pass, TypeScript compiles cleanly for new files
19 lines
784 B
TypeScript
19 lines
784 B
TypeScript
export { EmailService } from './services/email.service';
|
|
export { SMSService } from './services/sms.service';
|
|
export { PushService } from './services/push.service';
|
|
export { NotificationService, RateLimitResult } from './services/notification.service';
|
|
export { RedisService } from './services/redis.service';
|
|
export { TemplateService } from './services/template.service';
|
|
export { loadNotificationConfig, NotificationConfigSchema } from './config/notification.config';
|
|
export { notificationRoutes } from './routes/notification.routes';
|
|
export {
|
|
AllDefaultTemplates,
|
|
DefaultEmailTemplates,
|
|
DefaultSMSTemplates,
|
|
DefaultPushTemplates,
|
|
DEFAULT_LOCALE,
|
|
} from './templates/default-templates';
|
|
|
|
export * from './types/notification.types';
|
|
export * from './types/template.types';
|