diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-06-15 09:53:30 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-06-15 09:53:30 +0900 |
| commit | bd827f946a94061f9f720cafe26323ccb605ee92 (patch) | |
| tree | 1ed4dd13bbb7f1343582de48b97570bd5bfc530d /src/services/drive/delete-file.ts | |
| parent | Fix (diff) | |
| download | misskey-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.ts | 30 |
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 +} |