Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added src.zip
Binary file not shown.
14 changes: 7 additions & 7 deletions src/game/game.gateway.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ export class GameGateway
);

const userNickname = await this.gameService.getUserNickname(userId);
if (roomId) {
await this.gameRoomService.leaveRoom(roomId, userId);
this.server.to(roomId.toString()).emit('message', {
sender: 'System',
message: `${userNickname} 유저가 퇴장했습니다.`,
});
}
// if (roomId) {
// await this.gameRoomService.leaveRoom(roomId, userId);
// this.server.to(roomId.toString()).emit('message', {
// sender: 'System',
// message: `${userNickname} 유저가 퇴장했습니다.`,
// });
// }
}

// ─────────────────────────────────────────
Expand Down
2 changes: 1 addition & 1 deletion src/gameRoom/dto/gameRoomUser.dto.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// dto/gameRoomUser.dto.ts
import { ApiProperty } from '@nestjs/swagger';
import { IsNumber, IsDate } from 'class-validator';
import { IsNumber, IsDate, IsString } from 'class-validator';

export class GameRoomUserDto {
@ApiProperty({ example: 1, description: 'GameRoomUser 테이블 PK' })
Expand Down
1 change: 1 addition & 0 deletions src/gameRoom/gameRoom.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ export class GameRoomController {
async createRoom(@Body() body: CreateGameRoomDto, @Req() req: any) {
try {
const userId = req.user.userId; // JWT에서 추출한 userId

return await this.gameRoomService.createRoom(body.roomName, userId);
} catch (error) {
throw new BadRequestException(error.message);
Expand Down
2 changes: 2 additions & 0 deletions src/gameRoom/gameRoom.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import { GameRoomService } from './gameRoom.service';
import { GameRoom } from './entities/gameRoom.entity';
import { GameRoomUser } from './entities/gameRoomUser.entity';
import { RedisModule } from 'src/redis/redis.module'; // RedisModule 추가
import { UserModule } from 'src/user/user.module';

@Module({
imports: [
TypeOrmModule.forFeature([GameRoom, GameRoomUser]),
RedisModule, // RedisModule 가져오기
UserModule,
],
controllers: [GameRoomController],
providers: [GameRoomService],
Expand Down
14 changes: 13 additions & 1 deletion src/gameRoom/gameRoom.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { GameRoom } from './entities/gameRoom.entity';
import { GameRoomUser } from './entities/gameRoomUser.entity';
import { UserService } from 'src/user/user.service';

@Injectable()
export class GameRoomService {
Expand All @@ -15,6 +16,7 @@ export class GameRoomService {
private readonly gameRoomRepository: Repository<GameRoom>,
@InjectRepository(GameRoomUser)
private readonly gameRoomUserRepository: Repository<GameRoomUser>,
private readonly userService: UserService,
) {}

// ─────────────────────────────────────────
Expand Down Expand Up @@ -176,13 +178,23 @@ export class GameRoomService {

// DB에서 인원 목록 조회
const users = await this.gameRoomUserRepository.find({ where: { roomId } });
console.log(users);
const usersWithNicknames = await Promise.all(
users.map(async (user) => {
const userData = await this.userService.findUserById(user.userId);
return {
...user,
userNickname: userData.userNickname,
};
}),
);

// (선택) 혹시 최신 인원수를 다시 덮어씌우고 싶다면:
// const count = await this.gameRoomUserRepository.count({ where: { roomId } });
// room.currentCount = count;
// await this.gameRoomRepository.save(room);

return { room, users };
return { room, users: usersWithNicknames };
}

// ─────────────────────────────────────────
Expand Down
Loading