summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/drive
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints/drive')
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/check-existence.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/create.ts19
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/delete.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/find.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/show.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/update.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders/create.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders/delete.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders/find.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders/show.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/folders/update.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/drive/stream.ts13
17 files changed, 101 insertions, 78 deletions
diff --git a/packages/backend/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts
index 00ebb51e30..a5c0a626a1 100644
--- a/packages/backend/src/server/api/endpoints/drive/files.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -36,16 +36,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId)
.andWhere('file.userId = :userId', { userId: user.id });
diff --git a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts
index c8317c1cc8..835dde8058 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts
@@ -7,7 +7,7 @@ import { DriveFiles, Notes } from '@/models/index';
export const meta = {
tags: ['drive', 'notes'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -18,11 +18,11 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Note',
},
},
@@ -34,8 +34,9 @@ export const meta = {
id: 'c118ece3-2e4b-4296-99d1-51756e32d232',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Fetch file
const file = await DriveFiles.findOne({
diff --git a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts
index a6db160d2f..a45d357ee8 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts
@@ -5,7 +5,7 @@ import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -16,11 +16,12 @@ export const meta = {
},
res: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const file = await DriveFiles.findOne({
md5: ps.md5,
diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts
index 5523ae1967..dd65ab0611 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/create.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/create.ts
@@ -1,16 +1,17 @@
import ms from 'ms';
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
-import create from '@/services/drive/add-file';
+import { addFile } from '@/services/drive/add-file';
import define from '../../../define';
import { apiLogger } from '../../../logger';
import { ApiError } from '../../../error';
import { DriveFiles } from '@/models/index';
+import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
limit: {
duration: ms('1hour'),
@@ -32,6 +33,11 @@ export const meta = {
default: null,
},
+ comment: {
+ validator: $.optional.nullable.str.max(DB_MAX_IMAGE_COMMENT_LENGTH),
+ default: null,
+ },
+
isSensitive: {
validator: $.optional.either($.bool, $.str),
default: false,
@@ -46,8 +52,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
@@ -58,8 +64,9 @@ export const meta = {
id: 'f449b209-0c60-4e51-84d5-29486263bfd4',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user, _, file, cleanup) => {
// Get 'name' parameter
let name = ps.name || file.originalname;
@@ -78,7 +85,7 @@ export default define(meta, async (ps, user, _, file, cleanup) => {
try {
// Create file
- const driveFile = await create(user, file.path, name, null, ps.folderId, ps.force, false, null, null, ps.isSensitive);
+ const driveFile = await addFile({ user, path: file.path, name, comment: ps.comment, folderId: ps.folderId, force: ps.force, sensitive: ps.isSensitive });
return await DriveFiles.pack(driveFile, { self: true });
} catch (e) {
apiLogger.error(e);
diff --git a/packages/backend/src/server/api/endpoints/drive/files/delete.ts b/packages/backend/src/server/api/endpoints/drive/files/delete.ts
index 3a8e4b11f4..308beb58a4 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/delete.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/delete.ts
@@ -9,7 +9,7 @@ import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -32,8 +32,9 @@ export const meta = {
id: '5eb8d909-2540-4970-90b8-dd6f86088121',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const file = await DriveFiles.findOne(ps.fileId);
diff --git a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts
index 16717149ac..dc74dcb7e6 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts
@@ -5,7 +5,7 @@ import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -16,16 +16,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const files = await DriveFiles.find({
md5: ps.md5,
diff --git a/packages/backend/src/server/api/endpoints/drive/files/find.ts b/packages/backend/src/server/api/endpoints/drive/files/find.ts
index 108e08593a..2244df13cd 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/find.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/find.ts
@@ -4,7 +4,7 @@ import define from '../../../define';
import { DriveFiles } from '@/models/index';
export const meta = {
- requireCredential: true as const,
+ requireCredential: true,
tags: ['drive'],
@@ -22,16 +22,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const files = await DriveFiles.find({
name: ps.name,
diff --git a/packages/backend/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts
index 96f8e5c03a..18b17c4653 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/show.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/show.ts
@@ -8,7 +8,7 @@ import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -23,8 +23,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
@@ -47,8 +47,9 @@ export const meta = {
id: '89674805-722c-440c-8d88-5641830dc3e4',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
let file: DriveFile | undefined;
diff --git a/packages/backend/src/server/api/endpoints/drive/files/update.ts b/packages/backend/src/server/api/endpoints/drive/files/update.ts
index 04b2db9cf4..b7ca80e83c 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/update.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/update.ts
@@ -9,7 +9,7 @@ import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -60,12 +60,13 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const file = await DriveFiles.findOne(ps.fileId);
diff --git a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts
index 8a2fbc36b5..40da1a4fb4 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import ms from 'ms';
-import uploadFromUrl from '@/services/drive/upload-from-url';
+import { uploadFromUrl } from '@/services/drive/upload-from-url';
import define from '../../../define';
import { DriveFiles } from '@/models/index';
import { publishMainStream } from '@/services/stream';
@@ -15,7 +15,7 @@ export const meta = {
max: 60,
},
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -50,10 +50,11 @@ export const meta = {
default: false,
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
- uploadFromUrl(ps.url, user, ps.folderId, null, ps.isSensitive, ps.force, false, ps.comment).then(file => {
+ uploadFromUrl({ url: ps.url, user, folderId: ps.folderId, sensitive: ps.isSensitive, force: ps.force, comment: ps.comment }).then(file => {
DriveFiles.pack(file, { self: true }).then(packedFile => {
publishMainStream(user.id, 'urlUploadFinished', {
marker: ps.marker,
diff --git a/packages/backend/src/server/api/endpoints/drive/folders.ts b/packages/backend/src/server/api/endpoints/drive/folders.ts
index cd2d1743c8..8f8d1d2c0a 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -32,16 +32,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFolder',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(DriveFolders.createQueryBuilder('folder'), ps.sinceId, ps.untilId)
.andWhere('folder.userId = :userId', { userId: user.id });
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/create.ts b/packages/backend/src/server/api/endpoints/drive/folders/create.ts
index 9ae59d4b49..38ed17e0e5 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/create.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/create.ts
@@ -9,7 +9,7 @@ import { genId } from '@/misc/gen-id';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -37,8 +37,9 @@ export const meta = {
optional: false as const, nullable: false as const,
ref: 'DriveFolder',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// If the parent folder is specified
let parent = null;
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts
index bfd3361e76..13716fccea 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts
@@ -8,7 +8,7 @@ import { DriveFolders, DriveFiles } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -31,8 +31,9 @@ export const meta = {
id: 'b0fc8a17-963c-405d-bfbc-859a487295e1',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Get folder
const folder = await DriveFolders.findOne({
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/find.ts b/packages/backend/src/server/api/endpoints/drive/folders/find.ts
index 872eabef98..911f51d78b 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/find.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/find.ts
@@ -6,7 +6,7 @@ import { DriveFolders } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -22,16 +22,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFolder',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const folders = await DriveFolders.find({
name: ps.name,
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/show.ts b/packages/backend/src/server/api/endpoints/drive/folders/show.ts
index 63b5bc9e77..58a6dd3c06 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/show.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/show.ts
@@ -7,7 +7,7 @@ import { DriveFolders } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -18,8 +18,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFolder',
},
@@ -30,8 +30,9 @@ export const meta = {
id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Get folder
const folder = await DriveFolders.findOne({
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts
index e547808866..5b0cccd1c6 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/update.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/update.ts
@@ -8,7 +8,7 @@ import { DriveFolders } from '@/models/index';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:drive',
@@ -47,12 +47,13 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFolder',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Fetch folder
const folder = await DriveFolders.findOne({
diff --git a/packages/backend/src/server/api/endpoints/drive/stream.ts b/packages/backend/src/server/api/endpoints/drive/stream.ts
index e3031f75b2..9ba7804946 100644
--- a/packages/backend/src/server/api/endpoints/drive/stream.ts
+++ b/packages/backend/src/server/api/endpoints/drive/stream.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['drive'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:drive',
@@ -31,16 +31,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'DriveFile',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId)
.andWhere('file.userId = :userId', { userId: user.id });