summaryrefslogtreecommitdiff
path: root/src/services/note
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-10-23 07:04:00 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-10-23 07:04:00 +0900
commit19af2d7a7ba3b582fd321bd202701d07d2e12f03 (patch)
treea135f093e960252a9f002fdb65583124017beb69 /src/services/note
parentUse camelCase instead of snake_case (diff)
downloadsharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.tar.gz
sharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.tar.bz2
sharkey-19af2d7a7ba3b582fd321bd202701d07d2e12f03.zip
Implement #2983
Diffstat (limited to 'src/services/note')
-rw-r--r--src/services/note/create.ts13
-rw-r--r--src/services/note/delete.ts12
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));