summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/drive
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-07-16 03:43:36 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-07-16 03:43:36 +0900
commit1744316656f742dddc6f314aa8bc3289714f1311 (patch)
treefa5c69840097adc70a0f2e3278c52dfacf5efbf1 /src/server/api/endpoints/drive
parent良い感じに (diff)
downloadsharkey-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.ts40
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();