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

Merge pull request #6088 from weseek/feat/98333

feat: Create activity when "Archive data" is created
Shun Miyazawa 3 лет назад
Родитель
Сommit
de84cb1096
2 измененных файлов с 11 добавлено и 1 удалено
  1. 2 0
      packages/app/src/interfaces/activity.ts
  2. 9 1
      packages/app/src/server/routes/apiv3/export.js

+ 2 - 0
packages/app/src/interfaces/activity.ts

@@ -40,6 +40,7 @@ const ACTION_ADMIN_SECURITY_SETTINGS_UPDATE = 'ADMIN_SECURITY_SETTINGS_UPDATE';
 const ACTION_ADMIN_LINE_BREAK_UPDATE = 'ADMIN_LINE_BREAK_UPDATE';
 const ACTION_ADMIN_LINE_BREAK_UPDATE = 'ADMIN_LINE_BREAK_UPDATE';
 const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
 const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
 const ACTION_ADMIN_ARCHIVE_DATA_UPLOAD = 'ADMIN_ARCHIVE_DATA_UPLOAD';
 const ACTION_ADMIN_ARCHIVE_DATA_UPLOAD = 'ADMIN_ARCHIVE_DATA_UPLOAD';
+const ACTION_ADMIN_ARCHIVE_DATA_CREATE = 'ADMIN_ARCHIVE_DATA_CREATE';
 
 
 export const SupportedTargetModel = {
 export const SupportedTargetModel = {
   MODEL_PAGE,
   MODEL_PAGE,
@@ -83,6 +84,7 @@ export const SupportedAction = {
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
   ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
+  ACTION_ADMIN_ARCHIVE_DATA_CREATE,
 } as const;
 } as const;
 
 
 export const SupportedActionToNotified = {
 export const SupportedActionToNotified = {

+ 9 - 1
packages/app/src/server/routes/apiv3/export.js

@@ -1,7 +1,10 @@
+import { SupportedAction } from '~/interfaces/activity';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
+import { generateAddActivityMiddleware } from '../../middlewares/add-activity';
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
 
 
+
 const logger = loggerFactory('growi:routes:apiv3:export');
 const logger = loggerFactory('growi:routes:apiv3:export');
 const fs = require('fs');
 const fs = require('fs');
 
 
@@ -45,9 +48,11 @@ module.exports = (crowi) => {
   const loginRequired = require('../../middlewares/login-required')(crowi);
   const loginRequired = require('../../middlewares/login-required')(crowi);
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const csrf = require('../../middlewares/csrf')(crowi);
   const csrf = require('../../middlewares/csrf')(crowi);
+  const addActivity = generateAddActivityMiddleware(crowi);
 
 
   const { exportService, socketIoService } = crowi;
   const { exportService, socketIoService } = crowi;
 
 
+  const activityEvent = crowi.event('activity');
   this.adminEvent = crowi.event('admin');
   this.adminEvent = crowi.event('admin');
 
 
   // setup event
   // setup event
@@ -118,13 +123,16 @@ module.exports = (crowi) => {
    *                  status:
    *                  status:
    *                    $ref: '#/components/schemas/ExportStatus'
    *                    $ref: '#/components/schemas/ExportStatus'
    */
    */
-  router.post('/', accessTokenParser, loginRequired, adminRequired, csrf, async(req, res) => {
+  router.post('/', accessTokenParser, loginRequired, adminRequired, csrf, addActivity, async(req, res) => {
     // TODO: add express validator
     // TODO: add express validator
     try {
     try {
       const { collections } = req.body;
       const { collections } = req.body;
 
 
       exportService.export(collections);
       exportService.export(collections);
 
 
+      const parameters = { action: SupportedAction.ACTION_ADMIN_ARCHIVE_DATA_CREATE };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
+
       // TODO: use res.apiv3
       // TODO: use res.apiv3
       return res.status(200).json({
       return res.status(200).json({
         ok: true,
         ok: true,