diff --git a/apps/server/src/domains/game/application/useCases/executeDisconnectUseCase.ts b/apps/server/src/domains/game/application/useCases/executeDisconnectUseCase.ts index cad9dfe..1db69d0 100644 --- a/apps/server/src/domains/game/application/useCases/executeDisconnectUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/executeDisconnectUseCase.ts @@ -3,17 +3,17 @@ type EmitToAll = (event: string, payload?: unknown) => void; -type ExecuteDisconnectUseCaseParams = { +type DisconnectUseCaseParams = { gameManager: DisconnectPlayerPort; playerId: string; emitToAll: EmitToAll; }; -export const executeDisconnectUseCase = ({ +export const disconnectUseCase = ({ gameManager, playerId, emitToAll, -}: ExecuteDisconnectUseCaseParams) => { +}: DisconnectUseCaseParams) => { gameManager.removePlayer(playerId); emitToAll(protocol.SocketEvents.REMOVE_PLAYER, playerId); console.log("[GameHandler] player removed", { playerId }); diff --git a/apps/server/src/domains/game/application/useCases/executeMovePlayerUseCase.ts b/apps/server/src/domains/game/application/useCases/executeMovePlayerUseCase.ts index 3034194..9bcece1 100644 --- a/apps/server/src/domains/game/application/useCases/executeMovePlayerUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/executeMovePlayerUseCase.ts @@ -1,16 +1,16 @@ import type { playerTypes } from "@repo/shared"; import type { MovePlayerPort } from "../ports/gameUseCasePorts"; -type ExecuteMovePlayerUseCaseParams = { +type MovePlayerUseCaseParams = { gameManager: MovePlayerPort; playerId: string; move: playerTypes.MovePayload; }; -export const executeMovePlayerUseCase = ({ +export const movePlayerUseCase = ({ gameManager, playerId, move, -}: ExecuteMovePlayerUseCaseParams) => { +}: MovePlayerUseCaseParams) => { gameManager.movePlayer(playerId, move.x, move.y); }; diff --git a/apps/server/src/domains/game/application/useCases/executePingUseCase.ts b/apps/server/src/domains/game/application/useCases/executePingUseCase.ts index 59b1e44..0ef9f54 100644 --- a/apps/server/src/domains/game/application/useCases/executePingUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/executePingUseCase.ts @@ -2,15 +2,15 @@ type EmitToSocket = (event: string, payload?: unknown) => void; -type ExecutePingUseCaseParams = { +type PingUseCaseParams = { clientTime: number; emitToSocket: EmitToSocket; }; -export const executePingUseCase = ({ +export const pingUseCase = ({ clientTime, emitToSocket, -}: ExecutePingUseCaseParams) => { +}: PingUseCaseParams) => { emitToSocket(protocol.SocketEvents.PONG, { clientTime, serverTime: Date.now(), diff --git a/apps/server/src/domains/game/application/useCases/executeReadyForGameUseCase.ts b/apps/server/src/domains/game/application/useCases/executeReadyForGameUseCase.ts index 75aec11..92ab796 100644 --- a/apps/server/src/domains/game/application/useCases/executeReadyForGameUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/executeReadyForGameUseCase.ts @@ -3,19 +3,19 @@ type EmitToSocket = (event: string, payload?: unknown) => void; -type ExecuteReadyForGameUseCaseParams = { +type ReadyForGameUseCaseParams = { socketId: string; roomId?: string; gameManager: ReadyForGamePort; emitToSocket: EmitToSocket; }; -export const executeReadyForGameUseCase = ({ +export const readyForGameUseCase = ({ socketId, roomId, gameManager, emitToSocket, -}: ExecuteReadyForGameUseCaseParams) => { +}: ReadyForGameUseCaseParams) => { const allPlayers = gameManager.getAllPlayers(); emitToSocket(protocol.SocketEvents.CURRENT_PLAYERS, allPlayers); diff --git a/apps/server/src/domains/game/application/useCases/executeStartGameUseCase.ts b/apps/server/src/domains/game/application/useCases/executeStartGameUseCase.ts index 2c9a8e3..41b2772 100644 --- a/apps/server/src/domains/game/application/useCases/executeStartGameUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/executeStartGameUseCase.ts @@ -4,19 +4,19 @@ type EmitToRoom = (roomId: string, event: string, payload?: unknown) => void; -type ExecuteStartGameUseCaseParams = { +type StartGameUseCaseParams = { ownerId: string; gameManager: StartGamePort; roomManager: RoomManager; emitToRoom: EmitToRoom; }; -export const executeStartGameUseCase = ({ +export const startGameUseCase = ({ ownerId, gameManager, roomManager, emitToRoom, -}: ExecuteStartGameUseCaseParams) => { +}: StartGameUseCaseParams) => { const room = roomManager.getRoomByOwnerId(ownerId); if (!room) { console.log("[GameHandler] START_GAME ignored (no room)", { socketId: ownerId }); diff --git a/apps/server/src/domains/game/handlers/onDisconnect.ts b/apps/server/src/domains/game/handlers/onDisconnect.ts index 94ee5f0..d5856af 100644 --- a/apps/server/src/domains/game/handlers/onDisconnect.ts +++ b/apps/server/src/domains/game/handlers/onDisconnect.ts @@ -1,13 +1,13 @@ import { Server } from "socket.io"; import { GameManager } from "@server/domains/game/GameManager"; -import { executeDisconnectUseCase } from "@server/domains/game/application/useCases/executeDisconnectUseCase"; +import { disconnectUseCase } from "@server/domains/game/application/useCases/executeDisconnectUseCase"; export const onDisconnect = ( io: Server, gameManager: GameManager, playerId: string ) => { - executeDisconnectUseCase({ + disconnectUseCase({ gameManager, playerId, emitToAll: (event, payload) => { diff --git a/apps/server/src/domains/game/handlers/onMove.ts b/apps/server/src/domains/game/handlers/onMove.ts index 2b5ceb5..32383df 100644 --- a/apps/server/src/domains/game/handlers/onMove.ts +++ b/apps/server/src/domains/game/handlers/onMove.ts @@ -1,13 +1,13 @@ import { GameManager } from "@server/domains/game/GameManager"; import type { playerTypes } from "@repo/shared"; -import { executeMovePlayerUseCase } from "@server/domains/game/application/useCases/executeMovePlayerUseCase"; +import { movePlayerUseCase } from "@server/domains/game/application/useCases/executeMovePlayerUseCase"; export const onMove = ( gameManager: GameManager, playerId: string, data: playerTypes.MovePayload ) => { - executeMovePlayerUseCase({ + movePlayerUseCase({ gameManager, playerId, move: data, diff --git a/apps/server/src/domains/game/handlers/onPing.ts b/apps/server/src/domains/game/handlers/onPing.ts index a4ddf1c..8cc8ac0 100644 --- a/apps/server/src/domains/game/handlers/onPing.ts +++ b/apps/server/src/domains/game/handlers/onPing.ts @@ -1,8 +1,8 @@ import { Socket } from "socket.io"; -import { executePingUseCase } from "@server/domains/game/application/useCases/executePingUseCase"; +import { pingUseCase } from "@server/domains/game/application/useCases/executePingUseCase"; export const onPing = (socket: Socket, clientTime: number) => { - executePingUseCase({ + pingUseCase({ clientTime, emitToSocket: (event, payload) => { if (payload === undefined) { diff --git a/apps/server/src/domains/game/handlers/onReadyForGame.ts b/apps/server/src/domains/game/handlers/onReadyForGame.ts index c708f1b..06d8897 100644 --- a/apps/server/src/domains/game/handlers/onReadyForGame.ts +++ b/apps/server/src/domains/game/handlers/onReadyForGame.ts @@ -1,6 +1,6 @@ import { Socket } from "socket.io"; import { GameManager } from "@server/domains/game/GameManager"; -import { executeReadyForGameUseCase } from "@server/domains/game/application/useCases/executeReadyForGameUseCase"; +import { readyForGameUseCase } from "@server/domains/game/application/useCases/executeReadyForGameUseCase"; export const onReadyForGame = ( socket: Socket, @@ -8,7 +8,7 @@ ) => { const roomId = Array.from(socket.rooms).find((room) => room !== socket.id); - executeReadyForGameUseCase({ + readyForGameUseCase({ socketId: socket.id, roomId, gameManager, diff --git a/apps/server/src/domains/game/handlers/onStartGame.ts b/apps/server/src/domains/game/handlers/onStartGame.ts index 3b759f3..8fa6df6 100644 --- a/apps/server/src/domains/game/handlers/onStartGame.ts +++ b/apps/server/src/domains/game/handlers/onStartGame.ts @@ -1,7 +1,7 @@ import { Server } from "socket.io"; import { GameManager } from "@server/domains/game/GameManager"; import { RoomManager } from "@server/domains/room/RoomManager"; -import { executeStartGameUseCase } from "@server/domains/game/application/useCases/executeStartGameUseCase"; +import { startGameUseCase } from "@server/domains/game/application/useCases/executeStartGameUseCase"; export const onStartGame = ( io: Server, @@ -9,7 +9,7 @@ roomManager: RoomManager, ownerId: string ) => { - executeStartGameUseCase({ + startGameUseCase({ ownerId, gameManager, roomManager, diff --git a/apps/server/src/domains/room/RoomHandler.ts b/apps/server/src/domains/room/RoomHandler.ts index 6cb4672..c67d521 100644 --- a/apps/server/src/domains/room/RoomHandler.ts +++ b/apps/server/src/domains/room/RoomHandler.ts @@ -2,8 +2,8 @@ import { RoomManager } from "./RoomManager"; import { protocol } from "@repo/shared"; import type { roomTypes } from "@repo/shared"; -import { executeJoinRoomUseCase } from "./application/useCases/executeJoinRoomUseCase"; -import { executeRoomDisconnectUseCase } from "./application/useCases/executeRoomDisconnectUseCase"; +import { joinRoomUseCase } from "./application/useCases/executeJoinRoomUseCase"; +import { roomDisconnectUseCase } from "./application/useCases/executeRoomDisconnectUseCase"; export const registerRoomHandlers = (io: Server, socket: Socket, roomManager: RoomManager) => { @@ -12,7 +12,7 @@ socket.join(roomId); - executeJoinRoomUseCase({ + joinRoomUseCase({ roomManager, socketId: socket.id, data, @@ -33,7 +33,7 @@ * 切断時のルームクリーンアップ処理 */ export const handleRoomDisconnect = (io: Server, socket: Socket, roomManager: RoomManager) => { - executeRoomDisconnectUseCase({ + roomDisconnectUseCase({ roomManager, socketId: socket.id, emitToRoom: (roomId, event, payload) => { diff --git a/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts b/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts new file mode 100644 index 0000000..37d7416 --- /dev/null +++ b/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts @@ -0,0 +1,9 @@ +import type { roomTypes } from "@repo/shared"; + +export interface JoinRoomPort { + addPlayerToRoom(roomId: string, socketId: string, playerName: string): roomTypes.Room; +} + +export interface DisconnectRoomPort { + removePlayer(socketId: string): roomTypes.Room[]; +} diff --git a/apps/server/src/domains/room/application/useCases/executeJoinRoomUseCase.ts b/apps/server/src/domains/room/application/useCases/executeJoinRoomUseCase.ts index 284f07b..2123b35 100644 --- a/apps/server/src/domains/room/application/useCases/executeJoinRoomUseCase.ts +++ b/apps/server/src/domains/room/application/useCases/executeJoinRoomUseCase.ts @@ -1,22 +1,22 @@ import { protocol } from "@repo/shared"; import type { roomTypes } from "@repo/shared"; -import { RoomManager } from "@server/domains/room/RoomManager"; +import type { JoinRoomPort } from "../ports/roomUseCasePorts"; type EmitToRoom = (roomId: string, event: string, payload?: unknown) => void; -type ExecuteJoinRoomUseCaseParams = { - roomManager: RoomManager; +type JoinRoomUseCaseParams = { + roomManager: JoinRoomPort; socketId: string; data: roomTypes.JoinRoomPayload; emitToRoom: EmitToRoom; }; -export const executeJoinRoomUseCase = ({ +export const joinRoomUseCase = ({ roomManager, socketId, data, emitToRoom, -}: ExecuteJoinRoomUseCaseParams) => { +}: JoinRoomUseCaseParams) => { const { roomId, playerName } = data; console.log("[RoomHandler] JOIN_ROOM received", { roomId, socketId, playerName }); diff --git a/apps/server/src/domains/room/application/useCases/executeRoomDisconnectUseCase.ts b/apps/server/src/domains/room/application/useCases/executeRoomDisconnectUseCase.ts index 1b05af1..be33326 100644 --- a/apps/server/src/domains/room/application/useCases/executeRoomDisconnectUseCase.ts +++ b/apps/server/src/domains/room/application/useCases/executeRoomDisconnectUseCase.ts @@ -1,19 +1,19 @@ import { protocol } from "@repo/shared"; -import { RoomManager } from "@server/domains/room/RoomManager"; +import type { DisconnectRoomPort } from "../ports/roomUseCasePorts"; type EmitToRoom = (roomId: string, event: string, payload?: unknown) => void; -type ExecuteRoomDisconnectUseCaseParams = { - roomManager: RoomManager; +type RoomDisconnectUseCaseParams = { + roomManager: DisconnectRoomPort; socketId: string; emitToRoom: EmitToRoom; }; -export const executeRoomDisconnectUseCase = ({ +export const roomDisconnectUseCase = ({ roomManager, socketId, emitToRoom, -}: ExecuteRoomDisconnectUseCaseParams) => { +}: RoomDisconnectUseCaseParams) => { const updatedRooms = roomManager.removePlayer(socketId); console.log("[RoomHandler] disconnect cleanup", { socketId,