summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/i
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-02-22 11:46:58 +0900
committerGitHub <noreply@github.com>2019-02-22 11:46:58 +0900
commit2756f553c68082342a784ef716c62da6cea6f3ca (patch)
tree1e0364ca9ddc1fd88e311f0687746f44e007effd /src/server/api/endpoints/i
parentUpdate CHANGELOG.md (diff)
downloadsharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.gz
sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.bz2
sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.zip
Improve error handling of API (#4345)
* wip * wip * wip * Update attached_notes.ts * wip * Refactor * wip * wip * wip * wip * wip * wip * wip * wip * Update call.ts * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * :v: * Fix
Diffstat (limited to 'src/server/api/endpoints/i')
-rw-r--r--src/server/api/endpoints/i/2fa/done.ts10
-rw-r--r--src/server/api/endpoints/i/2fa/register.ts24
-rw-r--r--src/server/api/endpoints/i/2fa/unregister.ts8
-rw-r--r--src/server/api/endpoints/i/authorized_apps.ts8
-rw-r--r--src/server/api/endpoints/i/change_password.ts8
-rw-r--r--src/server/api/endpoints/i/clear-follow-request-notification.ts6
-rw-r--r--src/server/api/endpoints/i/delete-account.ts8
-rw-r--r--src/server/api/endpoints/i/export-blocking.ts6
-rw-r--r--src/server/api/endpoints/i/export-following.ts6
-rw-r--r--src/server/api/endpoints/i/export-mute.ts6
-rw-r--r--src/server/api/endpoints/i/export-notes.ts6
-rw-r--r--src/server/api/endpoints/i/favorites.ts11
-rw-r--r--src/server/api/endpoints/i/notifications.ts13
-rw-r--r--src/server/api/endpoints/i/pin.ts43
-rw-r--r--src/server/api/endpoints/i/read_all_messaging_messages.ts6
-rw-r--r--src/server/api/endpoints/i/read_all_unread_notes.ts6
-rw-r--r--src/server/api/endpoints/i/regenerate_token.ts10
-rw-r--r--src/server/api/endpoints/i/signin_history.ts12
-rw-r--r--src/server/api/endpoints/i/unpin.ts29
-rw-r--r--src/server/api/endpoints/i/update.ts47
-rw-r--r--src/server/api/endpoints/i/update_client_setting.ts8
-rw-r--r--src/server/api/endpoints/i/update_email.ts12
-rw-r--r--src/server/api/endpoints/i/update_home.ts8
-rw-r--r--src/server/api/endpoints/i/update_mobile_home.ts8
-rw-r--r--src/server/api/endpoints/i/update_widget.ts10
25 files changed, 173 insertions, 146 deletions
diff --git a/src/server/api/endpoints/i/2fa/done.ts b/src/server/api/endpoints/i/2fa/done.ts
index 2ee0c8886e..556354c386 100644
--- a/src/server/api/endpoints/i/2fa/done.ts
+++ b/src/server/api/endpoints/i/2fa/done.ts
@@ -15,11 +15,11 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
const _token = ps.token.replace(/\s/g, '');
if (user.twoFactorTempSecret == null) {
- return rej('二段階認証の設定が開始されていません');
+ throw new Error('二段階認証の設定が開始されていません');
}
const verified = (speakeasy as any).totp.verify({
@@ -29,7 +29,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
});
if (!verified) {
- return rej('not verified');
+ throw new Error('not verified');
}
await User.update(user._id, {
@@ -39,5 +39,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts
index 38e3ca7806..302b51ec0b 100644
--- a/src/server/api/endpoints/i/2fa/register.ts
+++ b/src/server/api/endpoints/i/2fa/register.ts
@@ -18,12 +18,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
// Generate user's secret key
@@ -38,17 +38,17 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
});
// Get the data URL of the authenticator URL
- QRCode.toDataURL(speakeasy.otpauthURL({
+ const dataUrl = await QRCode.toDataURL(speakeasy.otpauthURL({
secret: secret.base32,
encoding: 'base32',
label: user.username,
issuer: config.host
- }), (err, data_url) => {
- res({
- qr: data_url,
- secret: secret.base32,
- label: user.username,
- issuer: config.host
- });
- });
-}));
+ }));
+
+ return {
+ qr: dataUrl,
+ secret: secret.base32,
+ label: user.username,
+ issuer: config.host
+ };
+});
diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/src/server/api/endpoints/i/2fa/unregister.ts
index 2cb48d93cd..37b2639198 100644
--- a/src/server/api/endpoints/i/2fa/unregister.ts
+++ b/src/server/api/endpoints/i/2fa/unregister.ts
@@ -15,12 +15,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
await User.update(user._id, {
@@ -30,5 +30,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/authorized_apps.ts b/src/server/api/endpoints/i/authorized_apps.ts
index 3e60afe698..cb8be9ed97 100644
--- a/src/server/api/endpoints/i/authorized_apps.ts
+++ b/src/server/api/endpoints/i/authorized_apps.ts
@@ -26,7 +26,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Get tokens
const tokens = await AccessToken
.find({
@@ -39,7 +39,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- res(await Promise.all(tokens.map(token => pack(token.appId, user, {
+ return await Promise.all(tokens.map(token => pack(token.appId, user, {
detail: true
- }))));
-}));
+ })));
+});
diff --git a/src/server/api/endpoints/i/change_password.ts b/src/server/api/endpoints/i/change_password.ts
index a2cfc6f70e..8ab286b4bf 100644
--- a/src/server/api/endpoints/i/change_password.ts
+++ b/src/server/api/endpoints/i/change_password.ts
@@ -19,12 +19,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.currentPassword, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
// Generate hash of password
@@ -37,5 +37,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/clear-follow-request-notification.ts b/src/server/api/endpoints/i/clear-follow-request-notification.ts
index af4302621b..2c656965d5 100644
--- a/src/server/api/endpoints/i/clear-follow-request-notification.ts
+++ b/src/server/api/endpoints/i/clear-follow-request-notification.ts
@@ -10,12 +10,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
await User.update({ _id: user._id }, {
$set: {
pendingReceivedFollowRequestsCount: 0
}
});
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/delete-account.ts b/src/server/api/endpoints/i/delete-account.ts
index 6cab3d1394..e1b3093d1a 100644
--- a/src/server/api/endpoints/i/delete-account.ts
+++ b/src/server/api/endpoints/i/delete-account.ts
@@ -18,12 +18,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
await User.update({ _id: user._id }, {
@@ -49,5 +49,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
createDeleteNotesJob(user);
createDeleteDriveFilesJob(user);
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/export-blocking.ts b/src/server/api/endpoints/i/export-blocking.ts
index 12a08c6d7d..346b29c79d 100644
--- a/src/server/api/endpoints/i/export-blocking.ts
+++ b/src/server/api/endpoints/i/export-blocking.ts
@@ -11,8 +11,8 @@ export const meta = {
},
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
createExportBlockingJob(user);
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/export-following.ts b/src/server/api/endpoints/i/export-following.ts
index e819898d9b..5977b03105 100644
--- a/src/server/api/endpoints/i/export-following.ts
+++ b/src/server/api/endpoints/i/export-following.ts
@@ -11,8 +11,8 @@ export const meta = {
},
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
createExportFollowingJob(user);
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/export-mute.ts b/src/server/api/endpoints/i/export-mute.ts
index c719a1f6a5..22ceff3631 100644
--- a/src/server/api/endpoints/i/export-mute.ts
+++ b/src/server/api/endpoints/i/export-mute.ts
@@ -11,8 +11,8 @@ export const meta = {
},
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
createExportMuteJob(user);
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/export-notes.ts b/src/server/api/endpoints/i/export-notes.ts
index 6da6e68b9d..2881aa2697 100644
--- a/src/server/api/endpoints/i/export-notes.ts
+++ b/src/server/api/endpoints/i/export-notes.ts
@@ -11,8 +11,8 @@ export const meta = {
},
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
createExportNotesJob(user);
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts
index c476844b4b..b9bef38c69 100644
--- a/src/server/api/endpoints/i/favorites.ts
+++ b/src/server/api/endpoints/i/favorites.ts
@@ -31,12 +31,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- // Check if both of sinceId and untilId is specified
- if (ps.sinceId && ps.untilId) {
- return rej('cannot set sinceId and untilId');
- }
-
+export default define(meta, async (ps, user) => {
const query = {
userId: user._id
} as any;
@@ -63,5 +58,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
sort: sort
});
- res(await packMany(favorites, user));
-}));
+ return await packMany(favorites, user);
+});
diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts
index 6287e42622..693d279965 100644
--- a/src/server/api/endpoints/i/notifications.ts
+++ b/src/server/api/endpoints/i/notifications.ts
@@ -55,12 +55,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- // Check if both of sinceId and untilId is specified
- if (ps.sinceId && ps.untilId) {
- return rej('cannot set sinceId and untilId');
- }
-
+export default define(meta, async (ps, user) => {
const hideUserIds = await getHideUserIds(user);
const query = {
@@ -114,10 +109,10 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
sort: sort
});
- res(await packMany(notifications));
-
// Mark all as read
if (notifications.length > 0 && ps.markAsRead) {
read(user._id, notifications);
}
-}));
+
+ return await packMany(notifications);
+});
diff --git a/src/server/api/endpoints/i/pin.ts b/src/server/api/endpoints/i/pin.ts
index 79a3e42fb7..0b6b1b0db9 100644
--- a/src/server/api/endpoints/i/pin.ts
+++ b/src/server/api/endpoints/i/pin.ts
@@ -3,6 +3,7 @@ import ID, { transform } from '../../../../misc/cafy-id';
import { pack } from '../../../../models/user';
import { addPinned } from '../../../../services/i/pin';
import define from '../../define';
+import { ApiError } from '../../error';
export const meta = {
stability: 'stable',
@@ -24,22 +25,38 @@ export const meta = {
'en-US': 'Target note ID'
}
}
+ },
+
+ errors: {
+ noSuchNote: {
+ message: 'No such note.',
+ code: 'NO_SUCH_NOTE',
+ id: '56734f8b-3928-431e-bf80-6ff87df40cb3'
+ },
+
+ pinLimitExceeded: {
+ message: 'You can not pin notes any more.',
+ code: 'PIN_LIMIT_EXCEEDED',
+ id: '72dab508-c64d-498f-8740-a8eec1ba385a'
+ },
+
+ alreadyPinned: {
+ message: 'That note has already been pinned.',
+ code: 'ALREADY_PINNED',
+ id: '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913'
+ },
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- // Processing
- try {
- await addPinned(user, ps.noteId);
- } catch (e) {
- return rej(e.message);
- }
+export default define(meta, async (ps, user) => {
+ await addPinned(user, ps.noteId).catch(e => {
+ if (e.id === '70c4e51f-5bea-449c-a030-53bee3cce202') throw new ApiError(meta.errors.noSuchNote);
+ if (e.id === '15a018eb-58e5-4da1-93be-330fcc5e4e1a') throw new ApiError(meta.errors.pinLimitExceeded);
+ if (e.id === '23f0cf4e-59a3-4276-a91d-61a5891c1514') throw new ApiError(meta.errors.alreadyPinned);
+ throw e;
+ });
- // Serialize
- const iObj = await pack(user, user, {
+ return await pack(user, user, {
detail: true
});
-
- // Send response
- res(iObj);
-}));
+});
diff --git a/src/server/api/endpoints/i/read_all_messaging_messages.ts b/src/server/api/endpoints/i/read_all_messaging_messages.ts
index 739acf93c6..6bc6e16b4d 100644
--- a/src/server/api/endpoints/i/read_all_messaging_messages.ts
+++ b/src/server/api/endpoints/i/read_all_messaging_messages.ts
@@ -17,7 +17,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Update documents
await Message.update({
recipientId: user._id,
@@ -38,5 +38,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
publishMainStream(user._id, 'readAllMessagingMessages');
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/read_all_unread_notes.ts b/src/server/api/endpoints/i/read_all_unread_notes.ts
index 509450e43c..16db17cb04 100644
--- a/src/server/api/endpoints/i/read_all_unread_notes.ts
+++ b/src/server/api/endpoints/i/read_all_unread_notes.ts
@@ -17,7 +17,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Remove documents
await NoteUnread.remove({
userId: user._id
@@ -34,5 +34,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
publishMainStream(user._id, 'readAllUnreadMentions');
publishMainStream(user._id, 'readAllUnreadSpecifiedNotes');
- res();
-}));
+ return;
+});
diff --git a/src/server/api/endpoints/i/regenerate_token.ts b/src/server/api/endpoints/i/regenerate_token.ts
index 16c2983184..ad10b99b36 100644
--- a/src/server/api/endpoints/i/regenerate_token.ts
+++ b/src/server/api/endpoints/i/regenerate_token.ts
@@ -17,12 +17,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
// Generate secret
@@ -34,8 +34,8 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- res();
-
// Publish event
publishMainStream(user._id, 'myTokenRegenerated');
-}));
+
+ return;
+});
diff --git a/src/server/api/endpoints/i/signin_history.ts b/src/server/api/endpoints/i/signin_history.ts
index cdffc6cc3c..87160a9f91 100644
--- a/src/server/api/endpoints/i/signin_history.ts
+++ b/src/server/api/endpoints/i/signin_history.ts
@@ -26,12 +26,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- // Check if both of sinceId and untilId is specified
- if (ps.sinceId && ps.untilId) {
- return rej('cannot set sinceId and untilId');
- }
-
+export default define(meta, async (ps, user) => {
const query = {
userId: user._id
} as any;
@@ -57,6 +52,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
sort: sort
});
- // Serialize
- res(await Promise.all(history.map(record => pack(record))));
-}));
+ return await Promise.all(history.map(record => pack(record)));
+});
diff --git a/src/server/api/endpoints/i/unpin.ts b/src/server/api/endpoints/i/unpin.ts
index 405c3cb9c5..472e811562 100644
--- a/src/server/api/endpoints/i/unpin.ts
+++ b/src/server/api/endpoints/i/unpin.ts
@@ -3,6 +3,7 @@ import ID, { transform } from '../../../../misc/cafy-id';
import { pack } from '../../../../models/user';
import { removePinned } from '../../../../services/i/pin';
import define from '../../define';
+import { ApiError } from '../../error';
export const meta = {
stability: 'stable',
@@ -24,22 +25,24 @@ export const meta = {
'en-US': 'Target note ID'
}
}
+ },
+
+ errors: {
+ noSuchNote: {
+ message: 'No such note.',
+ code: 'NO_SUCH_NOTE',
+ id: '454170ce-9d63-4a43-9da1-ea10afe81e21'
+ },
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- // Processing
- try {
- await removePinned(user, ps.noteId);
- } catch (e) {
- return rej(e.message);
- }
+export default define(meta, async (ps, user) => {
+ await removePinned(user, ps.noteId).catch(e => {
+ if (e.id === 'b302d4cf-c050-400a-bbb3-be208681f40c') throw new ApiError(meta.errors.noSuchNote);
+ throw e;
+ });
- // Serialize
- const iObj = await pack(user, user, {
+ return await pack(user, user, {
detail: true
});
-
- // Send response
- res(iObj);
-}));
+});
diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts
index 1de7a807c0..df7da46774 100644
--- a/src/server/api/endpoints/i/update.ts
+++ b/src/server/api/endpoints/i/update.ts
@@ -12,6 +12,7 @@ import extractEmojis from '../../../../misc/extract-emojis';
import extractHashtags from '../../../../misc/extract-hashtags';
import * as langmap from 'langmap';
import { updateHashtag } from '../../../../services/update-hashtag';
+import { ApiError } from '../../error';
export const meta = {
desc: {
@@ -131,10 +132,36 @@ export const meta = {
'ja-JP': 'アップロードするメディアをデフォルトで「閲覧注意」として設定するか'
}
},
+ },
+
+ errors: {
+ noSuchAvatar: {
+ message: 'No such avatar file.',
+ code: 'NO_SUCH_AVATAR',
+ id: '539f3a45-f215-4f81-a9a8-31293640207f'
+ },
+
+ noSuchBanner: {
+ message: 'No such banner file.',
+ code: 'NO_SUCH_BANNER',
+ id: '0d8f5629-f210-41c2-9433-735831a58595'
+ },
+
+ avatarNotAnImage: {
+ message: 'The file specified as an avatar is not an image.',
+ code: 'AVATAR_NOT_AN_IMAGE',
+ id: 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191'
+ },
+
+ bannerNotAnImage: {
+ message: 'The file specified as a banner is not an image.',
+ code: 'BANNER_NOT_AN_IMAGE',
+ id: '75aedb19-2afd-4e6d-87fc-67941256fa60'
+ },
}
};
-export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user, app) => {
const isSecure = user != null && app == null;
const updates = {} as any;
@@ -160,8 +187,8 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
_id: ps.avatarId
});
- if (avatar == null) return rej('avatar not found');
- if (!avatar.contentType.startsWith('image/')) return rej('avatar not an image');
+ if (avatar == null) throw new ApiError(meta.errors.noSuchAvatar);
+ if (!avatar.contentType.startsWith('image/')) throw new ApiError(meta.errors.avatarNotAnImage);
updates.avatarUrl = getDriveFileUrl(avatar, true);
@@ -175,8 +202,8 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
_id: ps.bannerId
});
- if (banner == null) return rej('banner not found');
- if (!banner.contentType.startsWith('image/')) return rej('banner not an image');
+ if (banner == null) throw new ApiError(meta.errors.noSuchBanner);
+ if (!banner.contentType.startsWith('image/')) throw new ApiError(meta.errors.bannerNotAnImage);
updates.bannerUrl = getDriveFileUrl(banner, false);
@@ -194,7 +221,7 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
_id: ps.wallpaperId
});
- if (wallpaper == null) return rej('wallpaper not found');
+ if (wallpaper == null) throw new Error('wallpaper not found');
updates.wallpaperUrl = getDriveFileUrl(wallpaper);
@@ -233,15 +260,11 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
$set: updates
});
- // Serialize
const iObj = await pack(user._id, user, {
detail: true,
includeSecrets: isSecure
});
- // Send response
- res(iObj);
-
// Publish meUpdated event
publishMainStream(user._id, 'meUpdated', iObj);
@@ -252,4 +275,6 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
// フォロワーにUpdateを配信
publishToFollowers(user._id);
-}));
+
+ return iObj;
+});
diff --git a/src/server/api/endpoints/i/update_client_setting.ts b/src/server/api/endpoints/i/update_client_setting.ts
index 2157986f10..79cd04e169 100644
--- a/src/server/api/endpoints/i/update_client_setting.ts
+++ b/src/server/api/endpoints/i/update_client_setting.ts
@@ -19,7 +19,7 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
const x: any = {};
x[`clientSettings.${ps.name}`] = ps.value;
@@ -27,11 +27,11 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
$set: x
});
- res();
-
// Publish event
publishMainStream(user._id, 'clientSettingUpdated', {
key: ps.name,
value: ps.value
});
-}));
+
+ return;
+});
diff --git a/src/server/api/endpoints/i/update_email.ts b/src/server/api/endpoints/i/update_email.ts
index 8781c8ac93..c90462d850 100644
--- a/src/server/api/endpoints/i/update_email.ts
+++ b/src/server/api/endpoints/i/update_email.ts
@@ -31,12 +31,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
// Compare password
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
- return rej('incorrect password');
+ throw new Error('incorrect password');
}
await User.update(user._id, {
@@ -47,15 +47,11 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}
});
- // Serialize
const iObj = await pack(user._id, user, {
detail: true,
includeSecrets: true
});
- // Send response
- res(iObj);
-
// Publish meUpdated event
publishMainStream(user._id, 'meUpdated', iObj);
@@ -99,4 +95,6 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
apiLogger.info('Message sent: %s', info.messageId);
});
}
-}));
+
+ return iObj;
+});
diff --git a/src/server/api/endpoints/i/update_home.ts b/src/server/api/endpoints/i/update_home.ts
index 805c52d728..e2c319887f 100644
--- a/src/server/api/endpoints/i/update_home.ts
+++ b/src/server/api/endpoints/i/update_home.ts
@@ -20,14 +20,14 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
await User.update(user._id, {
$set: {
'clientSettings.home': ps.home
}
});
- res();
-
publishMainStream(user._id, 'homeUpdated', ps.home);
-}));
+
+ return;
+});
diff --git a/src/server/api/endpoints/i/update_mobile_home.ts b/src/server/api/endpoints/i/update_mobile_home.ts
index 0e1c3313e0..642e2b3e09 100644
--- a/src/server/api/endpoints/i/update_mobile_home.ts
+++ b/src/server/api/endpoints/i/update_mobile_home.ts
@@ -19,14 +19,14 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+export default define(meta, async (ps, user) => {
await User.update(user._id, {
$set: {
'clientSettings.mobileHome': ps.home
}
});
- res();
-
publishMainStream(user._id, 'mobileHomeUpdated', ps.home);
-}));
+
+ return;
+});
diff --git a/src/server/api/endpoints/i/update_widget.ts b/src/server/api/endpoints/i/update_widget.ts
index e3e91c1f08..67d342278d 100644
--- a/src/server/api/endpoints/i/update_widget.ts
+++ b/src/server/api/endpoints/i/update_widget.ts
@@ -19,8 +19,8 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- if (ps.id == null && ps.data == null) return rej('you need to set id and data params if home param unset');
+export default define(meta, async (ps, user) => {
+ if (ps.id == null && ps.data == null) throw new Error('you need to set id and data params if home param unset');
let widget;
@@ -81,8 +81,8 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
id: ps.id, data: ps.data
});
- res();
+ return;
} else {
- rej('widget not found');
+ throw new Error('widget not found');
}
-}));
+});