mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-05-20 20:58:51 +00:00
Add API Call to retrieve auto-complete options for usernames
This commit is contained in:
parent
7d29ae44ba
commit
39761bdc04
1 changed files with 34 additions and 0 deletions
34
website/server/controllers/api-v4/members.js
Normal file
34
website/server/controllers/api-v4/members.js
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import {model as User} from '../../models/user';
|
||||
|
||||
let api = {};
|
||||
|
||||
|
||||
api.getUsernameAutocompletes = {
|
||||
method: 'GET',
|
||||
url: '/members/find/:username',
|
||||
middlewares: [],
|
||||
async handler (req, res) {
|
||||
req.checkParams('username', res.t('invalidReqParams')).notEmpty();
|
||||
|
||||
let validationErrors = req.validationErrors();
|
||||
if (validationErrors) throw validationErrors;
|
||||
|
||||
let username = req.params.username.toLowerCase();
|
||||
if (username[0] === '@') username = username.slice(1, username.length);
|
||||
|
||||
if (username.length < 2) {
|
||||
res.respond(200, []);
|
||||
return;
|
||||
}
|
||||
|
||||
let members = await User
|
||||
.find({'auth.local.lowerCaseUsername': {$regex: `.*${username}.*`}, 'flags.verifiedUsername': true})
|
||||
.select(['profile.name', 'contributor', 'auth.local.username'])
|
||||
.limit(20)
|
||||
.exec();
|
||||
|
||||
res.respond(200, members);
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = api;
|
||||
Loading…
Reference in a new issue