summaryrefslogtreecommitdiff
path: root/src/services/drive/delete-file.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-06-15 09:53:30 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-06-15 09:53:30 +0900
commitbd827f946a94061f9f720cafe26323ccb605ee92 (patch)
tree1ed4dd13bbb7f1343582de48b97570bd5bfc530d /src/services/drive/delete-file.ts
parentFix (diff)
downloadmisskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.gz
misskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.bz2
misskey-bd827f946a94061f9f720cafe26323ccb605ee92.zip
ドライブのファイルの削除を実装
Diffstat (limited to 'src/services/drive/delete-file.ts')
-rw-r--r--src/services/drive/delete-file.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts
new file mode 100644
index 0000000000..a8ed13bd77
--- /dev/null
+++ b/src/services/drive/delete-file.ts
@@ -0,0 +1,30 @@
+import DriveFile, { DriveFileChunk, IDriveFile } from "../../models/drive-file";
+import DriveFileThumbnail, { DriveFileThumbnailChunk } from '../../models/drive-file-thumbnail';
+
+export default async function(file: IDriveFile, isExpired = false) {
+ // チャンクをすべて削除
+ await DriveFileChunk.remove({
+ files_id: file._id
+ });
+
+ await DriveFile.update({ _id: file._id }, {
+ $set: {
+ 'metadata.deletedAt': new Date(),
+ 'metadata.isExpired': isExpired
+ }
+ });
+
+ //#region サムネイルもあれば削除
+ const thumbnail = await DriveFileThumbnail.findOne({
+ 'metadata.originalId': file._id
+ });
+
+ if (thumbnail) {
+ await DriveFileThumbnailChunk.remove({
+ files_id: thumbnail._id
+ });
+
+ await DriveFileThumbnail.remove({ _id: thumbnail._id });
+ }
+ //#endregion
+}