From 8bf05e47df91f9e15fb30ca8468389a459b8edb7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 14 Apr 2018 06:27:17 +0900 Subject: [PATCH] Fix bug --- src/server/api/service/twitter.ts | 54 +++++++++++++++++-------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts index 9fb01b44e..0de2e68c6 100644 --- a/src/server/api/service/twitter.ts +++ b/src/server/api/service/twitter.ts @@ -107,7 +107,7 @@ if (config.twitter == null) { ctx.redirect(twCtx.url); }); - router.get('/tw/cb', ctx => { + router.get('/tw/cb', async ctx => { const userToken = getUserToken(ctx); if (userToken == null) { @@ -141,31 +141,37 @@ if (config.twitter == null) { return; } - redis.get(userToken, async (_, twCtx) => { - const result = await twAuth.done(JSON.parse(twCtx), verifier); - - const user = await User.findOneAndUpdate({ - host: null, - token: userToken - }, { - $set: { - twitter: { - accessToken: result.accessToken, - accessTokenSecret: result.accessTokenSecret, - userId: result.userId, - screenName: result.screenName - } - } + const get = new Promise((res, rej) => { + redis.get(userToken, async (_, twCtx) => { + res(twCtx); }); - - ctx.body = `Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`; - - // Publish i updated event - event(user._id, 'i_updated', await pack(user, user, { - detail: true, - includeSecrets: true - })); }); + + const twCtx = await get; + + const result = await twAuth.done(JSON.parse(twCtx), verifier); + + const user = await User.findOneAndUpdate({ + host: null, + token: userToken + }, { + $set: { + twitter: { + accessToken: result.accessToken, + accessTokenSecret: result.accessTokenSecret, + userId: result.userId, + screenName: result.screenName + } + } + }); + + ctx.body = `Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`; + + // Publish i updated event + event(user._id, 'i_updated', await pack(user, user, { + detail: true, + includeSecrets: true + })); } }); }