63 lines
1.5 KiB
TypeScript
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;
|
|
}
|
|
}
|