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

filter username from database

https://youtrack.weseek.co.jp/issue/GW-7773
- Filter users list by displayedText
- Format text to display on select username
I Komang Mudana 3 лет назад
Родитель
Сommit
fed3b73380

+ 7 - 6
packages/app/src/components/PageEditor/CommentMentionHelper.ts

@@ -27,11 +27,10 @@ export default class CommentMentionHelper {
 
     this.editor.showHint({
       completeSingle: false,
-      hint: () => {
+      hint: async() => {
         const mention = this.editor.getDoc().getRange(sc.from(), sc.to());
         const username = mention.replace('@', '');
-        const users = this.getUsersList(username);
-
+        const users = await this.getUsersList(username);
         return {
           list: users,
           from: sc.from(),
@@ -42,10 +41,12 @@ export default class CommentMentionHelper {
   }
 
   getUsersList = async(username) => {
-    const { data } = await apiv3Get('/users/list', { username });
+    const { data } = await apiv3Get('/users/list');
     return data.users.map(user => ({
-      ...user,
-    }));
+      text: `@${user.username} `,
+      displayText: user.username,
+    }))
+      .filter(user => user.displayText.includes(username));
   }
 
 }

+ 2 - 4
packages/app/src/server/routes/apiv3/users.js

@@ -13,6 +13,7 @@ const path = require('path');
 const { body, query } = require('express-validator');
 const { isEmail } = require('validator');
 
+const { serializePageSecurely } = require('../../models/serializers/page-serializer');
 const { serializeUserSecurely } = require('../../models/serializers/user-serializer');
 const ErrorV3 = require('../../models/vo/error-apiv3');
 
@@ -898,14 +899,11 @@ module.exports = (crowi) => {
    */
   router.get('/list', accessTokenParser, loginRequired, async(req, res) => {
     const userIds = req.query.userIds || null;
-    const username = req.query.username || null;
+
     let userFetcher;
     if (!userIds || userIds.split(',').length <= 0) {
       userFetcher = User.findAllUsers();
     }
-    else if (username !== null) {
-      userFetcher = User.find({ username: { $regex: username } });
-    }
     else {
       userFetcher = User.findUsersByIds(userIds.split(','));
     }