query groups and courses
This commit is contained in:
@@ -163,6 +163,35 @@ userDB = (DB) => {
|
||||
return r;
|
||||
}
|
||||
|
||||
DB.searchGroups = async (queryStr, coursesB = false) => {
|
||||
let regEx = new RegExp(queryStr, 'i');
|
||||
let query = queryStr ? {
|
||||
isGroup: true,
|
||||
isCourse: coursesB,
|
||||
$or: [
|
||||
{"profile.firstName": {
|
||||
$regex: regEx
|
||||
}},
|
||||
{"profile.lastName": {
|
||||
$regex: regEx
|
||||
}},
|
||||
{"profile.description": {
|
||||
$regex: regEx
|
||||
}},
|
||||
{"data.author": {
|
||||
$regex: regEx
|
||||
}}
|
||||
]
|
||||
} : {isGroup: true, isCourse: coursesB};
|
||||
let r = await DB.profileCols.find(query)
|
||||
.sort({ lastUpdate: -1 }).limit(20)
|
||||
.toArray().catch((err) => {
|
||||
console.log(err);
|
||||
return false;
|
||||
});
|
||||
return r;
|
||||
}
|
||||
|
||||
let privateGroupsCache = {};
|
||||
DB.isGroupPrivate = async (groupid) => {
|
||||
if(userProfileCache[groupid]) return userProfileCache[groupid].isPrivate;
|
||||
|
||||
Reference in New Issue
Block a user