summaryrefslogtreecommitdiff
path: root/src/services/create-notification.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-03-28 18:07:41 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-03-28 18:07:41 +0900
commit614a1d74ddf388dcb82f69722c96696ad530602d (patch)
treefaf2d14d1d82ea321080ebb677d8c402460c9a5b /src/services/create-notification.ts
parentAdd i/apps private API (diff)
downloadmisskey-614a1d74ddf388dcb82f69722c96696ad530602d.tar.gz
misskey-614a1d74ddf388dcb82f69722c96696ad530602d.tar.bz2
misskey-614a1d74ddf388dcb82f69722c96696ad530602d.zip
Resolve #6192
Diffstat (limited to 'src/services/create-notification.ts')
-rw-r--r--src/services/create-notification.ts34
1 files changed, 7 insertions, 27 deletions
diff --git a/src/services/create-notification.ts b/src/services/create-notification.ts
index c5c6e7144b..7fc8bfaf53 100644
--- a/src/services/create-notification.ts
+++ b/src/services/create-notification.ts
@@ -3,46 +3,26 @@ import pushSw from './push-notification';
import { Notifications, Mutings } from '../models';
import { genId } from '../misc/gen-id';
import { User } from '../models/entities/user';
-import { Note } from '../models/entities/note';
import { Notification } from '../models/entities/notification';
-import { FollowRequest } from '../models/entities/follow-request';
-import { UserGroupInvitation } from '../models/entities/user-group-invitation';
export async function createNotification(
notifieeId: User['id'],
- notifierId: User['id'],
type: Notification['type'],
- content?: {
- noteId?: Note['id'];
- reaction?: string;
- choice?: number;
- followRequestId?: FollowRequest['id'];
- userGroupInvitationId?: UserGroupInvitation['id'];
- }
+ data: Partial<Notification>
) {
- if (notifieeId === notifierId) {
+ if (data.notifierId && (notifieeId === data.notifierId)) {
return null;
}
- const data = {
+ // Create notification
+ const notification = await Notifications.save({
id: genId(),
createdAt: new Date(),
notifieeId: notifieeId,
- notifierId: notifierId,
type: type,
isRead: false,
- } as Partial<Notification>;
-
- if (content) {
- if (content.noteId) data.noteId = content.noteId;
- if (content.reaction) data.reaction = content.reaction;
- if (content.choice) data.choice = content.choice;
- if (content.followRequestId) data.followRequestId = content.followRequestId;
- if (content.userGroupInvitationId) data.userGroupInvitationId = content.userGroupInvitationId;
- }
-
- // Create notification
- const notification = await Notifications.save(data);
+ ...data
+ } as Partial<Notification>);
const packed = await Notifications.pack(notification);
@@ -58,7 +38,7 @@ export async function createNotification(
const mutings = await Mutings.find({
muterId: notifieeId
});
- if (mutings.map(m => m.muteeId).includes(notifierId)) {
+ if (data.notifierId && mutings.map(m => m.muteeId).includes(data.notifierId)) {
return;
}
//#endregion