user-notification.ts 641 B

1234567891011121314151617181920
  1. import type {
  2. Ref, IUser,
  3. } from '@growi/core';
  4. import * as userSerializers from '~/models/serializers/in-app-notification-snapshot/user';
  5. import { ActivityDocument } from '~/server/models/activity';
  6. import { upsertByActivity, emitSocketIo } from './in-app-notification-utils';
  7. export class UserNotificationDelegator {
  8. createInAppNotification = async(activity: ActivityDocument, target, users: Ref<IUser>[], socketIoService): Promise<void> => {
  9. const snapshot = userSerializers.stringifySnapshot(target);
  10. await upsertByActivity(users, activity, snapshot);
  11. await emitSocketIo(users, socketIoService);
  12. return;
  13. };
  14. }