Я импортирую модуль redis в файл app.module.ts
:
@Module({
imports: [
TypegooseModule.forRoot('mongodb://mongo:27017/test', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
}),
RedisModule.register({ url: 'redis://sessions' }),
UsersModule,
AuthModule,
],
controllers: [],
providers: [],
})
export class AppModule {}
Я хотел бы создать вспомогательный класс SessionManager
, который будет управлять сеансами пользователя (сохранять, обновлять, удалять их в Redis), например, что-то вроде этого:
import { RedisService } from 'nestjs-redis';
import { User } from 'src/users/schemas/user.schema';
import { IUserSessions } from '../interfaces/Session.interface';
class SessionManager {
constructor(private redisService: RedisService) {}
saveUserSession(user: User, userAgent: string) {}
static getSessionsByUserId(userId: string): IUserSessions {
const client = this.redisService.getClient()
const sessions = client.hmgetall(userId)
return sessions
}
}
export default SessionManager
и используйте его в моем auth.service.ts
. Как я могу это сделать? Должен ли он быть представлен как некая сущность Nest. js (модуль или поставщик)?