Battleship_Server/src/sala-chat/sala-chat.service.ts
2024-04-04 02:02:37 +02:00

63 lines
1.5 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { Partida, PartidasService } from 'src/shared/partidas.service';
import { UsuariosService } from 'src/shared/usuarios.service';
@Injectable()
export class SalaChatService {
constructor(
private readonly usuariosService: UsuariosService,
private readonly partidasService: PartidasService,
) {}
get listaUsuariosSinPartidas() {
return Array.from(this.usuariosService.usuarios.values()).map(
({ uuid, nickname, conectado }) => ({
uuid,
nickname,
conectado,
}),
);
}
get partidasAbiertas(){
return this.partidasService.partidasAbiertas;
}
getUsuarioUUID(uuid: string) {
return this.usuariosService.getUsuarioByUUID(uuid);
}
conectaUsuarioUUID(uuid: string) {
const user = this.usuariosService.getUsuarioByUUID(uuid);
if (user) {
user.conectado = true;
return {
uuid: user.uuid,
nickname: user.nickname,
conectado: user.conectado,
};
} else {
return undefined;
}
}
desconectaUsuarioUUID(uuid: string) {
const user = this.usuariosService.getUsuarioByUUID(uuid);
if (user) {
user.conectado = false;
return {
uuid: user.uuid,
nickname: user.nickname,
conectado: user.conectado,
};
} else {
return undefined;
}
}
creaPartida(uuidJugadorCreador: string) {
const partida = this.partidasService.creaPartida(uuidJugadorCreador);
return partida;
}
}