Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { In } from "typeorm";
|
||||
import { publishMainStream } from "../../../services/stream.js";
|
||||
import { pushNotification } from "../../../services/push-notification.js";
|
||||
import { Notifications, Users } from "../../../models/index.js";
|
||||
export async function readNotification(userId, notificationIds) {
|
||||
if (notificationIds.length === 0) return;
|
||||
// Update documents
|
||||
const result = await Notifications.update({
|
||||
notifieeId: userId,
|
||||
id: In(notificationIds),
|
||||
isRead: false
|
||||
}, {
|
||||
isRead: true
|
||||
});
|
||||
if (result.affected === 0) return;
|
||||
if (!await Users.getHasUnreadNotification(userId)) return postReadAllNotifications(userId);
|
||||
else return postReadNotifications(userId, notificationIds);
|
||||
}
|
||||
export async function readNotificationByQuery(userId, query) {
|
||||
const notificationIds = await Notifications.findBy({
|
||||
...query,
|
||||
notifieeId: userId,
|
||||
isRead: false
|
||||
}).then((notifications)=>notifications.map((notification)=>notification.id));
|
||||
return readNotification(userId, notificationIds);
|
||||
}
|
||||
function postReadAllNotifications(userId) {
|
||||
publishMainStream(userId, "readAllNotifications");
|
||||
return pushNotification(userId, "readAllNotifications", undefined);
|
||||
}
|
||||
function postReadNotifications(userId, notificationIds) {
|
||||
publishMainStream(userId, "readNotifications", notificationIds);
|
||||
return pushNotification(userId, "readNotifications", {
|
||||
notificationIds
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user