add-activity.ts 944 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { NextFunction, Request, Response } from 'express';
  2. import { SupportedAction } from '~/interfaces/activity';
  3. import { IUserHasId } from '~/interfaces/user';
  4. import Activity from '~/server/models/activity';
  5. import loggerFactory from '~/utils/logger';
  6. const logger = loggerFactory('growi:middlewares:add-activity');
  7. interface AuthorizedRequest extends Request {
  8. user?: IUserHasId
  9. }
  10. export const generateAddActivityMiddleware = crowi => async(req: AuthorizedRequest, res: Response, next: NextFunction): Promise<void> => {
  11. const parameter = {
  12. ip: req.ip,
  13. endpoint: req.originalUrl,
  14. action: SupportedAction.ACTION_UNSETTLED,
  15. user: req.user?._id,
  16. snapshot: {
  17. username: req.user?.username,
  18. },
  19. };
  20. try {
  21. const activity = await Activity.createByParameters(parameter);
  22. res.locals.activity = activity;
  23. }
  24. catch (err) {
  25. logger.error('Create activity failed', err);
  26. }
  27. return next();
  28. };