diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-10-23 07:04:00 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-10-23 07:04:00 +0900 |
| commit | 19af2d7a7ba3b582fd321bd202701d07d2e12f03 (patch) | |
| tree | a135f093e960252a9f002fdb65583124017beb69 /src/services | |
| parent | Use camelCase instead of snake_case (diff) | |
| download | sharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.tar.gz sharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.tar.bz2 sharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.zip | |
Implement #2983
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/note/create.ts | 13 | ||||
| -rw-r--r-- | src/services/note/delete.ts | 12 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/services/note/create.ts b/src/services/note/create.ts index ac6cc8651d..401543b48a 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -8,7 +8,7 @@ import renderNote from '../../remote/activitypub/renderer/note'; import renderCreate from '../../remote/activitypub/renderer/create'; import renderAnnounce from '../../remote/activitypub/renderer/announce'; import packAp from '../../remote/activitypub/renderer'; -import { IDriveFile } from '../../models/drive-file'; +import DriveFile, { IDriveFile } from '../../models/drive-file'; import notify from '../../notify'; import NoteWatching from '../../models/note-watching'; import watch from './watch'; @@ -173,6 +173,17 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< // ハッシュタグ登録 tags.map(tag => registerHashtag(user, tag)); + // ファイルが添付されていた場合ドライブのファイルの「このファイルが添付された投稿一覧」プロパティにこの投稿を追加 + if (data.files) { + data.files.forEach(file => { + DriveFile.update({ _id: file._id }, { + $push: { + 'metadata.attachedNoteIds': note._id + } + }); + }); + } + // Increment notes count incNotesCount(user); diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index d86ca6e506..599525ac8c 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -11,6 +11,7 @@ import perUserNotesChart from '../../chart/per-user-notes'; import config from '../../config'; import NoteUnread from '../../models/note-unread'; import read from './read'; +import DriveFile from '../../models/drive-file'; /** * 投稿を削除します。 @@ -48,6 +49,17 @@ export default async function(user: IUser, note: INote) { }); }); + // ファイルが添付されていた場合ドライブのファイルの「このファイルが添付された投稿一覧」プロパティからこの投稿を削除 + if (note.fileIds) { + note.fileIds.forEach(fileId => { + DriveFile.update({ _id: fileId }, { + $pull: { + 'metadata.attachedNoteIds': note._id + } + }); + }); + } + //#region ローカルの投稿なら削除アクティビティを配送 if (isLocalUser(user)) { const content = pack(renderDelete(renderTombstone(`${config.url}/notes/${note._id}`), user)); |