summaryrefslogtreecommitdiff
path: root/src/server/api/streaming.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-11 17:40:01 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-11 17:40:01 +0900
commitbd3d57a67f6d7c6a01516410d2322e6ffbd2f5ad (patch)
treee5caa46997f78a61fb09a821aa0ac210784500fb /src/server/api/streaming.ts
parentv4771 (diff)
downloadsharkey-bd3d57a67f6d7c6a01516410d2322e6ffbd2f5ad.tar.gz
sharkey-bd3d57a67f6d7c6a01516410d2322e6ffbd2f5ad.tar.bz2
sharkey-bd3d57a67f6d7c6a01516410d2322e6ffbd2f5ad.zip
ストリーム経由でAPIにリクエストできるように
Diffstat (limited to 'src/server/api/streaming.ts')
-rw-r--r--src/server/api/streaming.ts45
1 files changed, 3 insertions, 42 deletions
diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts
index 26946b524e..d586d7c08f 100644
--- a/src/server/api/streaming.ts
+++ b/src/server/api/streaming.ts
@@ -2,9 +2,6 @@ import * as http from 'http';
import * as websocket from 'websocket';
import * as redis from 'redis';
import config from '../../config';
-import { default as User, IUser } from '../../models/user';
-import AccessToken from '../../models/access-token';
-import isNativeToken from './common/is-native-token';
import homeStream from './stream/home';
import driveStream from './stream/drive';
@@ -16,6 +13,7 @@ import serverStream from './stream/server';
import requestsStream from './stream/requests';
import channelStream from './stream/channel';
import { ParsedUrlQuery } from 'querystring';
+import authenticate from './authenticate';
module.exports = (server: http.Server) => {
/**
@@ -53,7 +51,7 @@ module.exports = (server: http.Server) => {
}
const q = request.resourceURL.query as ParsedUrlQuery;
- const user = await authenticate(q.i as string);
+ const [user, app] = await authenticate(q.i as string);
if (request.resourceURL.pathname === '/othello-game') {
othelloGameStream(request, connection, subscriber, user);
@@ -75,46 +73,9 @@ module.exports = (server: http.Server) => {
null;
if (channel !== null) {
- channel(request, connection, subscriber, user);
+ channel(request, connection, subscriber, user, app);
} else {
connection.close();
}
});
};
-
-/**
- * 接続してきたユーザーを取得します
- * @param token 送信されてきたトークン
- */
-function authenticate(token: string): Promise<IUser> {
- if (token == null) {
- return Promise.resolve(null);
- }
-
- return new Promise(async (resolve, reject) => {
- if (isNativeToken(token)) {
- // Fetch user
- const user: IUser = await User
- .findOne({
- host: null,
- 'token': token
- });
-
- resolve(user);
- } else {
- const accessToken = await AccessToken.findOne({
- hash: token
- });
-
- if (accessToken == null) {
- return reject('invalid signature');
- }
-
- // Fetch user
- const user: IUser = await User
- .findOne({ _id: accessToken.userId });
-
- resolve(user);
- }
- });
-}