summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-12-15 03:37:19 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-12-15 03:37:19 +0900
commit3e85aad80a882abc764c13a0fc40e3333bb61c4b (patch)
treec4ef1a407e5a714dda25cb907bc4d40acb89ec26 /src/server/api/endpoints
parentFix #5637 (#5638) (diff)
downloadsharkey-3e85aad80a882abc764c13a0fc40e3333bb61c4b.tar.gz
sharkey-3e85aad80a882abc764c13a0fc40e3333bb61c4b.tar.bz2
sharkey-3e85aad80a882abc764c13a0fc40e3333bb61c4b.zip
Implement Talk has read federation (#5636)
* Talk read * fix * 複数のRead ActivityはCollectionとして送るように * あ
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/messaging/messages.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts
index b0b3e20d02..ea01086a8b 100644
--- a/src/server/api/endpoints/messaging/messages.ts
+++ b/src/server/api/endpoints/messaging/messages.ts
@@ -3,10 +3,10 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
-import { MessagingMessages, UserGroups, UserGroupJoinings } from '../../../../models';
+import { MessagingMessages, UserGroups, UserGroupJoinings, Users } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Brackets } from 'typeorm';
-import { readUserMessagingMessage, readGroupMessagingMessage } from '../../common/read-messaging-message';
+import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message';
export const meta = {
desc: {
@@ -114,6 +114,11 @@ export default define(meta, async (ps, user) => {
// Mark all as read
if (ps.markAsRead) {
readUserMessagingMessage(user.id, recipient.id, messages.filter(m => m.recipientId === user.id).map(x => x.id));
+
+ // リモートユーザーとのメッセージだったら既読配信
+ if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) {
+ deliverReadActivity(user, recipient, messages);
+ }
}
return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, {