Browse Source

fix for lint

WNomunomu 2 năm trước cách đây
mục cha
commit
eb058de499

+ 0 - 2
apps/app/src/interfaces/in-app-notification.ts

@@ -8,8 +8,6 @@ export enum InAppNotificationStatuses {
   STATUS_OPENED = 'OPENED',
   STATUS_OPENED = 'OPENED',
 }
 }
 
 
-// TODO: do not use any type
-// https://redmine.weseek.co.jp/issues/120632
 export interface IInAppNotification<T = unknown> {
 export interface IInAppNotification<T = unknown> {
   user: IUser
   user: IUser
   targetModel: SupportedTargetModelType
   targetModel: SupportedTargetModelType

+ 1 - 1
apps/app/src/server/models/activity.ts

@@ -111,7 +111,7 @@ activitySchema.statics.createByParameters = async function(parameters): Promise<
   return activity;
   return activity;
 };
 };
 
 
-// When using this method, ensure that activity updates are allowed using ActivityService.shoudUpdate
+// When using this method, ensure that activity updates are allowed using ActivityService.shoudUpdateActivity
 activitySchema.statics.updateByParameters = async function(activityId: string, parameters): Promise<ActivityDocument> {
 activitySchema.statics.updateByParameters = async function(activityId: string, parameters): Promise<ActivityDocument> {
   const activity = await this.findOneAndUpdate({ _id: activityId }, parameters, { new: true }) as unknown as ActivityDocument;
   const activity = await this.findOneAndUpdate({ _id: activityId }, parameters, { new: true }) as unknown as ActivityDocument;
 
 

+ 2 - 9
apps/app/src/server/service/in-app-notification.ts

@@ -5,10 +5,8 @@ import { SubscriptionStatusType } from '@growi/core';
 import { subDays } from 'date-fns';
 import { subDays } from 'date-fns';
 import { Types, FilterQuery, UpdateQuery } from 'mongoose';
 import { Types, FilterQuery, UpdateQuery } from 'mongoose';
 
 
-import { AllEssentialActions, SupportedTargetModel } from '~/interfaces/activity';
+import { AllEssentialActions } from '~/interfaces/activity';
 import { InAppNotificationStatuses, PaginateResult } from '~/interfaces/in-app-notification';
 import { InAppNotificationStatuses, PaginateResult } from '~/interfaces/in-app-notification';
-import * as pageSerializers from '~/models/serializers/in-app-notification-snapshot/page';
-import * as userSerializers from '~/models/serializers/in-app-notification-snapshot/user';
 import { ActivityDocument } from '~/server/models/activity';
 import { ActivityDocument } from '~/server/models/activity';
 import {
 import {
   InAppNotification,
   InAppNotification,
@@ -16,14 +14,13 @@ import {
 } from '~/server/models/in-app-notification';
 } from '~/server/models/in-app-notification';
 import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
 import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
 import Subscription from '~/server/models/subscription';
 import Subscription from '~/server/models/subscription';
-import { getDelegator } from '~/server/service/in-app-notification/in-app-notification-delegator';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import Crowi from '../crowi';
 import Crowi from '../crowi';
 import { RoomPrefix, getRoomNameWithId } from '../util/socket-io-helpers';
 import { RoomPrefix, getRoomNameWithId } from '../util/socket-io-helpers';
 
 
 import { generateSnapshot } from './in-app-notification/in-app-notification-utils';
 import { generateSnapshot } from './in-app-notification/in-app-notification-utils';
-import { generateInitialPreNotifyProps, type PreNotify, type PreNotifyProps } from './preNotify';
+import { generateInitialPreNotifyProps, type PreNotify } from './preNotify';
 
 
 
 
 const { STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED } = InAppNotificationStatuses;
 const { STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED } = InAppNotificationStatuses;
@@ -52,8 +49,6 @@ export default class InAppNotificationService {
   }
   }
 
 
   initActivityEventListeners(): void {
   initActivityEventListeners(): void {
-    // TODO: do not use any type
-    // https://redmine.weseek.co.jp/issues/120632
     this.activityEvent.on('updated', async(activity: ActivityDocument, target: IUser | IPage, preNotify: PreNotify) => {
     this.activityEvent.on('updated', async(activity: ActivityDocument, target: IUser | IPage, preNotify: PreNotify) => {
       try {
       try {
         const shouldNotification = activity != null && target != null && (AllEssentialActions as ReadonlyArray<string>).includes(activity.action);
         const shouldNotification = activity != null && target != null && (AllEssentialActions as ReadonlyArray<string>).includes(activity.action);
@@ -202,8 +197,6 @@ export default class InAppNotificationService {
     return;
     return;
   };
   };
 
 
-  // TODO: do not use any type
-  // https://redmine.weseek.co.jp/issues/120632
   createInAppNotification = async function(activity: ActivityDocument, target: IUser | IPage, preNotify: PreNotify): Promise<void> {
   createInAppNotification = async function(activity: ActivityDocument, target: IUser | IPage, preNotify: PreNotify): Promise<void> {
 
 
     const shouldNotification = activity != null && target != null && (AllEssentialActions as ReadonlyArray<string>).includes(activity.action);
     const shouldNotification = activity != null && target != null && (AllEssentialActions as ReadonlyArray<string>).includes(activity.action);

+ 0 - 30
apps/app/src/server/service/in-app-notification/in-app-notification-delegator.ts

@@ -1,30 +0,0 @@
-import type { IUser, IPage, Ref } from '@growi/core';
-
-import { SupportedTargetModel } from '~/interfaces/activity';
-import { ActivityDocument } from '~/server/models/activity';
-
-import { PageNotificationDelegator } from './page-notification';
-import { UserNotificationDelegator } from './user-notification';
-
-const isPageNotification = (targetModel: string, target: IUser | IPage): target is IPage => {
-  return targetModel === SupportedTargetModel.MODEL_PAGE;
-};
-
-const isUserNotification = (targetModel: string, target: IUser | IPage): target is IUser => {
-  return targetModel === SupportedTargetModel.MODEL_PAGE;
-};
-
-export const getDelegator = (
-    targetModel: string, target: IUser | IPage,
-): PageNotificationDelegator | UserNotificationDelegator => {
-  let delegator;
-
-  if (isPageNotification(targetModel, target)) {
-    delegator = new PageNotificationDelegator(target);
-  }
-  else if (isUserNotification(targetModel, target)) {
-    delegator = new UserNotificationDelegator();
-  }
-
-  return delegator;
-};

+ 0 - 42
apps/app/src/server/service/in-app-notification/page-notification.ts

@@ -1,42 +0,0 @@
-import type {
-  Ref, IUser, IPage,
-} from '@growi/core';
-
-import { AllEssentialActions, SupportedAction } from '~/interfaces/activity';
-import * as pageSerializers from '~/models/serializers/in-app-notification-snapshot/page';
-import { ActivityDocument } from '~/server/models/activity';
-
-import { generateInitialPreNotifyProps, type PreNotify, type PreNotifyProps } from '../preNotify';
-
-import { upsertByActivity, emitSocketIo } from './in-app-notification-utils';
-
-
-export class PageNotificationDelegator {
-
-  target: IPage;
-
-  constructor(target: IPage) {
-    this.target = target;
-  }
-
-  createInAppNotification = async(activity: ActivityDocument, target, preNotify, socketIoService, commentService): Promise<void> => {
-    const shouldNotification = activity != null && target != null && (AllEssentialActions as ReadonlyArray<string>).includes(activity.action);
-
-    const snapshot = pageSerializers.stringifySnapshot(target);
-
-    if (shouldNotification) {
-
-      const props: PreNotifyProps = generateInitialPreNotifyProps();
-
-      await preNotify(props);
-
-      await this.upsertByActivity(props.notificationTargetUsers, activity, snapshot);
-      await this.emitSocketIo(props.notificationTargetUsers);
-    }
-    else {
-      throw Error('No activity to notify');
-    }
-    return;
-  };
-
-}

+ 0 - 20
apps/app/src/server/service/in-app-notification/user-notification.ts

@@ -1,20 +0,0 @@
-import type {
-  Ref, IUser,
-} from '@growi/core';
-
-import * as userSerializers from '~/models/serializers/in-app-notification-snapshot/user';
-import { ActivityDocument } from '~/server/models/activity';
-
-import { upsertByActivity, emitSocketIo } from './in-app-notification-utils';
-
-
-export class UserNotificationDelegator {
-
-  createInAppNotification = async(activity: ActivityDocument, target, users: Ref<IUser>[], socketIoService): Promise<void> => {
-    const snapshot = userSerializers.stringifySnapshot(target);
-    await upsertByActivity(users, activity, snapshot);
-    await emitSocketIo(users, socketIoService);
-    return;
-  };
-
-}