Files
petitspas/backend/src/modules/cards/cards.module.ts
T
jmartinandCursor 823ea6cd22 feat(#195): SSE realtime Cartes (stream + emit audience)
GET /api/v1/cards/stream (Bearer ou ?access_token=).
Events card.created|updated|deleted, response.added + heartbeat.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 11:50:30 +02:00

42 lines
1.5 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AbsencesGardeModule } from '../absences-garde';
import { CardType } from 'src/entities/card_types.entity';
import { CardInstance } from 'src/entities/card_instances.entity';
import { CardAudienceMember } from 'src/entities/card_audience_members.entity';
import { CardResponse } from 'src/entities/card_responses.entity';
import { AmChildren } from 'src/entities/am_children.entity';
import { ParentsChildren } from 'src/entities/parents_children.entity';
import { CardsController } from './cards.controller';
import { CardsRealtimeController } from './cards-realtime.controller';
import { CardsService } from './cards.service';
import { CardsRealtimeService } from './cards-realtime.service';
@Module({
imports: [
AbsencesGardeModule,
TypeOrmModule.forFeature([
CardType,
CardInstance,
CardAudienceMember,
CardResponse,
AmChildren,
ParentsChildren,
]),
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({
secret: config.get('jwt.accessSecret'),
signOptions: { expiresIn: config.get('jwt.accessExpiresIn') },
}),
inject: [ConfigService],
}),
],
controllers: [CardsController, CardsRealtimeController],
providers: [CardsService, CardsRealtimeService],
exports: [CardsService, CardsRealtimeService],
})
export class CardsModule {}