summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/othello
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/othello')
-rw-r--r--src/server/api/endpoints/othello/games.ts62
-rw-r--r--src/server/api/endpoints/othello/games/show.ts32
-rw-r--r--src/server/api/endpoints/othello/invitations.ts15
-rw-r--r--src/server/api/endpoints/othello/match.ts95
-rw-r--r--src/server/api/endpoints/othello/match/cancel.ts9
5 files changed, 0 insertions, 213 deletions
diff --git a/src/server/api/endpoints/othello/games.ts b/src/server/api/endpoints/othello/games.ts
deleted file mode 100644
index 2320a34b04..0000000000
--- a/src/server/api/endpoints/othello/games.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import $ from 'cafy'; import ID from '../../../../cafy-id';
-import OthelloGame, { pack } from '../../../../models/othello-game';
-
-module.exports = (params, user) => new Promise(async (res, rej) => {
- // Get 'my' parameter
- const [my = false, myErr] = $.bool.optional().get(params.my);
- if (myErr) return rej('invalid my param');
-
- // Get 'limit' parameter
- const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
- if (limitErr) return rej('invalid limit param');
-
- // Get 'sinceId' parameter
- const [sinceId, sinceIdErr] = $.type(ID).optional().get(params.sinceId);
- if (sinceIdErr) return rej('invalid sinceId param');
-
- // Get 'untilId' parameter
- const [untilId, untilIdErr] = $.type(ID).optional().get(params.untilId);
- if (untilIdErr) return rej('invalid untilId param');
-
- // Check if both of sinceId and untilId is specified
- if (sinceId && untilId) {
- return rej('cannot set sinceId and untilId');
- }
-
- const q: any = my ? {
- isStarted: true,
- $or: [{
- user1Id: user._id
- }, {
- user2Id: user._id
- }]
- } : {
- isStarted: true
- };
-
- const sort = {
- _id: -1
- };
-
- if (sinceId) {
- sort._id = 1;
- q._id = {
- $gt: sinceId
- };
- } else if (untilId) {
- q._id = {
- $lt: untilId
- };
- }
-
- // Fetch games
- const games = await OthelloGame.find(q, {
- sort,
- limit
- });
-
- // Reponse
- res(Promise.all(games.map(async (g) => await pack(g, user, {
- detail: false
- }))));
-});
diff --git a/src/server/api/endpoints/othello/games/show.ts b/src/server/api/endpoints/othello/games/show.ts
deleted file mode 100644
index 6b2f5ce137..0000000000
--- a/src/server/api/endpoints/othello/games/show.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import $ from 'cafy'; import ID from '../../../../../cafy-id';
-import OthelloGame, { pack } from '../../../../../models/othello-game';
-import Othello from '../../../../../othello/core';
-
-module.exports = (params, user) => new Promise(async (res, rej) => {
- // Get 'gameId' parameter
- const [gameId, gameIdErr] = $.type(ID).get(params.gameId);
- if (gameIdErr) return rej('invalid gameId param');
-
- const game = await OthelloGame.findOne({ _id: gameId });
-
- if (game == null) {
- return rej('game not found');
- }
-
- const o = new Othello(game.settings.map, {
- isLlotheo: game.settings.isLlotheo,
- canPutEverywhere: game.settings.canPutEverywhere,
- loopedBoard: game.settings.loopedBoard
- });
-
- game.logs.forEach(log => {
- o.put(log.color, log.pos);
- });
-
- const packed = await pack(game, user);
-
- res(Object.assign({
- board: o.board,
- turn: o.turn
- }, packed));
-});
diff --git a/src/server/api/endpoints/othello/invitations.ts b/src/server/api/endpoints/othello/invitations.ts
deleted file mode 100644
index 4761537614..0000000000
--- a/src/server/api/endpoints/othello/invitations.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Matching, { pack as packMatching } from '../../../../models/othello-matching';
-
-module.exports = (params, user) => new Promise(async (res, rej) => {
- // Find session
- const invitations = await Matching.find({
- childId: user._id
- }, {
- sort: {
- _id: -1
- }
- });
-
- // Reponse
- res(Promise.all(invitations.map(async (i) => await packMatching(i, user))));
-});
diff --git a/src/server/api/endpoints/othello/match.ts b/src/server/api/endpoints/othello/match.ts
deleted file mode 100644
index e70e579755..0000000000
--- a/src/server/api/endpoints/othello/match.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import $ from 'cafy'; import ID from '../../../../cafy-id';
-import Matching, { pack as packMatching } from '../../../../models/othello-matching';
-import OthelloGame, { pack as packGame } from '../../../../models/othello-game';
-import User from '../../../../models/user';
-import publishUserStream, { publishOthelloStream } from '../../../../publishers/stream';
-import { eighteight } from '../../../../othello/maps';
-
-module.exports = (params, user) => new Promise(async (res, rej) => {
- // Get 'userId' parameter
- const [childId, childIdErr] = $.type(ID).get(params.userId);
- if (childIdErr) return rej('invalid userId param');
-
- // Myself
- if (childId.equals(user._id)) {
- return rej('invalid userId param');
- }
-
- // Find session
- const exist = await Matching.findOne({
- parentId: childId,
- childId: user._id
- });
-
- if (exist) {
- // Destroy session
- Matching.remove({
- _id: exist._id
- });
-
- // Create game
- const game = await OthelloGame.insert({
- createdAt: new Date(),
- user1Id: exist.parentId,
- user2Id: user._id,
- user1Accepted: false,
- user2Accepted: false,
- isStarted: false,
- isEnded: false,
- logs: [],
- settings: {
- map: eighteight.data,
- bw: 'random',
- isLlotheo: false
- }
- });
-
- // Reponse
- res(await packGame(game, user));
-
- publishOthelloStream(exist.parentId, 'matched', await packGame(game, exist.parentId));
-
- const other = await Matching.count({
- childId: user._id
- });
-
- if (other == 0) {
- publishUserStream(user._id, 'othello_no_invites');
- }
- } else {
- // Fetch child
- const child = await User.findOne({
- _id: childId
- }, {
- fields: {
- _id: true
- }
- });
-
- if (child === null) {
- return rej('user not found');
- }
-
- // 以前のセッションはすべて削除しておく
- await Matching.remove({
- parentId: user._id
- });
-
- // セッションを作成
- const matching = await Matching.insert({
- createdAt: new Date(),
- parentId: user._id,
- childId: child._id
- });
-
- // Reponse
- res();
-
- const packed = await packMatching(matching, child);
-
- // 招待
- publishOthelloStream(child._id, 'invited', packed);
-
- publishUserStream(child._id, 'othello_invited', packed);
- }
-});
diff --git a/src/server/api/endpoints/othello/match/cancel.ts b/src/server/api/endpoints/othello/match/cancel.ts
deleted file mode 100644
index 562e691061..0000000000
--- a/src/server/api/endpoints/othello/match/cancel.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import Matching from '../../../../../models/othello-matching';
-
-module.exports = (params, user) => new Promise(async (res, rej) => {
- await Matching.remove({
- parentId: user._id
- });
-
- res();
-});