refactor : move lobby into its own module

This commit is contained in:
2024-12-31 12:30:29 +01:00
parent d60df06708
commit d968f7b7e6
8 changed files with 48 additions and 27 deletions
+2
View File
@@ -14,6 +14,7 @@ import { ConceptInTurn } from './games/entities/concept_in_turn.entity';
import { ConfigService } from '@nestjs/config';
import { WordModule } from './word/words.module';
import { Message } from './games/entities/message.entity';
import { LobbyModule } from './lobby/lobby.module';
const configService = new ConfigService();
@@ -43,6 +44,7 @@ const configService = new ConfigService();
Word,
],
}),
LobbyModule,
GamesModule,
UsersModule,
WordModule,
+1 -1
View File
@@ -10,7 +10,6 @@ import {
Sse,
UseGuards,
} from '@nestjs/common';
import { LobbyService } from '../services/lobby.service';
import { AuthGuard } from '../../users/guards/auth.guard';
import { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
import { Game } from '../entities/game.entity';
@@ -23,6 +22,7 @@ import { ConfigService } from '@nestjs/config';
import { SessionData } from 'express-session';
import { WordResponseDTO } from 'events/dto/wordresponse.dto';
import { WordRecieveDTO } from 'src/word/dto/wordrecieve.dto';
import { LobbyService } from 'src/lobby/lobby.service';
@ApiTags('game')
@Controller('games/:id')
+5 -6
View File
@@ -1,25 +1,24 @@
import { Module } from '@nestjs/common';
import { LobbyService } from './services/lobby.service';
import { LobbyController } from './controllers/lobby.controller';
import { Module, forwardRef } from '@nestjs/common';
import { Game } from './entities/game.entity';
import { UsersModule } from 'src/users/users.module';
import { GamesController } from './controllers/games.controller';
import { GameService } from './services/games.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Player } from './entities/player.entity';
import { User } from 'src/users/entities/user.entity';
import { WordModule } from 'src/word/words.module';
import { Message } from './entities/message.entity';
import { LobbyModule } from 'src/lobby/lobby.module';
@Module({
imports: [
UsersModule,
WordModule,
forwardRef(() => LobbyModule),
TypeOrmModule.forFeature([Game]),
TypeOrmModule.forFeature([Player]),
TypeOrmModule.forFeature([Message]),
],
controllers: [LobbyController, GamesController],
providers: [LobbyService, GameService],
controllers: [GamesController],
providers: [GameService],
})
export class GamesModule {}
@@ -1,14 +1,14 @@
import { Test, TestingModule } from '@nestjs/testing';
import { LobbyController } from './lobby.controller';
import { LobbyController } from '../games/controllers/lobby.controller';
import { LobbyService } from '../services/lobby.service';
import { Game } from '../entities/game.entity';
import { Game } from '../games/entities/game.entity';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Player } from '../entities/player.entity';
import { GameService } from '../services/games.service';
import { Player } from '../games/entities/player.entity';
import { GameService } from '../games/services/games.service';
import { User } from 'src/users/entities/user.entity';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { Concept } from '../entities/concept.entity';
import { ConceptInTurn } from '../entities/concept_in_turn.entity';
import { Concept } from '../games/entities/concept.entity';
import { ConceptInTurn } from '../games/entities/concept_in_turn.entity';
describe('LobbyController', () => {
let controller: LobbyController;
@@ -10,14 +10,14 @@ import {
HttpStatus,
Sse,
} from '@nestjs/common';
import { LobbyService } from '../services/lobby.service';
import { AuthGuard } from '../../users/guards/auth.guard';
import { LobbyService } from './lobby.service';
import { AuthGuard } from '../users/guards/auth.guard';
import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
import { GamePipe } from '../pipe/game.pipe';
import { Game } from '../entities/game.entity';
import { GamePipe } from '../games/pipe/game.pipe';
import { Game } from '../games/entities/game.entity';
import { Observable, fromEvent, map } from 'rxjs';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { GameResponseDTO } from '../../../events/dto/gameresponse.dto';
import { GameResponseDTO } from '../../events/dto/gameresponse.dto';
import { GetUser } from 'src/users/user.pipe';
import { User } from 'src/users/entities/user.entity';
+22
View File
@@ -0,0 +1,22 @@
import { Module, forwardRef } from '@nestjs/common';
import { UsersModule } from 'src/users/users.module';
import { WordModule } from 'src/word/words.module';
import { LobbyController } from './lobby.controller';
import { LobbyService } from './lobby.service';
import { GamesModule } from 'src/games/games.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Game } from 'src/games/entities/game.entity';
import { Player } from 'src/games/entities/player.entity';
@Module({
imports: [
UsersModule,
forwardRef(() => GamesModule),
TypeOrmModule.forFeature([Game]),
TypeOrmModule.forFeature([Player]),
],
controllers: [LobbyController],
providers: [LobbyService],
exports: [LobbyService],
})
export class LobbyModule {}
@@ -3,11 +3,11 @@ import { LobbyService } from './lobby.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { User } from 'src/users/entities/user.entity';
import { Concept } from '../entities/concept.entity';
import { ConceptInTurn } from '../entities/concept_in_turn.entity';
import { Game } from '../entities/game.entity';
import { Player } from '../entities/player.entity';
import { GameService } from './games.service';
import { Concept } from '../games/entities/concept.entity';
import { ConceptInTurn } from '../games/entities/concept_in_turn.entity';
import { Game } from '../games/entities/game.entity';
import { Player } from '../games/entities/player.entity';
import { GameService } from '../games/services/games.service';
describe('LobbyService', () => {
let service: LobbyService;
@@ -1,11 +1,8 @@
import { Injectable } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { GameService } from './games.service';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Game } from '../entities/game.entity';
import { User } from 'src/users/entities/user.entity';
import { Player } from '../entities/player.entity';
import { randomUUID } from 'node:crypto';
import {
LobbyCreateEvent,
@@ -14,13 +11,14 @@ import {
} from 'events/lobby.events';
import { GameResponseDTO } from 'events/dto/gameresponse.dto';
import { GameDeleteEvent, GameJoinEvent } from 'events/game.events';
import { Player } from 'src/games/entities/player.entity';
import { Game } from 'src/games/entities/game.entity';
@Injectable()
export class LobbyService {
constructor(
@InjectRepository(Game) private gameRepository: Repository<Game>,
@InjectRepository(Player) private playerRepository: Repository<Player>,
private readonly gamesService: GameService,
private eventEmitter: EventEmitter2,
) {}