From 174f8022eb5828db3e9af01afcf72fe7526c4c57 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 2 Nov 2018 13:47:44 +0900 Subject: Refactor --- src/server/api/endpoints/drive/files.ts | 14 ++++------- .../api/endpoints/drive/files/attached_notes.ts | 10 +++----- .../api/endpoints/drive/files/check_existence.ts | 10 +++----- src/server/api/endpoints/drive/files/create.ts | 29 +++++----------------- src/server/api/endpoints/drive/files/delete.ts | 10 +++----- src/server/api/endpoints/drive/files/find.ts | 10 +++----- src/server/api/endpoints/drive/files/show.ts | 10 +++----- src/server/api/endpoints/drive/files/update.ts | 10 +++----- .../api/endpoints/drive/files/upload_from_url.ts | 11 +++----- src/server/api/endpoints/drive/folders.ts | 10 +++----- src/server/api/endpoints/drive/folders/create.ts | 10 +++----- src/server/api/endpoints/drive/folders/delete.ts | 10 +++----- src/server/api/endpoints/drive/folders/find.ts | 10 +++----- src/server/api/endpoints/drive/folders/show.ts | 10 +++----- src/server/api/endpoints/drive/folders/update.ts | 10 +++----- src/server/api/endpoints/drive/stream.ts | 10 +++----- 16 files changed, 54 insertions(+), 130 deletions(-) (limited to 'src/server/api/endpoints/drive') diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts index ae4e2249ff..27f101562d 100644 --- a/src/server/api/endpoints/drive/files.ts +++ b/src/server/api/endpoints/drive/files.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../misc/cafy-id'; import DriveFile, { packMany } from '../../../../models/drive-file'; -import { ILocalUser } from '../../../../models/user'; -import getParams from '../../get-params'; +import define from '../../define'; export const meta = { desc: { @@ -41,13 +40,10 @@ export const meta = { } }; -export default async (params: any, user: ILocalUser) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) throw psErr; - +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) { - throw 'cannot set sinceId and untilId'; + return rej('cannot set sinceId and untilId'); } const sort = { @@ -81,5 +77,5 @@ export default async (params: any, user: ILocalUser) => { sort: sort }); - return await packMany(files); -}; + res(await packMany(files)); +})); diff --git a/src/server/api/endpoints/drive/files/attached_notes.ts b/src/server/api/endpoints/drive/files/attached_notes.ts index ad9a2370b1..ec5acbd751 100644 --- a/src/server/api/endpoints/drive/files/attached_notes.ts +++ b/src/server/api/endpoints/drive/files/attached_notes.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFile from '../../../../../models/drive-file'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; import { packMany } from '../../../../../models/note'; export const meta = { @@ -28,10 +27,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Fetch file const file = await DriveFile .findOne({ @@ -47,4 +43,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = res(await packMany(file.metadata.attachedNoteIds || [], user, { detail: true })); -}); +})); diff --git a/src/server/api/endpoints/drive/files/check_existence.ts b/src/server/api/endpoints/drive/files/check_existence.ts index a5bdad5fb9..d3ba4b386d 100644 --- a/src/server/api/endpoints/drive/files/check_existence.ts +++ b/src/server/api/endpoints/drive/files/check_existence.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import DriveFile, { pack } from '../../../../../models/drive-file'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { desc: { @@ -23,10 +22,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { const file = await DriveFile.findOne({ md5: ps.md5, 'metadata.userId': user._id, @@ -38,4 +34,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = } else { res({ file: await pack(file) }); } -}); +})); diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index 2653eba655..3c334a7c1f 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,10 +1,8 @@ -import * as fs from 'fs'; const ms = require('ms'); import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import { validateFileName, pack } from '../../../../../models/drive-file'; import create from '../../../../../services/drive/add-file'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { desc: { @@ -52,11 +50,7 @@ export const meta = { } }; -export default async (file: any, params: any, user: ILocalUser): Promise => { - if (file == null) { - throw 'file is required'; - } - +export default define(meta, (ps, user, app, file, cleanup) => new Promise(async (res, rej) => { // Get 'name' parameter let name = file.originalname; if (name !== undefined && name !== null) { @@ -66,35 +60,24 @@ export default async (file: any, params: any, user: ILocalUser): Promise => } else if (name === 'blob') { name = null; } else if (!validateFileName(name)) { - throw 'invalid name'; + return rej('invalid name'); } } else { name = null; } - function cleanup() { - fs.unlink(file.path, () => {}); - } - - const [ps, psErr] = getParams(meta, params); - if (psErr) { - cleanup(); - throw psErr; - } - try { // Create file const driveFile = await create(user, file.path, name, null, ps.folderId, ps.force, false, null, null, ps.isSensitive); cleanup(); - // Serialize - return pack(driveFile); + res(pack(driveFile)); } catch (e) { console.error(e); cleanup(); - throw e; + rej(e); } -}; +})); diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts index af7e192655..7367c8fbb6 100644 --- a/src/server/api/endpoints/drive/files/delete.ts +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -2,8 +2,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id import DriveFile from '../../../../../models/drive-file'; import del from '../../../../../services/drive/delete-file'; import { publishDriveStream } from '../../../../../stream'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { stability: 'stable', @@ -29,10 +28,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Fetch file const file = await DriveFile .findOne({ @@ -51,4 +47,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = publishDriveStream(user._id, 'fileDeleted', file._id); res(); -}); +})); diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts index 0ac110c110..1f9c3de1cf 100644 --- a/src/server/api/endpoints/drive/files/find.ts +++ b/src/server/api/endpoints/drive/files/find.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFile, { pack } from '../../../../../models/drive-file'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { requireCredential: true, @@ -24,10 +23,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { const files = await DriveFile .find({ filename: name, @@ -36,4 +32,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = }); res(await Promise.all(files.map(file => pack(file)))); -}); +})); diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts index ce0812c508..450a97065b 100644 --- a/src/server/api/endpoints/drive/files/show.ts +++ b/src/server/api/endpoints/drive/files/show.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFile, { pack } from '../../../../../models/drive-file'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { stability: 'stable', @@ -27,10 +26,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Fetch file const file = await DriveFile .findOne({ @@ -49,4 +45,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = }); res(_file); -}); +})); diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts index 7c335e5bc6..4efec3dc2a 100644 --- a/src/server/api/endpoints/drive/files/update.ts +++ b/src/server/api/endpoints/drive/files/update.ts @@ -2,8 +2,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id import DriveFolder from '../../../../../models/drive-folder'; import DriveFile, { validateFileName, pack } from '../../../../../models/drive-file'; import { publishDriveStream } from '../../../../../stream'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; import Note from '../../../../../models/note'; export const meta = { @@ -54,10 +53,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Fetch file const file = await DriveFile .findOne({ @@ -122,4 +118,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = // Publish fileUpdated event publishDriveStream(user._id, 'fileUpdated', fileObj); -}); +})); diff --git a/src/server/api/endpoints/drive/files/upload_from_url.ts b/src/server/api/endpoints/drive/files/upload_from_url.ts index 3d19725275..35309d623e 100644 --- a/src/server/api/endpoints/drive/files/upload_from_url.ts +++ b/src/server/api/endpoints/drive/files/upload_from_url.ts @@ -3,7 +3,7 @@ const ms = require('ms'); import { pack } from '../../../../../models/drive-file'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { desc: { @@ -33,9 +33,6 @@ export const meta = { } }; -export default async (params: any, user: ILocalUser): Promise => { - const [ps, psErr] = getParams(meta, params); - if (psErr) throw psErr; - - return pack(await uploadFromUrl(ps.url, user, ps.folderId)); -}; +export default define(meta, (ps, user) => new Promise(async (res, rej) => { + res(pack(await uploadFromUrl(ps.url, user, ps.folderId))); +})); diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts index 95700ee26c..3a76ecd27d 100644 --- a/src/server/api/endpoints/drive/folders.ts +++ b/src/server/api/endpoints/drive/folders.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../misc/cafy-id'; import DriveFolder, { pack } from '../../../../models/drive-folder'; -import { ILocalUser } from '../../../../models/user'; -import getParams from '../../get-params'; +import define from '../../define'; export const meta = { desc: { @@ -37,10 +36,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +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'); @@ -71,4 +67,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = }); res(await Promise.all(folders.map(folder => pack(folder)))); -}); +})); diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts index b51fb0264e..63c6a436d4 100644 --- a/src/server/api/endpoints/drive/folders/create.ts +++ b/src/server/api/endpoints/drive/folders/create.ts @@ -1,8 +1,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFolder, { isValidFolderName, pack } from '../../../../../models/drive-folder'; import { publishDriveStream } from '../../../../../stream'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { stability: 'stable', @@ -37,10 +36,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // If the parent folder is specified let parent = null; if (ps.parentId) { @@ -72,4 +68,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = // Publish folderCreated event publishDriveStream(user._id, 'folderCreated', folderObj); -}); +})); diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts index 304666bdc9..019c5eb00b 100644 --- a/src/server/api/endpoints/drive/folders/delete.ts +++ b/src/server/api/endpoints/drive/folders/delete.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFolder from '../../../../../models/drive-folder'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; import { publishDriveStream } from '../../../../../stream'; import DriveFile from '../../../../../models/drive-file'; @@ -29,10 +28,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Get folder const folder = await DriveFolder .findOne({ @@ -59,4 +55,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = publishDriveStream(user._id, 'folderDeleted', folder._id); res(); -}); +})); diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts index 3d24d18685..a8ce012f10 100644 --- a/src/server/api/endpoints/drive/folders/find.ts +++ b/src/server/api/endpoints/drive/folders/find.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFolder, { pack } from '../../../../../models/drive-folder'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { requireCredential: true, @@ -24,10 +23,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { const folders = await DriveFolder .find({ name: name, @@ -36,4 +32,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = }); res(await Promise.all(folders.map(folder => pack(folder)))); -}); +})); diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts index b7d8f0a29b..49e51544b6 100644 --- a/src/server/api/endpoints/drive/folders/show.ts +++ b/src/server/api/endpoints/drive/folders/show.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFolder, { pack } from '../../../../../models/drive-folder'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { stability: 'stable', @@ -27,10 +26,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Get folder const folder = await DriveFolder .findOne({ @@ -46,4 +42,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = res(await pack(folder, { detail: true })); -}); +})); diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts index 53bb14bfe7..f10f9c820d 100644 --- a/src/server/api/endpoints/drive/folders/update.ts +++ b/src/server/api/endpoints/drive/folders/update.ts @@ -1,8 +1,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import DriveFolder, { isValidFolderName, pack } from '../../../../../models/drive-folder'; import { publishDriveStream } from '../../../../../stream'; -import { ILocalUser } from '../../../../../models/user'; -import getParams from '../../../get-params'; +import define from '../../../define'; export const meta = { stability: 'stable', @@ -45,10 +44,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +export default define(meta, (ps, user) => new Promise(async (res, rej) => { // Fetch folder const folder = await DriveFolder .findOne({ @@ -122,4 +118,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = // Publish folderUpdated event publishDriveStream(user._id, 'folderUpdated', folderObj); -}); +})); diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts index ecf405fe64..804ecf50d9 100644 --- a/src/server/api/endpoints/drive/stream.ts +++ b/src/server/api/endpoints/drive/stream.ts @@ -1,7 +1,6 @@ import $ from 'cafy'; import ID, { transform } from '../../../../misc/cafy-id'; import DriveFile, { packMany } from '../../../../models/drive-file'; -import { ILocalUser } from '../../../../models/user'; -import getParams from '../../get-params'; +import define from '../../define'; export const meta = { requireCredential: true, @@ -30,10 +29,7 @@ export const meta = { } }; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const [ps, psErr] = getParams(meta, params); - if (psErr) return rej(psErr); - +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'); @@ -70,4 +66,4 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = }); res(await packMany(files)); -}); +})); -- cgit v1.2.3-freya