summaryrefslogtreecommitdiff
path: root/src/server/api/service/discord.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-02-01 07:16:52 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-02-01 07:16:52 +0900
commit7ed3448e13847f3ba807be1354e90c912fbefd9a (patch)
treea9d91176e5a95f90e2af570ae900641f651e77aa /src/server/api/service/discord.ts
parentUpdate gulpfile.ts (diff)
downloadmisskey-7ed3448e13847f3ba807be1354e90c912fbefd9a.tar.gz
misskey-7ed3448e13847f3ba807be1354e90c912fbefd9a.tar.bz2
misskey-7ed3448e13847f3ba807be1354e90c912fbefd9a.zip
Resolve #1669
Diffstat (limited to 'src/server/api/service/discord.ts')
-rw-r--r--src/server/api/service/discord.ts58
1 files changed, 32 insertions, 26 deletions
diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts
index d5ca05577c..f9f3026aa8 100644
--- a/src/server/api/service/discord.ts
+++ b/src/server/api/service/discord.ts
@@ -46,16 +46,12 @@ router.get('/disconnect/discord', async ctx => {
token: userToken
}).then(ensure);
- await UserProfiles.update({
- userId: user.id
- }, {
- discord: false,
- discordAccessToken: null,
- discordRefreshToken: null,
- discordExpiresDate: null,
- discordId: null,
- discordUsername: null,
- discordDiscriminator: null,
+ const profile = await UserProfiles.findOne(user.id).then(ensure);
+
+ delete profile.integrations.discord;
+
+ await UserProfiles.update(user.id, {
+ integrations: profile.integrations,
});
ctx.body = `Discordの連携を解除しました :v:`;
@@ -203,7 +199,7 @@ router.get('/dc/cb', async ctx => {
}
const profile = await UserProfiles.createQueryBuilder()
- .where('"discordId" = :id', { id: id })
+ .where('"integrations"->"discord"->"id" = :id', { id: id })
.andWhere('"userHost" IS NULL')
.getOne();
@@ -212,13 +208,17 @@ router.get('/dc/cb', async ctx => {
return;
}
- await UserProfiles.update({ userId: profile.userId }, {
- discord: true,
- discordAccessToken: accessToken,
- discordRefreshToken: refreshToken,
- discordExpiresDate: expiresDate,
- discordUsername: username,
- discordDiscriminator: discriminator
+ await UserProfiles.update(profile.userId, {
+ integrations: {
+ ...profile.integrations,
+ discord: {
+ accessToken: accessToken,
+ refreshToken: refreshToken,
+ expiresDate: expiresDate,
+ username: username,
+ discriminator: discriminator
+ }
+ },
});
signin(ctx, await Users.findOne(profile.userId) as ILocalUser, true);
@@ -284,14 +284,20 @@ router.get('/dc/cb', async ctx => {
token: userToken
}).then(ensure);
- await UserProfiles.update({ userId: user.id }, {
- discord: true,
- discordAccessToken: accessToken,
- discordRefreshToken: refreshToken,
- discordExpiresDate: expiresDate,
- discordId: id,
- discordUsername: username,
- discordDiscriminator: discriminator
+ const profile = await UserProfiles.findOne(user.id).then(ensure);
+
+ await UserProfiles.update(user.id, {
+ integrations: {
+ ...profile.integrations,
+ discord: {
+ accessToken: accessToken,
+ refreshToken: refreshToken,
+ expiresDate: expiresDate,
+ id: id,
+ username: username,
+ discriminator: discriminator
+ }
+ }
});
ctx.body = `Discord: @${username}#${discriminator} を、Misskey: @${user.username} に接続しました!`;