mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2026-03-10 18:31:46 +00:00
- Introduced optional timezone fields in User and Device entities to store user preferences and device timezones. - Updated request DTOs for login and user updates to include timezone information. - Enhanced AuthService to handle timezone during device registration and updates. - Added migration to incorporate timezone fields in the database schema.
60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
// redis.module.ts (NestJS)
|
|
import { createClient } from '@keyv/redis';
|
|
import { DynamicModule, Module } from '@nestjs/common';
|
|
import { ConfigService } from '@nestjs/config';
|
|
import { NotificationModule } from '../modules/notification/notification.module';
|
|
import { RedisPubSubService } from './services';
|
|
|
|
@Module({})
|
|
export class RedisModule {
|
|
static register(): DynamicModule {
|
|
return {
|
|
module: RedisModule,
|
|
providers: [
|
|
{
|
|
provide: 'REDIS_PUBLISHER',
|
|
useFactory: async (configService: ConfigService) => {
|
|
// Skip Redis connection during migration generation
|
|
if (process.env.MIGRATIONS_RUN === 'false') {
|
|
return null;
|
|
}
|
|
const redisUrl = configService.get<string>('REDIS_URL');
|
|
if (!redisUrl) {
|
|
return null;
|
|
}
|
|
const publisher = createClient({ url: redisUrl });
|
|
await publisher.connect();
|
|
return publisher;
|
|
},
|
|
inject: [ConfigService],
|
|
},
|
|
|
|
{
|
|
provide: 'REDIS_SUBSCRIBER',
|
|
useFactory: async (configService: ConfigService) => {
|
|
// Skip Redis connection during migration generation
|
|
if (process.env.MIGRATIONS_RUN === 'false') {
|
|
return null;
|
|
}
|
|
const redisUrl = configService.get<string>('REDIS_URL');
|
|
if (!redisUrl) {
|
|
return null;
|
|
}
|
|
const subscriber = createClient({ url: redisUrl });
|
|
await subscriber.connect();
|
|
return subscriber;
|
|
},
|
|
inject: [ConfigService],
|
|
},
|
|
RedisPubSubService,
|
|
],
|
|
exports: [
|
|
RedisPubSubService,
|
|
'REDIS_PUBLISHER',
|
|
'REDIS_SUBSCRIBER',
|
|
],
|
|
imports: [NotificationModule],
|
|
};
|
|
}
|
|
}
|