TreasureTrails/backend/dist/socket/index.js

63 lines
2.2 KiB
JavaScript
Raw Normal View History

2026-03-18 09:02:21 -05:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = setupSocket;
2026-03-21 12:23:20 -05:00
const index_1 = require("../index");
2026-03-18 09:02:21 -05:00
function setupSocket(io) {
io.on('connection', (socket) => {
console.log('Client connected:', socket.id);
socket.on('join-game', async (gameId) => {
socket.join(`game:${gameId}`);
console.log(`Socket ${socket.id} joined game:${gameId}`);
});
socket.on('leave-game', (gameId) => {
socket.leave(`game:${gameId}`);
});
socket.on('team-location', async (data) => {
2026-03-21 12:23:20 -05:00
await index_1.prisma.team.update({
2026-03-18 09:02:21 -05:00
where: { id: data.teamId },
data: { lat: data.lat, lng: data.lng }
});
io.to(`game:${data.gameId}`).emit('team-location', {
teamId: data.teamId,
lat: data.lat,
lng: data.lng
});
});
socket.on('chat-message', async (data) => {
2026-03-21 12:23:20 -05:00
const chatMessage = await index_1.prisma.chatMessage.create({
2026-03-18 09:02:21 -05:00
data: {
gameId: data.gameId,
2026-03-26 10:21:19 -05:00
teamId: data.teamId || null,
2026-03-18 09:02:21 -05:00
userId: data.userId,
2026-03-26 10:21:19 -05:00
message: data.message,
isDirect: data.isDirect || false
2026-03-18 09:02:21 -05:00
}
});
2026-03-26 10:21:19 -05:00
const messageData = {
2026-03-18 09:02:21 -05:00
id: chatMessage.id,
teamId: data.teamId,
2026-03-26 10:21:19 -05:00
isDirect: chatMessage.isDirect,
2026-03-18 09:02:21 -05:00
userId: data.userId,
userName: data.userName,
message: data.message,
sentAt: chatMessage.sentAt
2026-03-26 10:21:19 -05:00
};
if (data.isDirect && data.teamId) {
io.to(`game:${data.gameId}`).emit('chat-message', messageData);
}
else {
io.to(`game:${data.gameId}`).emit('chat-message', messageData);
}
2026-03-18 09:02:21 -05:00
});
socket.on('team-advanced', async (data) => {
io.to(`game:${data.gameId}`).emit('team-advanced', {
teamId: data.teamId
});
});
socket.on('disconnect', () => {
console.log('Client disconnected:', socket.id);
});
});
return io;
}