Просмотр исходного кода

declare InAppNotificationStatuses under interfaces

kaori 4 лет назад
Родитель
Сommit
351a04c49e

+ 7 - 0
packages/app/src/interfaces/in-app-notification.ts

@@ -12,6 +12,13 @@ export interface IInAppNotification {
   createdAt: Date
 }
 
+export enum InAppNotificationStatuses {
+  STATUS_UNREAD = 'UNREAD',
+  STATUS_UNOPENED = 'UNOPENED',
+  STATUS_OPENED = 'OPENED',
+}
+
+
 /*
 * Note:
 * Need to use mongoose PaginateResult as a type after upgrading mongoose v6.0.0.

+ 4 - 5
packages/app/src/server/models/in-app-notification.ts

@@ -7,10 +7,9 @@ import { getOrCreateModel } from '@growi/core';
 import { ActivityDocument } from './activity';
 import ActivityDefine from '../util/activityDefine';
 
-export const STATUS_UNREAD = 'UNREAD';
-export const STATUS_UNOPENED = 'UNOPENED';
-export const STATUS_OPENED = 'OPENED';
-const STATUSES = [STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED];
+import { InAppNotificationStatuses } from '~/interfaces/in-app-notification';
+
+const { STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED } = InAppNotificationStatuses;
 
 export interface InAppNotificationDocument extends Document {
   _id: Types.ObjectId
@@ -66,7 +65,7 @@ const inAppNotificationSchema = new Schema<InAppNotificationDocument, InAppNotif
   status: {
     type: String,
     default: STATUS_UNREAD,
-    enum: STATUSES,
+    enum: [STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED],
     index: true,
     require: true,
   },

+ 4 - 2
packages/app/src/server/service/in-app-notification.ts

@@ -2,10 +2,10 @@ import { Types } from 'mongoose';
 import { subDays } from 'date-fns';
 import Crowi from '../crowi';
 import {
-  InAppNotification, STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED,
+  InAppNotification,
   InAppNotificationDocument,
 } from '~/server/models/in-app-notification';
-import { PaginateResult } from '../../interfaces/in-app-notification';
+import { PaginateResult, InAppNotificationStatuses } from '../../interfaces/in-app-notification';
 
 import { ActivityDocument } from '~/server/models/activity';
 import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
@@ -16,6 +16,8 @@ import { HasObjectId } from '~/interfaces/has-object-id';
 import loggerFactory from '~/utils/logger';
 import { RoomPrefix, getRoomNameWithId } from '../util/socket-io-helpers';
 
+const { STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED } = InAppNotificationStatuses;
+
 const logger = loggerFactory('growi:service:inAppNotification');