Add and send Missing_User_Name Exception
parent
b878beaaff
commit
496c68550b
|
|
@ -16,7 +16,10 @@ import {
|
||||||
JoinLobbyEvent,
|
JoinLobbyEvent,
|
||||||
} from 'interface';
|
} from 'interface';
|
||||||
import { createWsExceptionFilter } from './websocket-exception-filter';
|
import { createWsExceptionFilter } from './websocket-exception-filter';
|
||||||
import { PlayerNotFoundException } from './exceptions';
|
import {
|
||||||
|
MissingPlayerNameException,
|
||||||
|
PlayerNotFoundException,
|
||||||
|
} from './exceptions';
|
||||||
|
|
||||||
@WebSocketGateway({ cors: true })
|
@WebSocketGateway({ cors: true })
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|
@ -31,7 +34,12 @@ export class AppService implements OnGatewayConnection {
|
||||||
this.playerService.createPlayer(client.id);
|
this.playerService.createPlayer(client.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@UseFilters(createWsExceptionFilter([PlayerNotFoundException]))
|
@UseFilters(
|
||||||
|
createWsExceptionFilter([
|
||||||
|
PlayerNotFoundException,
|
||||||
|
MissingPlayerNameException,
|
||||||
|
]),
|
||||||
|
)
|
||||||
@SubscribeMessage(ClientEvent.CREATE_LOBBY)
|
@SubscribeMessage(ClientEvent.CREATE_LOBBY)
|
||||||
handleCreateLobby(
|
handleCreateLobby(
|
||||||
@ConnectedSocket() client: Socket,
|
@ConnectedSocket() client: Socket,
|
||||||
|
|
@ -47,6 +55,12 @@ export class AppService implements OnGatewayConnection {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UseFilters(
|
||||||
|
createWsExceptionFilter([
|
||||||
|
PlayerNotFoundException,
|
||||||
|
MissingPlayerNameException,
|
||||||
|
]),
|
||||||
|
)
|
||||||
@SubscribeMessage(ClientEvent.JOIN_LOBBY)
|
@SubscribeMessage(ClientEvent.JOIN_LOBBY)
|
||||||
handleJoinLobby(
|
handleJoinLobby(
|
||||||
@ConnectedSocket() client: Socket,
|
@ConnectedSocket() client: Socket,
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,12 @@ export abstract class WebSocketException extends WsException {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class MissingPlayerNameException extends WebSocketException {
|
||||||
|
constructor() {
|
||||||
|
super('Missing player name', ErrorCode.MISSING_USER_NAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class PlayerNotFoundException extends WebSocketException {
|
export class PlayerNotFoundException extends WebSocketException {
|
||||||
constructor(playerId: string) {
|
constructor(playerId: string) {
|
||||||
super(
|
super(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
import { Injectable, Logger } from '@nestjs/common';
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
import { Player } from './player';
|
import { Player } from './player';
|
||||||
import { PlayerNotFoundException } from 'src/exceptions';
|
import {
|
||||||
|
MissingPlayerNameException,
|
||||||
|
PlayerNotFoundException,
|
||||||
|
} from 'src/exceptions';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PlayerService {
|
export class PlayerService {
|
||||||
|
|
@ -13,6 +16,9 @@ export class PlayerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
addUserName(socketId: string, userName: string) {
|
addUserName(socketId: string, userName: string) {
|
||||||
|
if (!userName) {
|
||||||
|
throw new MissingPlayerNameException();
|
||||||
|
}
|
||||||
this.players.get(socketId).userName = userName;
|
this.players.get(socketId).userName = userName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { Socket as ClientSocket } from "socket.io-client";
|
||||||
import { ErrorCode, ServerError } from "./ServerError";
|
import { ErrorCode, ServerError } from "./ServerError";
|
||||||
|
|
||||||
export type CreateLobbyError = {
|
export type CreateLobbyError = {
|
||||||
error: ErrorCode.PLAYER_NOT_FOUND | ErrorCode.GAME_NOT_FOUND;
|
error: ErrorCode;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const emitCreateLobbyError = (
|
export const emitCreateLobbyError = (
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,5 @@ export enum ServerError {
|
||||||
export enum ErrorCode {
|
export enum ErrorCode {
|
||||||
PLAYER_NOT_FOUND = "player-not-found",
|
PLAYER_NOT_FOUND = "player-not-found",
|
||||||
GAME_NOT_FOUND = "game-not-found",
|
GAME_NOT_FOUND = "game-not-found",
|
||||||
|
MISSING_USER_NAME = "player-user-name-not-found",
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue