diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-03-28 18:07:41 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-03-28 18:07:41 +0900 |
| commit | 614a1d74ddf388dcb82f69722c96696ad530602d (patch) | |
| tree | faf2d14d1d82ea321080ebb677d8c402460c9a5b /src/services/create-notification.ts | |
| parent | Add i/apps private API (diff) | |
| download | misskey-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.ts | 34 |
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 |