summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/misc/api-permissions.ts1
-rw-r--r--src/models/repositories/notification.ts40
2 files changed, 38 insertions, 3 deletions
diff --git a/src/misc/api-permissions.ts b/src/misc/api-permissions.ts
index eb20c3d289..160cdf9fd6 100644
--- a/src/misc/api-permissions.ts
+++ b/src/misc/api-permissions.ts
@@ -32,3 +32,4 @@ export const kinds = [
'read:gallery-likes',
'write:gallery-likes',
];
+// IF YOU ADD KINDS(PERMISSIONS), YOU MUST ADD TRANSLATIONS (under _permissions).
diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts
index 55af96b6d7..ed9de7ef4c 100644
--- a/src/models/repositories/notification.ts
+++ b/src/models/repositories/notification.ts
@@ -7,6 +7,7 @@ import { Note } from '@/models/entities/note';
import { NoteReaction } from '@/models/entities/note-reaction';
import { User } from '@/models/entities/user';
import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis';
+import { notificationTypes } from '@/types';
export type PackedNotification = SchemaType<typeof packedNotificationSchema>;
@@ -124,19 +125,52 @@ export const packedNotificationSchema = {
optional: false as const, nullable: false as const,
format: 'date-time',
},
+ isRead: {
+ type: 'boolean' as const,
+ optional: false as const, nullable: false as const,
+ },
type: {
type: 'string' as const,
optional: false as const, nullable: false as const,
- enum: ['follow', 'followRequestAccepted', 'receiveFollowRequest', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote'],
+ enum: [...notificationTypes],
+ },
+ user: {
+ type: 'object' as const,
+ ref: 'User',
+ optional: true as const, nullable: true as const,
},
userId: {
type: 'string' as const,
optional: true as const, nullable: true as const,
format: 'id',
},
- user: {
+ note: {
type: 'object' as const,
- ref: 'User',
+ ref: 'Note',
+ optional: true as const, nullable: true as const,
+ },
+ reaction: {
+ type: 'string' as const,
+ optional: true as const, nullable: true as const,
+ },
+ choice: {
+ type: 'number' as const,
+ optional: true as const, nullable: true as const,
+ },
+ invitation: {
+ type: 'object' as const,
+ optional: true as const, nullable: true as const,
+ },
+ body: {
+ type: 'string' as const,
+ optional: true as const, nullable: true as const,
+ },
+ header: {
+ type: 'string' as const,
+ optional: true as const, nullable: true as const,
+ },
+ icon: {
+ type: 'string' as const,
optional: true as const, nullable: true as const,
},
}