Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { publishMainStream } from "../../../../services/stream.js";
|
||||
import define from "../../define.js";
|
||||
import { MessagingMessages, UserGroupJoinings } from "../../../../models/index.js";
|
||||
export const meta = {
|
||||
tags: [
|
||||
"account",
|
||||
"messaging"
|
||||
],
|
||||
requireCredential: true,
|
||||
kind: "write:account"
|
||||
};
|
||||
export const paramDef = {
|
||||
type: "object",
|
||||
properties: {},
|
||||
required: []
|
||||
};
|
||||
export default define(meta, paramDef, async (ps, user)=>{
|
||||
// Update documents
|
||||
await MessagingMessages.update({
|
||||
recipientId: user.id,
|
||||
isRead: false
|
||||
}, {
|
||||
isRead: true
|
||||
});
|
||||
const joinings = await UserGroupJoinings.findBy({
|
||||
userId: user.id
|
||||
});
|
||||
await Promise.all(joinings.map((j)=>MessagingMessages.createQueryBuilder().update().set({
|
||||
reads: ()=>`array_append("reads", '${user.id}')`
|
||||
}).where("groupId = :groupId", {
|
||||
groupId: j.userGroupId
|
||||
}).andWhere("userId != :userId", {
|
||||
userId: user.id
|
||||
}).andWhere("NOT (:userId = ANY(reads))", {
|
||||
userId: user.id
|
||||
}).execute()));
|
||||
publishMainStream(user.id, "readAllMessagingMessages");
|
||||
});
|
||||
Reference in New Issue
Block a user