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

fix types for crowi.models and crowi.events

Yuki Takei 2 месяцев назад
Родитель
Сommit
23497d5a1e
36 измененных файлов с 57 добавлено и 68 удалено
  1. 4 5
      apps/app/src/server/models/obsolete-page.js
  2. 1 1
      apps/app/src/server/models/user/index.js
  3. 1 1
      apps/app/src/server/routes/apiv3/app-settings/file-upload-setting.ts
  4. 1 1
      apps/app/src/server/routes/apiv3/app-settings/index.ts
  5. 2 3
      apps/app/src/server/routes/apiv3/attachment.js
  6. 1 1
      apps/app/src/server/routes/apiv3/bookmarks.ts
  7. 1 1
      apps/app/src/server/routes/apiv3/customize-setting.js
  8. 2 2
      apps/app/src/server/routes/apiv3/export.js
  9. 4 4
      apps/app/src/server/routes/apiv3/forgot-password.js
  10. 2 2
      apps/app/src/server/routes/apiv3/in-app-notification.ts
  11. 1 1
      apps/app/src/server/routes/apiv3/logout.js
  12. 1 1
      apps/app/src/server/routes/apiv3/markdown-setting.js
  13. 2 2
      apps/app/src/server/routes/apiv3/notification-setting.js
  14. 2 3
      apps/app/src/server/routes/apiv3/pages/index.js
  15. 1 1
      apps/app/src/server/routes/apiv3/personal-setting/index.js
  16. 1 1
      apps/app/src/server/routes/apiv3/search.js
  17. 1 1
      apps/app/src/server/routes/apiv3/security-settings/index.js
  18. 2 2
      apps/app/src/server/routes/apiv3/share-links.js
  19. 1 1
      apps/app/src/server/routes/apiv3/slack-integration-legacy-settings.js
  20. 2 2
      apps/app/src/server/routes/apiv3/slack-integration-settings.js
  21. 1 1
      apps/app/src/server/routes/apiv3/user-group.js
  22. 1 1
      apps/app/src/server/routes/apiv3/users.js
  23. 2 3
      apps/app/src/server/routes/attachment/api.js
  24. 3 4
      apps/app/src/server/routes/comment.js
  25. 1 1
      apps/app/src/server/routes/login-passport.js
  26. 2 2
      apps/app/src/server/routes/login.js
  27. 2 2
      apps/app/src/server/routes/page.js
  28. 4 5
      apps/app/src/server/routes/tag.js
  29. 2 2
      apps/app/src/server/routes/user.js
  30. 1 1
      apps/app/src/server/service/export.ts
  31. 0 1
      apps/app/src/server/service/global-notification/global-notification-mail.js
  32. 1 1
      apps/app/src/server/service/global-notification/global-notification-slack.js
  33. 1 1
      apps/app/src/server/service/global-notification/index.js
  34. 2 2
      apps/app/src/server/service/passport.ts
  35. 1 1
      apps/app/src/server/util/createGrowiPagesFromImports.js
  36. 0 4
      apps/app/test/integration/middlewares/login-required.test.js

+ 4 - 5
apps/app/src/server/models/obsolete-page.js

