diff options
Diffstat (limited to 'src/api/endpoints/othello/games.ts')
| -rw-r--r-- | src/api/endpoints/othello/games.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/api/endpoints/othello/games.ts b/src/api/endpoints/othello/games.ts new file mode 100644 index 0000000000..39963fcd29 --- /dev/null +++ b/src/api/endpoints/othello/games.ts @@ -0,0 +1,26 @@ +import $ from 'cafy'; +import Game, { pack } from '../../models/othello-game'; + +module.exports = (params, user) => new Promise(async (res, rej) => { + // Get 'my' parameter + const [my = false, myErr] = $(params.my).optional.boolean().$; + if (myErr) return rej('invalid my param'); + + const q = my ? { + $or: [{ + black_user_id: user._id + }, { + white_user_id: user._id + }] + } : {}; + + // Fetch games + const games = await Game.find(q, { + sort: { + _id: -1 + } + }); + + // Reponse + res(Promise.all(games.map(async (g) => await pack(g, user)))); +}); |