summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/drive
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
commit723d3e6871a6039330e870d94d187367e9c579aa (patch)
tree637cbe640d99d6f0fc8890fdc85497a31817596f /src/server/api/endpoints/drive
parentMerge branch 'develop' (diff)
parent11.3.0 (diff)
downloadmisskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.gz
misskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.bz2
misskey-723d3e6871a6039330e870d94d187367e9c579aa.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/drive')
-rw-r--r--src/server/api/endpoints/drive/files.ts10
-rw-r--r--src/server/api/endpoints/drive/files/attached-notes.ts21
-rw-r--r--src/server/api/endpoints/drive/files/check-existence.ts8
-rw-r--r--src/server/api/endpoints/drive/files/create.ts7
-rw-r--r--src/server/api/endpoints/drive/files/find-by-hash.ts44
-rw-r--r--src/server/api/endpoints/drive/files/find.ts13
-rw-r--r--src/server/api/endpoints/drive/files/show.ts5
-rw-r--r--src/server/api/endpoints/drive/folders.ts10
-rw-r--r--src/server/api/endpoints/drive/folders/find.ts10
-rw-r--r--src/server/api/endpoints/drive/folders/show.ts5
-rw-r--r--src/server/api/endpoints/drive/stream.ts10
11 files changed, 115 insertions, 28 deletions
diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts
index 4e4db6c780..493e14464c 100644
--- a/src/server/api/endpoints/drive/files.ts
+++ b/src/server/api/endpoints/drive/files.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFiles } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -41,10 +42,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFile',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts
index 7214463dde..f770bc7136 100644
--- a/src/server/api/endpoints/drive/files/attached-notes.ts
+++ b/src/server/api/endpoints/drive/files/attached-notes.ts
@@ -2,7 +2,8 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
-import { DriveFiles } from '../../../../../models';
+import { DriveFiles, Notes } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -29,10 +30,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
@@ -55,8 +59,11 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.noSuchFile);
}
- /* v11 TODO
- return await packMany(file.metadata.attachedNoteIds || [], user, {
+ const notes = await Notes.createQueryBuilder('note')
+ .where(':file = ANY(note.fileIds)', { file: file.id })
+ .getMany();
+
+ return await Notes.packMany(notes, 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 3a87a9497f..ab19566f1c 100644
--- a/src/server/api/endpoints/drive/files/check-existence.ts
+++ b/src/server/api/endpoints/drive/files/check-existence.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -24,7 +25,8 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
},
};
@@ -34,7 +36,5 @@ export default define(meta, async (ps, user) => {
userId: user.id,
});
- return {
- file: file ? await DriveFiles.pack(file, { self: true }) : null
- };
+ return file != null;
});
diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts
index 340a39a41c..0f81a1da99 100644
--- a/src/server/api/endpoints/drive/files/create.ts
+++ b/src/server/api/endpoints/drive/files/create.ts
@@ -6,6 +6,7 @@ import define from '../../../define';
import { apiLogger } from '../../../logger';
import { ApiError } from '../../../error';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -56,7 +57,9 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
},
errors: {
@@ -87,7 +90,7 @@ export default define(meta, async (ps, user, app, file, cleanup) => {
try {
// Create file
const driveFile = await create(user, file.path, name, null, ps.folderId, ps.force, false, null, null, ps.isSensitive);
- return DriveFiles.pack(driveFile, { self: true });
+ return await DriveFiles.pack(driveFile, { self: true });
} catch (e) {
apiLogger.error(e);
throw new ApiError();
diff --git a/src/server/api/endpoints/drive/files/find-by-hash.ts b/src/server/api/endpoints/drive/files/find-by-hash.ts
new file mode 100644
index 0000000000..d56e63bc59
--- /dev/null
+++ b/src/server/api/endpoints/drive/files/find-by-hash.ts
@@ -0,0 +1,44 @@
+import $ from 'cafy';
+import define from '../../../define';
+import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
+
+export const meta = {
+ desc: {
+ 'ja-JP': '与えられたMD5ハッシュ値を持つファイルを取得します。',
+ },
+
+ tags: ['drive'],
+
+ requireCredential: true,
+
+ kind: 'read:drive',
+
+ params: {
+ md5: {
+ validator: $.str,
+ desc: {
+ 'ja-JP': 'ファイルのMD5ハッシュ'
+ }
+ }
+ },
+
+ res: {
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
+ items: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
+ },
+};
+
+export default define(meta, async (ps, user) => {
+ const files = await DriveFiles.find({
+ md5: ps.md5,
+ userId: user.id,
+ });
+
+ return await DriveFiles.packMany(files, { self: true });
+});
diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts
index 265850f84c..82b9a97b6d 100644
--- a/src/server/api/endpoints/drive/files/find.ts
+++ b/src/server/api/endpoints/drive/files/find.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
requireCredential: true,
@@ -22,7 +23,17 @@ export const meta = {
'ja-JP': 'フォルダID'
}
},
- }
+ },
+
+ res: {
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
+ items: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
+ },
};
export default define(meta, async (ps, user) => {
diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts
index e8c0e683c9..8e74361f9c 100644
--- a/src/server/api/endpoints/drive/files/show.ts
+++ b/src/server/api/endpoints/drive/files/show.ts
@@ -4,6 +4,7 @@ import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFile } from '../../../../../models/entities/drive-file';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -38,7 +39,9 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
},
errors: {
diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts
index 08ae2ff709..dc3174cd2a 100644
--- a/src/server/api/endpoints/drive/folders.ts
+++ b/src/server/api/endpoints/drive/folders.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFolders } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -37,10 +38,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFolder',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts
index f0989ec5ae..0368d026c3 100644
--- a/src/server/api/endpoints/drive/folders/find.ts
+++ b/src/server/api/endpoints/drive/folders/find.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { DriveFolders } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
tags: ['drive'],
@@ -25,10 +26,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFolder',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts
index 60507e7d7f..a020b46aa9 100644
--- a/src/server/api/endpoints/drive/folders/show.ts
+++ b/src/server/api/endpoints/drive/folders/show.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFolders } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -29,7 +30,9 @@ export const meta = {
},
res: {
- type: 'DriveFolder',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
},
errors: {
diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts
index 96d9f82421..db17979a4b 100644
--- a/src/server/api/endpoints/drive/stream.ts
+++ b/src/server/api/endpoints/drive/stream.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFiles } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['drive'],
@@ -31,10 +32,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFile',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
},
};