@@ -98,7 +98,7 @@ export const getPageSchema = (crowi) => {
 
   // init event
   if (crowi != null) {
-    pageEvent = crowi.event('page');
+    pageEvent = crowi.events.page;
     pageEvent.on('create', pageEvent.onCreate);
     pageEvent.on('update', pageEvent.onUpdate);
     pageEvent.on('createMany', pageEvent.onCreateMany);
@@ -255,7 +255,7 @@ export const getPageSchema = (crowi) => {
     return this.save();
   };
 
-  pageSchema.methods.initLatestRevisionField = async function (revisionId) {
+  pageSchema.methods.initLatestRevisionField = function (revisionId) {
     this.latestRevision = this.revision;
     if (revisionId != null) {
       this.revision = revisionId;
@@ -267,8 +267,7 @@ export const getPageSchema = (crowi) => {
   ) {
     validateCrowi();
 
-    const User = crowi.model('User');
-    return populateDataToShowRevision(
+    return await populateDataToShowRevision(
       this,
       USER_FIELDS_EXCEPT_CONFIDENTIAL,
       shouldExcludeBody,
@@ -283,7 +282,7 @@ export const getPageSchema = (crowi) => {
       this.revision = revisionId;
     }
     // biome-ignore lint/plugin: populating is the purpose of this method
-    return this.populate('revision');
+    return await this.populate('revision');
   };
 
   pageSchema.methods.applyScope = function (user, grant, grantUserGroupIds) {

+ 1 - 1
apps/app/src/server/models/user/index.js

@@ -29,7 +29,7 @@ const factory = (crowi) => {
 
   // init event
   if (crowi != null) {
-    userEvent = crowi.event('user');
+    userEvent = crowi.events.user;
     userEvent.on('activated', userEvent.onActivated);
   }
 

+ 1 - 1
apps/app/src/server/routes/apiv3/app-settings/file-upload-setting.ts

@@ -141,7 +141,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware();
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   router.put(
     '/',

+ 1 - 1
apps/app/src/server/routes/apiv3/app-settings/index.ts

@@ -319,7 +319,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware();
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const validator = {
     appSetting: [

+ 2 - 3
apps/app/src/server/routes/apiv3/attachment.js

@@ -141,13 +141,12 @@ module.exports = (crowi) => {
   const loginRequiredStrictly = require('../../middlewares/login-required')(
     crowi,
   );
-  const Page = crowi.model('Page');
-  const User = crowi.model('User');
+  const { Page, User } = crowi.models;
   const { attachmentService } = crowi;
   const uploads = multer({ dest: `${crowi.tmpDir}uploads` });
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const validator = {
     retrieveAttachment: [

+ 1 - 1
apps/app/src/server/routes/apiv3/bookmarks.ts

@@ -98,7 +98,7 @@ module.exports = (crowi) => {
   );
   const addActivity = generateAddActivityMiddleware();
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const validator = {
     bookmarks: [body('pageId').isString(), body('bool').isBoolean()],

+ 1 - 1
apps/app/src/server/routes/apiv3/customize-setting.js

@@ -194,7 +194,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const { customizeService, attachmentService } = crowi;
   const uploads = multer({ dest: `${crowi.tmpDir}uploads` });

+ 2 - 2
apps/app/src/server/routes/apiv3/export.js

@@ -128,8 +128,8 @@ module.exports = (crowi) => {
 
   const { socketIoService } = crowi;
 
-  const activityEvent = crowi.event('activity');
-  const adminEvent = crowi.event('admin');
+  const activityEvent = crowi.events.activity;
+  const adminEvent = crowi.events.admin;
 
   // setup event
   adminEvent.on('onProgressForExport', (data) => {

+ 4 - 4
apps/app/src/server/routes/apiv3/forgot-password.js

@@ -1,6 +1,7 @@
 import { ErrorV3 } from '@growi/core/dist/models';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import { format, subSeconds } from 'date-fns';
+import { join } from 'pathe';
 
 import { SupportedAction } from '~/interfaces/activity';
 import { generateAddActivityMiddleware } from '~/server/middlewares/add-activity';
@@ -44,12 +45,11 @@ const router = express.Router();
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
 module.exports = (crowi) => {
   const { appService, mailService } = crowi;
-  const User = crowi.model('User');
-  const path = require('path');
+  const { User } = crowi.models;
 
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const minPasswordLength = configManager.getConfig('app:minPasswordLength');
 
@@ -95,7 +95,7 @@ module.exports = (crowi) => {
     return mailService.send({
       to: email,
       subject: '[GROWI] Password Reset',
-      template: path.join(
+      template: join(
         crowi.localeDir,
         `${locale}/notifications/${templateFileName}.ejs`,
       ),

+ 2 - 2
apps/app/src/server/routes/apiv3/in-app-notification.ts

@@ -93,9 +93,9 @@ module.exports = (crowi) => {
 
   const inAppNotificationService = crowi.inAppNotificationService;
 
-  const User = crowi.model('User');
+  const { User } = crowi.models;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * @swagger

+ 1 - 1
apps/app/src/server/routes/apiv3/logout.js

@@ -10,7 +10,7 @@ const router = express.Router();
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
 module.exports = (crowi) => {
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
   const addActivity = generateAddActivityMiddleware(crowi);
 
   /**

+ 1 - 1
apps/app/src/server/routes/apiv3/markdown-setting.js

@@ -128,7 +128,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * @swagger

+ 2 - 2
apps/app/src/server/routes/apiv3/notification-setting.js

@@ -186,9 +186,9 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
-  const GlobalNotificationSetting = crowi.model('GlobalNotificationSetting');
+  const { GlobalNotificationSetting } = crowi.models;
 
   const GlobalNotificationMailSetting =
     crowi.models.GlobalNotificationMailSetting;

+ 2 - 3
apps/app/src/server/routes/apiv3/pages/index.js

@@ -46,10 +46,9 @@ module.exports = (crowi) => {
   );
   const adminRequired = require('../../../middlewares/admin-required')(crowi);
 
-  const Page = crowi.model('Page');
-  const User = crowi.model('User');
+  const { Page, User } = crowi.models;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const globalNotificationService = crowi.getGlobalNotificationService();
 

+ 1 - 1
apps/app/src/server/routes/apiv3/personal-setting/index.js

@@ -80,7 +80,7 @@ module.exports = (crowi) => {
 
   const { User } = crowi.models;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const minPasswordLength = crowi.configManager.getConfig(
     'app:minPasswordLength',

+ 1 - 1
apps/app/src/server/routes/apiv3/search.js

@@ -104,7 +104,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * @swagger

+ 1 - 1
apps/app/src/server/routes/apiv3/security-settings/index.js

@@ -418,7 +418,7 @@ module.exports = (crowi) => {
   const adminRequired = require('~/server/middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   async function updateAndReloadStrategySettings(
     authId,

+ 2 - 2
apps/app/src/server/routes/apiv3/share-links.js

@@ -86,9 +86,9 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const Page = crowi.model('Page');
+  const { Page } = crowi.models;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * middleware to limit link sharing

+ 1 - 1
apps/app/src/server/routes/apiv3/slack-integration-legacy-settings.js

@@ -57,7 +57,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * @swagger

+ 2 - 2
apps/app/src/server/routes/apiv3/slack-integration-settings.js

@@ -55,9 +55,9 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const SlackAppIntegration = crowi.model('SlackAppIntegration');
+  const { SlackAppIntegration } = crowi.models;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const validator = {
     botType: [body('currentBotType').isString()],

+ 1 - 1
apps/app/src/server/routes/apiv3/user-group.js

@@ -33,7 +33,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const { User, Page } = crowi.models;
 

+ 1 - 1
apps/app/src/server/routes/apiv3/users.js

@@ -120,7 +120,7 @@ module.exports = (crowi) => {
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const { User, Page } = crowi.models;
 

+ 2 - 3
apps/app/src/server/routes/attachment/api.js

@@ -131,11 +131,10 @@ const ApiResponse = require('../../util/apiResponse');
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
 export const routesFactory = (crowi) => {
-  const Page = crowi.model('Page');
-  const User = crowi.model('User');
+  const { Page, User } = crowi.models;
   const { attachmentService } = crowi;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   /**
    * Check the user is accessible to the related page

+ 3 - 4
apps/app/src/server/routes/comment.js

@@ -58,13 +58,12 @@ import { preNotifyService } from '../service/pre-notify';
  */
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
-module.exports = (crowi, app) => {
+module.exports = (crowi, _app) => {
   const logger = loggerFactory('growi:routes:comment');
-  const User = crowi.model('User');
-  const Page = crowi.model('Page');
+  const { User, Page } = crowi.models;
   const ApiResponse = require('../util/apiResponse');
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const globalNotificationService = crowi.getGlobalNotificationService();
   const userNotificationService = crowi.getUserNotificationService();

+ 1 - 1
apps/app/src/server/routes/login-passport.js

@@ -14,7 +14,7 @@ module.exports = (crowi, app) => {
   const passport = require('passport');
   const passportService = crowi.passportService;
 
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const ApiResponse = require('../util/apiResponse');
 

+ 2 - 2
apps/app/src/server/routes/login.js

@@ -12,9 +12,9 @@ import { growiInfoService } from '../service/growi-info';
 module.exports = (crowi, app) => {
   const logger = loggerFactory('growi:routes:login');
   const path = require('path');
-  const User = crowi.model('User');
+  const { User } = crowi.models;
   const { appService, aclService, mailService, activityService } = crowi;
-  const activityEvent = crowi.event('activity');
+  const activityEvent = crowi.events.activity;
 
   const actions = {};
 

+ 2 - 2
apps/app/src/server/routes/page.js

@@ -15,13 +15,13 @@ import UpdatePost from '../models/update-post';
  */
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
-module.exports = (crowi, app) => {
+module.exports = (crowi, _app) => {
   const logger = loggerFactory('growi:routes:page');
 
   const { pagePathUtils } = require('@growi/core/dist/utils');
 
   /** @type {import('../models/page').PageModel} */
-  const Page = crowi.model('Page');
+  const { Page } = crowi.models;
 
   const PageRedirect = mongoose.model('PageRedirect');
 

+ 4 - 5
apps/app/src/server/routes/tag.js

@@ -6,8 +6,7 @@ import { Revision } from '../models/revision';
 import ApiResponse from '../util/apiResponse';
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
-module.exports = (crowi, app) => {
-  const activityEvent = crowi.event('activity');
+module.exports = (crowi, _app) => {
   const actions = {};
   const api = {};
 
@@ -117,9 +116,9 @@ module.exports = (crowi, app) => {
    * @apiParam {array} tags
    */
   api.update = async (req, res) => {
-    const Page = crowi.model('Page');
-    const User = crowi.model('User');
-    const tagEvent = crowi.event('tag');
+    const { Page, User } = crowi.models;
+    const tagEvent = crowi.events.tag;
+    const activityEvent = crowi.events.activity;
     const pageId = req.body.pageId;
     const tags = req.body.tags;
     const userId = req.user._id;

+ 2 - 2
apps/app/src/server/routes/user.js

@@ -45,8 +45,8 @@
  *            example: 2010-01-01T00:00:00.000Z
  */
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
-module.exports = (crowi, app) => {
-  const User = crowi.model('User');
+module.exports = (crowi, _app) => {
+  const { User } = crowi.models;
   const ApiResponse = require('../util/apiResponse');
 
   const actions = {};

+ 1 - 1
apps/app/src/server/service/export.ts

@@ -58,7 +58,7 @@ class ExportService {
     this.growiBridgeService = crowi.growiBridgeService;
     this.baseDir = path.join(crowi.tmpDir, 'downloads');
 
-    this.adminEvent = crowi.event('admin');
+    this.adminEvent = crowi.events.admin;
 
     this.currentProgressingStatus = null;
   }

+ 0 - 1
apps/app/src/server/service/global-notification/global-notification-mail.js

@@ -35,7 +35,6 @@ class GlobalNotificationMailService {
   async fire(event, page, triggeredBy, vars) {
     const { mailService } = this.crowi;
 
-    const GlobalNotification = this.crowi.model('GlobalNotificationSetting');
     const notifications = await GlobalNotification.findSettingByPathAndEvent(
       event,
       page.path,

+ 1 - 1
apps/app/src/server/service/global-notification/global-notification-slack.js

@@ -40,7 +40,7 @@ class GlobalNotificationSlackService {
   async fire(event, id, path, triggeredBy, vars) {
     const { appService, slackIntegrationService } = this.crowi;
 
-    const GlobalNotification = this.crowi.model('GlobalNotificationSetting');
+    const { GlobalNotification } = this.crowi.models;
     const notifications = await GlobalNotification.findSettingByPathAndEvent(
       event,
       path,

+ 1 - 1
apps/app/src/server/service/global-notification/index.js

@@ -19,7 +19,7 @@ class GlobalNotificationService {
     this.gloabalNotificationMail = new GloabalNotificationMail(crowi);
     this.gloabalNotificationSlack = new GloabalNotificationSlack(crowi);
 
-    this.Page = this.crowi.model('Page');
+    this.Page = this.crowi.models.Page;
   }
 
   /**

+ 2 - 2
apps/app/src/server/service/passport.ts

@@ -267,7 +267,7 @@ class PassportService implements S2sMessageHandlable {
 
     logger.debug('LocalStrategy: setting up..');
 
-    const User = this.crowi.model('User');
+    const { User } = this.crowi.models;
 
     passport.use(
       new LocalStrategy(
@@ -1117,7 +1117,7 @@ class PassportService implements S2sMessageHandlable {
 
     logger.debug('setting up serializer and deserializer');
 
-    const User = this.crowi.model('User');
+    const { User } = this.crowi.models;
 
     passport.serializeUser((user, done) => {
       done(null, (user as any).id);

+ 1 - 1
apps/app/src/server/util/createGrowiPagesFromImports.js

@@ -4,7 +4,7 @@ const { isCreatablePage } = pagePathUtils;
 
 /** @param {import('~/server/crowi').default} crowi Crowi instance */
 module.exports = (crowi) => {
-  const Page = crowi.model('Page');
+  const { Page } = crowi.models;
 
   /**
    * Create posts from imported data

+ 0 - 4
apps/app/test/integration/middlewares/login-required.test.js

@@ -228,8 +228,6 @@ describe('loginRequired', () => {
     });
 
     test('pass user who logged in', () => {
-      const User = crowi.model('User');
-
       req.user = {
         _id: 'user id',
         status: UserStatus.STATUS_ACTIVE,
@@ -273,8 +271,6 @@ describe('loginRequired', () => {
     );
 
     test("redirect to '/login' when user.status is 'STATUS_DELETED'", () => {
-      const User = crowi.model('User');
-
       req.baseUrl = '/path/that/requires/loggedin';
       req.user = {
         _id: 'user id',