summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/drive/folders
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-02 03:32:24 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-02 03:32:24 +0900
commit931bdc6aace5e7aa71ffdfb470e208ead78a2a53 (patch)
treeeee6d7bf5f5480b883bb601517b4d9db03f31e9f /src/server/api/endpoints/drive/folders
parentRefactoring (diff)
downloadsharkey-931bdc6aace5e7aa71ffdfb470e208ead78a2a53.tar.gz
sharkey-931bdc6aace5e7aa71ffdfb470e208ead78a2a53.tar.bz2
sharkey-931bdc6aace5e7aa71ffdfb470e208ead78a2a53.zip
Refactoring, Clean up and bug fixes
Diffstat (limited to 'src/server/api/endpoints/drive/folders')
-rw-r--r--src/server/api/endpoints/drive/folders/create.ts13
-rw-r--r--src/server/api/endpoints/drive/folders/delete.ts8
-rw-r--r--src/server/api/endpoints/drive/folders/find.ts33
-rw-r--r--src/server/api/endpoints/drive/folders/show.ts8
-rw-r--r--src/server/api/endpoints/drive/folders/update.ts19
5 files changed, 51 insertions, 30 deletions
diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts
index cca25b0596..b51fb0264e 100644
--- a/src/server/api/endpoints/drive/folders/create.ts
+++ b/src/server/api/endpoints/drive/folders/create.ts
@@ -1,4 +1,4 @@
-import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+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';
@@ -17,20 +17,23 @@ export const meta = {
kind: 'drive-write',
params: {
- name: $.str.optional.pipe(isValidFolderName).note({
+ name: {
+ validator: $.str.optional.pipe(isValidFolderName),
default: 'Untitled',
desc: {
'ja-JP': 'フォルダ名',
'en-US': 'Folder name'
}
- }),
+ },
- parentId: $.type(ID).optional.nullable.note({
+ parentId: {
+ validator: $.type(ID).optional.nullable,
+ transform: transform,
desc: {
'ja-JP': '親フォルダID',
'en-US': 'Parent folder ID'
}
- })
+ }
}
};
diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts
index 41f9108788..304666bdc9 100644
--- a/src/server/api/endpoints/drive/folders/delete.ts
+++ b/src/server/api/endpoints/drive/folders/delete.ts
@@ -1,4 +1,4 @@
-import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+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';
@@ -18,12 +18,14 @@ export const meta = {
kind: 'drive-write',
params: {
- folderId: $.type(ID).note({
+ folderId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のフォルダID',
'en-US': 'Target folder ID'
}
- })
+ }
}
};
diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts
index ec3c1d2e36..3d24d18685 100644
--- a/src/server/api/endpoints/drive/folders/find.ts
+++ b/src/server/api/endpoints/drive/folders/find.ts
@@ -1,30 +1,39 @@
-import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+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';
export const meta = {
requireCredential: true,
- kind: 'drive-read'
+ kind: 'drive-read',
+
+ params: {
+ name: {
+ validator: $.str
+ },
+
+ parentId: {
+ validator: $.type(ID).optional.nullable,
+ transform: transform,
+ default: null as any,
+ desc: {
+ 'ja-JP': 'フォルダID'
+ }
+ },
+ }
};
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
- // Get 'name' parameter
- const [name, nameErr] = $.str.get(params.name);
- if (nameErr) return rej('invalid name param');
-
- // Get 'parentId' parameter
- const [parentId = null, parentIdErr] = $.type(ID).optional.nullable.get(params.parentId);
- if (parentIdErr) return rej('invalid parentId param');
+ const [ps, psErr] = getParams(meta, params);
+ if (psErr) return rej(psErr);
- // Issue query
const folders = await DriveFolder
.find({
name: name,
userId: user._id,
- parentId: parentId
+ parentId: ps.parentId
});
- // Serialize
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 f01c75d957..b7d8f0a29b 100644
--- a/src/server/api/endpoints/drive/folders/show.ts
+++ b/src/server/api/endpoints/drive/folders/show.ts
@@ -1,4 +1,4 @@
-import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+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';
@@ -16,12 +16,14 @@ export const meta = {
kind: 'drive-read',
params: {
- folderId: $.type(ID).note({
+ folderId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のフォルダID',
'en-US': 'Target folder ID'
}
- })
+ }
}
};
diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts
index b041a15920..53bb14bfe7 100644
--- a/src/server/api/endpoints/drive/folders/update.ts
+++ b/src/server/api/endpoints/drive/folders/update.ts
@@ -1,4 +1,4 @@
-import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+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';
@@ -17,26 +17,31 @@ export const meta = {
kind: 'drive-write',
params: {
- folderId: $.type(ID).note({
+ folderId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のフォルダID',
'en-US': 'Target folder ID'
}
- }),
+ },
- name: $.str.optional.pipe(isValidFolderName).note({
+ name: {
+ validator: $.str.optional.pipe(isValidFolderName),
desc: {
'ja-JP': 'フォルダ名',
'en-US': 'Folder name'
}
- }),
+ },
- parentId: $.type(ID).optional.nullable.note({
+ parentId: {
+ validator: $.type(ID).optional.nullable,
+ transform: transform,
desc: {
'ja-JP': '親フォルダID',
'en-US': 'Parent folder ID'
}
- })
+ }
}
};