-
Notifications
You must be signed in to change notification settings - Fork 0
/
dao_games.js
139 lines (128 loc) · 5.14 KB
/
dao_games.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
"use strict";
class DAOGames {
/**
* Inicializa el DAO de partidas.
*
* @param {Pool} pool Pool de conexiones MySQL. Todas las operaciones
* sobre la BD se realizarán sobre este pool.
*/
constructor(pool) {
this.pool = pool;
}
getUserGames(idUsuario,callback){
this.pool.getConnection((err, connection) => {
if (err) { callback(err); return; }
connection.query("SELECT partidas.id, partidas.nombre FROM juega_en JOIN partidas ON idPartida=id" +
" WHERE idUsuario=?", [idUsuario],
function (err, resultado) {
connection.release();
if (err) { callback(err); return; }
else {
callback(null, resultado);
}
})
})
}
addPartida(name, estado, userId, callback) {
this.pool.getConnection((err, connection) => {
//connection.release();
if (err) { callback(err); return; }
//¿como introducimos las opciones?
connection.query("INSERT INTO partidas (nombre, estado)" +
" VALUES (?, ?)", [name, estado],
function (err, resultado) {
if (err) { callback(err); return; }
connection.query("INSERT INTO juega_en (idPartida, idUsuario)" +
" VALUES (?, ?)", [resultado.insertId, userId],
function (err) {
if (err) { callback(err); return; }
callback();
})
connection.release(); //Preguntar al profe mañana
})
})
}
/**
* Dado un ID de partida, devuelve un objeto con todas los jugadores que estan
* jugando en dicha partida
*
* @param {*} idPartida Identificador de la partida
* @param {*} callback
*/
comprobarPartida(idPartida, callback) {
this.pool.getConnection((err, connection) => {
if (err) { callback(err); return; }
connection.query("SELECT DISTINCT juega_en.idUsuario FROM partidas JOIN juega_en ON juega_en.idPartida = ?",
[idPartida], function (err, resultado) {
connection.release();
if (err) {callback(err); return; }
callback(null, resultado)
})
})
}
insertUserInGame(idPartida,idUsuario, callback){
this.pool.getConnection((err, connection) => {
if (err) { callback(err); return; }
connection.query("INSERT INTO `juega_en`(`idUsuario`, `idPartida`) VALUES (?,?)",
[idUsuario,idPartida],
function (err, resultado) {
connection.release();
if (err) {callback(err); return; }
callback();
})
})
}
getPartidaInfo(idPartida, callback) {
this.pool.getConnection((err, connection) => {
//connection.release();
if (err) { callback(err); return; }
//¿como introducimos las opciones?
connection.query("SELECT DISTINCT j.idUsuario, (SELECT login FROM usuarios where usuarios.id = j.idUsuario) as usuario, p.estado, p.nombre " +
"FROM partidas p JOIN juega_en j ON j.idPartida = ? where p.id=?",
[idPartida, idPartida], function (err, resultado) {
connection.release();
if (err) {callback(err); return; }
callback(null, resultado)
})
})
}
getPlayersInGame(idPartida,callback){
this.pool.getConnection((err, connection) => {
if (err) { callback(err); return; }
connection.query("SELECT idUsuario FROM juega_en WHERE idPartida=? ",
[idPartida], function (err, resultado) {
connection.release();
if (err) {callback(err); return; }
callback(null, resultado)
})
})
}
updateEstadoPartida(idPartida, estado, callback) {
this.pool.getConnection((err, connection) => {
//connection.release();
if (err) { callback(err); return; }
//¿como introducimos las opciones?
connection.query("UPDATE partidas set estado=? where partidas.id =? ",
[estado, idPartida], function (err, resultado) {
console.log(resultado);
connection.release();
if (err) {callback(err); return; }
callback();
})
})
}
getPlayersInGame(idPartida,callback){
this.pool.getConnection((err, connection) => {
if (err) { callback(err); return; }
connection.query("SELECT idUsuario FROM juega_en WHERE idPartida=? ",
[idPartida], function (err, resultado) {
connection.release();
if (err) {callback(err); return; }
callback(null, resultado)
})
})
}
}
module.exports = {
DAOGames: DAOGames
}