|
|
@@ -1,4 +1,3 @@
|
|
|
-import { getModelSafely } from '@growi/core';
|
|
|
import mongoose from 'mongoose';
|
|
|
|
|
|
import { IActivity } from '~/interfaces/activity';
|
|
|
@@ -11,8 +10,6 @@ import Crowi from '../crowi';
|
|
|
|
|
|
const logger = loggerFactory('growi:service:ActivityService');
|
|
|
|
|
|
-type UpdateActivityParameterType = Omit<IActivity, 'user' | 'createdAt' | 'ip' | 'endpoint'>
|
|
|
-
|
|
|
class ActivityService {
|
|
|
|
|
|
crowi!: Crowi;
|
|
|
@@ -23,18 +20,14 @@ class ActivityService {
|
|
|
this.crowi = crowi;
|
|
|
this.activityEvent = crowi.event('activity');
|
|
|
|
|
|
- this.updateByParameters = this.updateByParameters.bind(this);
|
|
|
-
|
|
|
this.initActivityEventListeners();
|
|
|
}
|
|
|
|
|
|
initActivityEventListeners(): void {
|
|
|
- this.activityEvent.on('update', async(activityId: string, parameters: UpdateActivityParameterType, target?: IPage) => {
|
|
|
-
|
|
|
- // update activity
|
|
|
+ this.activityEvent.on('update', async(activityId: string, parameters, target?: IPage) => {
|
|
|
let activity: IActivity;
|
|
|
try {
|
|
|
- activity = await this.updateByParameters(activityId, parameters);
|
|
|
+ activity = await Activity.updateByParameters(activityId, parameters);
|
|
|
}
|
|
|
catch (err) {
|
|
|
logger.error('Update activity failed', err);
|
|
|
@@ -74,31 +67,6 @@ class ActivityService {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * @param {object} parameters
|
|
|
- * @return {Promise}
|
|
|
- */
|
|
|
- createByParameters = function(parameters) {
|
|
|
- const Activity = getModelSafely('Activity') || require('../models/activity')(this.crowi);
|
|
|
-
|
|
|
- return Activity.create(parameters);
|
|
|
- };
|
|
|
-
|
|
|
- updateByParameters = async function(activityId: string, parameters: UpdateActivityParameterType): Promise<IActivity> {
|
|
|
- const activity = await Activity.findOneAndUpdate({ _id: activityId }, parameters, { new: true }) as unknown as IActivity;
|
|
|
-
|
|
|
- return activity;
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * @param {User} user
|
|
|
- * @return {Promise}
|
|
|
- */
|
|
|
- findByUser = function(user) {
|
|
|
- return this.find({ user }).sort({ createdAt: -1 }).exec();
|
|
|
- };
|
|
|
-
|
|
|
}
|
|
|
|
|
|
module.exports = ActivityService;
|