@@ -220,6 +220,37 @@ const apiGameStart = (game) => {
220
220
} )
221
221
} ;
222
222
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
+
223
254
const getRandomWord = ( ) => {
224
255
let word = global . words [ Math . floor ( Math . random ( ) * global . words . length ) ] ;
225
256
return word ;
@@ -256,10 +287,12 @@ const resetClient = () => {
256
287
257
288
const handleFinishedGame = ( game , player , opponent ) => {
258
289
updatePlayStatus ( player , opponent , false ) ;
259
-
290
+ // apiGameStop(game, winner, [loser], game.getEndState());
291
+ // apiGameStop(game, null, [player, opponent], game.getEndState());
260
292
if ( game . getEndState ( ) == 'won' ) {
261
293
updateRanking ( getUserById ( player . userId ) , 'win' ) ;
262
294
updateRanking ( getUserById ( opponent . userId ) , 'loss' ) ;
295
+ apiGameStop ( game , player , [ opponent ] , 'win' ) ;
263
296
emitToPlayer ( player . socketId , 'win' , {
264
297
winner : player ,
265
298
loser : opponent ,
@@ -274,7 +307,8 @@ const handleFinishedGame = (game, player, opponent) => {
274
307
notUsedLetters : game . notUsedLetters ,
275
308
wordIsGuessed : game . wordIsGuessed ,
276
309
outputString : game . outputString ,
277
- forfeited : game . forfeited
310
+ forfeited : game . forfeited ,
311
+ gameId : game . gameId
278
312
}
279
313
} ) ;
280
314
emitToPlayer ( opponent . socketId , 'lost' , {
@@ -291,7 +325,8 @@ const handleFinishedGame = (game, player, opponent) => {
291
325
notUsedLetters : game . notUsedLetters ,
292
326
wordIsGuessed : game . wordIsGuessed ,
293
327
outputString : game . outputString ,
294
- forfeited : game . forfeited
328
+ forfeited : game . forfeited ,
329
+ gameId : game . gameId
295
330
}
296
331
} ) ;
297
332
emitToPlayers ( game . getPlayers ( ) , 'logging' , {
@@ -302,6 +337,7 @@ const handleFinishedGame = (game, player, opponent) => {
302
337
if ( game . getEndState ( ) == 'lost-both' ) {
303
338
updateRanking ( getUserById ( player . userId ) , 'loss' ) ;
304
339
updateRanking ( getUserById ( opponent . userId ) , 'loss' ) ;
340
+ apiGameStop ( game , null , [ player , opponent ] , 'lost-both' ) ;
305
341
emitToPlayers ( game . getPlayers ( ) , 'lost-both' , {
306
342
winner : null ,
307
343
loser : null ,
@@ -316,7 +352,8 @@ const handleFinishedGame = (game, player, opponent) => {
316
352
notUsedLetters : game . notUsedLetters ,
317
353
wordIsGuessed : game . wordIsGuessed ,
318
354
outputString : game . outputString ,
319
- forfeited : game . forfeited
355
+ forfeited : game . forfeited ,
356
+ gameId : game . gameId
320
357
}
321
358
} ) ;
322
359
emitToPlayers ( game . getPlayers ( ) , 'logging' , {
@@ -327,7 +364,7 @@ const handleFinishedGame = (game, player, opponent) => {
327
364
if ( game . getEndState ( ) == 'forfeited' ) {
328
365
updateRanking ( getUserById ( player . userId ) , 'loss' ) ;
329
366
updateRanking ( getUserById ( opponent . userId ) , 'win' ) ;
330
-
367
+ apiGameStop ( game , opponent , [ player ] , 'forfeit' ) ;
331
368
emitToPlayers ( game . getPlayers ( ) , 'game stop' , {
332
369
reason : 'forfeit' ,
333
370
winner : opponent ,
@@ -343,7 +380,8 @@ const handleFinishedGame = (game, player, opponent) => {
343
380
notUsedLetters : game . notUsedLetters ,
344
381
wordIsGuessed : game . wordIsGuessed ,
345
382
outputString : game . outputString ,
346
- forfeited : game . forfeited
383
+ forfeited : game . forfeited ,
384
+ gameId : game . gameId
347
385
}
348
386
} ) ;
349
387
emitToPlayers ( game . getPlayers ( ) , 'logging' , {
0 commit comments