Skip to content

Commit b3efe5c

Browse files
committed
game end connection to api added
1 parent 5d540d4 commit b3efe5c

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

app.js

+44-6
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,37 @@ const apiGameStart = (game) => {
220220
})
221221
};
222222

223+
const apiGameStop = (game, winner, losers, reason) => {
224+
225+
let data = null;
226+
227+
if (reason == 'forfeit' || reason == 'won') {
228+
data = {
229+
winner: { "id": winner.userId },
230+
losers: [ { "id": losers[0].userId } ]
231+
}
232+
}
233+
234+
if (reason == 'lost-both') {
235+
data = {
236+
winner: null,
237+
losers: [ { "id": losers[0].userId }, { "id": losers[1].userId } ]
238+
}
239+
}
240+
241+
const request = axios({
242+
method: 'post',
243+
url: `http://localhost:5000/api/v1-0/game/stop/${game.gameId}`,
244+
data: data
245+
}).then((res) => {
246+
console.log(res.data);
247+
console.log('game has ended successfully.');
248+
}).catch((err) => {
249+
console.log(err);
250+
console.log('error while ending a game.');
251+
})
252+
}
253+
223254
const getRandomWord = () => {
224255
let word = global.words[Math.floor(Math.random() * global.words.length)];
225256
return word;
@@ -256,10 +287,12 @@ const resetClient = () => {
256287

257288
const handleFinishedGame = (game, player, opponent) => {
258289
updatePlayStatus(player, opponent, false);
259-
290+
// apiGameStop(game, winner, [loser], game.getEndState());
291+
// apiGameStop(game, null, [player, opponent], game.getEndState());
260292
if (game.getEndState() == 'won') {
261293
updateRanking(getUserById(player.userId), 'win');
262294
updateRanking(getUserById(opponent.userId), 'loss');
295+
apiGameStop(game, player, [opponent], 'win');
263296
emitToPlayer(player.socketId, 'win', {
264297
winner: player,
265298
loser: opponent,
@@ -274,7 +307,8 @@ const handleFinishedGame = (game, player, opponent) => {
274307
notUsedLetters: game.notUsedLetters,
275308
wordIsGuessed: game.wordIsGuessed,
276309
outputString: game.outputString,
277-
forfeited: game.forfeited
310+
forfeited: game.forfeited,
311+
gameId: game.gameId
278312
}
279313
});
280314
emitToPlayer(opponent.socketId, 'lost', {
@@ -291,7 +325,8 @@ const handleFinishedGame = (game, player, opponent) => {
291325
notUsedLetters: game.notUsedLetters,
292326
wordIsGuessed: game.wordIsGuessed,
293327
outputString: game.outputString,
294-
forfeited: game.forfeited
328+
forfeited: game.forfeited,
329+
gameId: game.gameId
295330
}
296331
});
297332
emitToPlayers(game.getPlayers(), 'logging', {
@@ -302,6 +337,7 @@ const handleFinishedGame = (game, player, opponent) => {
302337
if (game.getEndState() == 'lost-both') {
303338
updateRanking(getUserById(player.userId), 'loss');
304339
updateRanking(getUserById(opponent.userId), 'loss');
340+
apiGameStop(game, null, [player, opponent], 'lost-both');
305341
emitToPlayers(game.getPlayers(), 'lost-both', {
306342
winner: null,
307343
loser: null,
@@ -316,7 +352,8 @@ const handleFinishedGame = (game, player, opponent) => {
316352
notUsedLetters: game.notUsedLetters,
317353
wordIsGuessed: game.wordIsGuessed,
318354
outputString: game.outputString,
319-
forfeited: game.forfeited
355+
forfeited: game.forfeited,
356+
gameId: game.gameId
320357
}
321358
});
322359
emitToPlayers(game.getPlayers(), 'logging', {
@@ -327,7 +364,7 @@ const handleFinishedGame = (game, player, opponent) => {
327364
if (game.getEndState() == 'forfeited') {
328365
updateRanking(getUserById(player.userId), 'loss');
329366
updateRanking(getUserById(opponent.userId), 'win');
330-
367+
apiGameStop(game, opponent, [player], 'forfeit');
331368
emitToPlayers(game.getPlayers(), 'game stop', {
332369
reason: 'forfeit',
333370
winner: opponent,
@@ -343,7 +380,8 @@ const handleFinishedGame = (game, player, opponent) => {
343380
notUsedLetters: game.notUsedLetters,
344381
wordIsGuessed: game.wordIsGuessed,
345382
outputString: game.outputString,
346-
forfeited: game.forfeited
383+
forfeited: game.forfeited,
384+
gameId: game.gameId
347385
}
348386
});
349387
emitToPlayers(game.getPlayers(), 'logging', {

0 commit comments

Comments
 (0)