summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-24 15:40:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-09-24 15:40:38 +0900
commit841e6ff901a5a11769bd419ccf8b17c0085d938c (patch)
treed1f448c49969d3229520d3588440c4fe71964c72 /packages/backend/src/server
parentimprove moderation log (diff)
downloadsharkey-841e6ff901a5a11769bd419ccf8b17c0085d938c.tar.gz
sharkey-841e6ff901a5a11769bd419ccf8b17c0085d938c.tar.bz2
sharkey-841e6ff901a5a11769bd419ccf8b17c0085d938c.zip
improve moderation log
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/update.ts54
1 files changed, 4 insertions, 50 deletions
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 d26ed63474..7db88e152c 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/update.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/update.ts
@@ -4,12 +4,11 @@
*/
import { Inject, Injectable } from '@nestjs/common';
-import type { DriveFilesRepository, DriveFoldersRepository } from '@/models/_.js';
+import type { DriveFilesRepository } from '@/models/_.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
-import { GlobalEventService } from '@/core/GlobalEventService.js';
import { DI } from '@/di-symbols.js';
import { RoleService } from '@/core/RoleService.js';
+import { DriveService } from '@/core/DriveService.js';
import { ApiError } from '../../../error.js';
export const meta = {
@@ -77,16 +76,11 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
@Inject(DI.driveFilesRepository)
private driveFilesRepository: DriveFilesRepository,
- @Inject(DI.driveFoldersRepository)
- private driveFoldersRepository: DriveFoldersRepository,
-
- private driveFileEntityService: DriveFileEntityService,
+ private driveService: DriveService,
private roleService: RoleService,
- private globalEventService: GlobalEventService,
) {
super(meta, paramDef, async (ps, me) => {
const file = await this.driveFilesRepository.findOneBy({ id: ps.fileId });
- const alwaysMarkNsfw = (await this.roleService.getUserPolicies(me.id)).alwaysMarkNsfw;
if (file == null) {
throw new ApiError(meta.errors.noSuchFile);
}
@@ -95,47 +89,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
throw new ApiError(meta.errors.accessDenied);
}
- if (ps.name) file.name = ps.name;
- if (!this.driveFileEntityService.validateFileName(file.name)) {
- throw new ApiError(meta.errors.invalidFileName);
- }
-
- if (ps.comment !== undefined) file.comment = ps.comment;
-
- if (ps.isSensitive !== undefined && ps.isSensitive !== file.isSensitive && alwaysMarkNsfw && !ps.isSensitive) {
- throw new ApiError(meta.errors.restrictedByRole);
- }
-
- if (ps.isSensitive !== undefined) file.isSensitive = ps.isSensitive;
-
- if (ps.folderId !== undefined) {
- if (ps.folderId === null) {
- file.folderId = null;
- } else {
- const folder = await this.driveFoldersRepository.findOneBy({
- id: ps.folderId,
- userId: me.id,
- });
-
- if (folder == null) {
- throw new ApiError(meta.errors.noSuchFolder);
- }
-
- file.folderId = folder.id;
- }
- }
-
- await this.driveFilesRepository.update(file.id, {
- name: file.name,
- comment: file.comment,
- folderId: file.folderId,
- isSensitive: file.isSensitive,
- });
-
- const fileObj = await this.driveFileEntityService.pack(file, { self: true });
-
- // Publish fileUpdated event
- this.globalEventService.publishDriveStream(me.id, 'fileUpdated', fileObj);
+ const fileObj = await this.driveService.update(file, ps, me);
return fileObj;
});