diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-02-22 11:46:58 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-22 11:46:58 +0900 |
| commit | 2756f553c68082342a784ef716c62da6cea6f3ca (patch) | |
| tree | 1e0364ca9ddc1fd88e311f0687746f44e007effd /src/server/api/endpoints/drive/files/delete.ts | |
| parent | Update CHANGELOG.md (diff) | |
| download | misskey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.gz misskey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.bz2 misskey-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/drive/files/delete.ts')
| -rw-r--r-- | src/server/api/endpoints/drive/files/delete.ts | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts index c322587d8f..2dc493efeb 100644 --- a/src/server/api/endpoints/drive/files/delete.ts +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -4,6 +4,7 @@ import DriveFile from '../../../../../models/drive-file'; import del from '../../../../../services/drive/delete-file'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; +import { ApiError } from '../../../error'; export const meta = { stability: 'stable', @@ -26,10 +27,24 @@ export const meta = { 'en-US': 'Target file ID' } } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: '908939ec-e52b-4458-b395-1025195cea58' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '5eb8d909-2540-4970-90b8-dd6f86088121' + }, } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user) => { // Fetch file const file = await DriveFile .findOne({ @@ -37,11 +52,11 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { }); if (file === null) { - return rej('file-not-found'); + throw new ApiError(meta.errors.noSuchFile); } if (!user.isAdmin && !user.isModerator && !file.metadata.userId.equals(user._id)) { - return rej('access denied'); + throw new ApiError(meta.errors.accessDenied); } // Delete @@ -50,5 +65,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Publish fileDeleted event publishDriveStream(user._id, 'fileDeleted', file._id); - res(); -})); + return; +}); |