diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-07-16 03:43:36 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-07-16 03:43:36 +0900 |
| commit | 1744316656f742dddc6f314aa8bc3289714f1311 (patch) | |
| tree | fa5c69840097adc70a0f2e3278c52dfacf5efbf1 /src/server/api/endpoints/drive | |
| parent | 良い感じに (diff) | |
| download | sharkey-1744316656f742dddc6f314aa8bc3289714f1311.tar.gz sharkey-1744316656f742dddc6f314aa8bc3289714f1311.tar.bz2 sharkey-1744316656f742dddc6f314aa8bc3289714f1311.zip | |
良い感じに
Diffstat (limited to 'src/server/api/endpoints/drive')
| -rw-r--r-- | src/server/api/endpoints/drive/files/create.ts | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index 401ec23d82..c5eb29e1af 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,8 +1,36 @@ import * as fs from 'fs'; +const ms = require('ms'); import $ from 'cafy'; import ID 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'; + +export const meta = { + desc: { + ja: 'ドライブにファイルをアップロードします。' + }, + + requireCredential: true, + + limit: { + duration: ms('1hour'), + max: 100 + }, + + withFile: true, + + kind: 'drive-write', + + params: { + folderId: $.type(ID).optional.nullable.note({ + default: null, + desc: { + ja: 'フォルダID' + } + }) + } +}; /** * Create a file @@ -27,17 +55,19 @@ export default async (file: any, params: any, user: ILocalUser): Promise<any> => name = null; } - // Get 'folderId' parameter - const [folderId = null, folderIdErr] = $.type(ID).optional.nullable.get(params.folderId); - if (folderIdErr) throw 'invalid folderId param'; - 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, folderId); + const driveFile = await create(user, file.path, name, null, ps.folderId); cleanup(); |