summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/entities
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-03-25 16:17:34 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-03-25 16:17:34 -0400
commit40975719ec5bb889ab011bbc464dd0fdb09fdb68 (patch)
tree1b8521df694b869b26c6d75c99ef885704b013b0 /packages/backend/src/core/entities
parentmerge upstream (diff)
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadsharkey-40975719ec5bb889ab011bbc464dd0fdb09fdb68.tar.gz
sharkey-40975719ec5bb889ab011bbc464dd0fdb09fdb68.tar.bz2
sharkey-40975719ec5bb889ab011bbc464dd0fdb09fdb68.zip
Merge branch 'misskey-develop' into merge/2025-03-24
# Conflicts: # package.json # packages/backend/src/core/entities/NotificationEntityService.ts # packages/backend/src/types.ts # packages/frontend/src/pages/admin/modlog.ModLog.vue # packages/misskey-js/src/consts.ts # packages/misskey-js/src/entities.ts
Diffstat (limited to 'packages/backend/src/core/entities')
-rw-r--r--packages/backend/src/core/entities/NotificationEntityService.ts21
1 files changed, 15 insertions, 6 deletions
diff --git a/packages/backend/src/core/entities/NotificationEntityService.ts b/packages/backend/src/core/entities/NotificationEntityService.ts
index cea674d96c..77e6a1c7e7 100644
--- a/packages/backend/src/core/entities/NotificationEntityService.ts
+++ b/packages/backend/src/core/entities/NotificationEntityService.ts
@@ -16,6 +16,7 @@ import { bindThis } from '@/decorators.js';
import { FilterUnionByProperty, groupedNotificationTypes } from '@/types.js';
import { CacheService } from '@/core/CacheService.js';
import { RoleEntityService } from './RoleEntityService.js';
+import { ChatEntityService } from './ChatEntityService.js';
import type { OnModuleInit } from '@nestjs/common';
import type { UserEntityService } from './UserEntityService.js';
import type { NoteEntityService } from './NoteEntityService.js';
@@ -27,6 +28,7 @@ export class NotificationEntityService implements OnModuleInit {
private userEntityService: UserEntityService;
private noteEntityService: NoteEntityService;
private roleEntityService: RoleEntityService;
+ private chatEntityService: ChatEntityService;
constructor(
private moduleRef: ModuleRef,
@@ -41,9 +43,6 @@ export class NotificationEntityService implements OnModuleInit {
private followRequestsRepository: FollowRequestsRepository,
private cacheService: CacheService,
-
- //private userEntityService: UserEntityService,
- //private noteEntityService: NoteEntityService,
) {
}
@@ -51,6 +50,7 @@ export class NotificationEntityService implements OnModuleInit {
this.userEntityService = this.moduleRef.get('UserEntityService');
this.noteEntityService = this.moduleRef.get('NoteEntityService');
this.roleEntityService = this.moduleRef.get('RoleEntityService');
+ this.chatEntityService = this.moduleRef.get('ChatEntityService');
}
/**
@@ -59,7 +59,6 @@ export class NotificationEntityService implements OnModuleInit {
async #packInternal <T extends MiNotification | MiGroupedNotification> (
src: T,
meId: MiUser['id'],
-
options: {
checkValidNotifier?: boolean;
},
@@ -92,7 +91,7 @@ export class NotificationEntityService implements OnModuleInit {
// if the user has been deleted, don't show this notification
if (needsUser && !userIfNeed) return null;
- // #region Grouped notifications
+ //#region Grouped notifications
if (notification.type === 'reaction:grouped') {
const reactions = (await Promise.all(notification.reactions.map(async reaction => {
const user = hint?.packedUsers != null
@@ -137,7 +136,7 @@ export class NotificationEntityService implements OnModuleInit {
users,
});
}
- // #endregion
+ //#endregion
const needsRole = notification.type === 'roleAssigned';
const role = needsRole
@@ -151,6 +150,13 @@ export class NotificationEntityService implements OnModuleInit {
return null;
}
+ const needsChatRoomInvitation = notification.type === 'chatRoomInvitationReceived';
+ const chatRoomInvitation = needsChatRoomInvitation ? await this.chatEntityService.packRoomInvitation(notification.invitationId, { id: meId }).catch(() => null) : undefined;
+ // if the invitation has been deleted, don't show this notification
+ if (needsChatRoomInvitation && !chatRoomInvitation) {
+ return null;
+ }
+
return await awaitAll({
id: notification.id,
createdAt: new Date(notification.createdAt).toISOString(),
@@ -164,6 +170,9 @@ export class NotificationEntityService implements OnModuleInit {
...(notification.type === 'roleAssigned' ? {
role: role,
} : {}),
+ ...(notification.type === 'chatRoomInvitationReceived' ? {
+ invitation: chatRoomInvitation,
+ } : {}),
...(notification.type === 'followRequestAccepted' ? {
message: notification.message,
} : {}),