query groups and courses
This commit is contained in:
@@ -163,6 +163,35 @@ userDB = (DB) => {
|
|||||||
return r;
|
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 = {};
|
let privateGroupsCache = {};
|
||||||
DB.isGroupPrivate = async (groupid) => {
|
DB.isGroupPrivate = async (groupid) => {
|
||||||
if(userProfileCache[groupid]) return userProfileCache[groupid].isPrivate;
|
if(userProfileCache[groupid]) return userProfileCache[groupid].isPrivate;
|
||||||
|
|||||||
@@ -124,6 +124,16 @@ DB.getDB.then((DB)=>{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get("/groups/search", async (req, res) => {
|
||||||
|
let query = req.query.query;
|
||||||
|
let coursesB = req.query.courses ? true : false;
|
||||||
|
let groups = await DB.searchGroups(query, coursesB);
|
||||||
|
return res.json({
|
||||||
|
status: "ok",
|
||||||
|
groups
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
router.get("/groups/:id", async (req, res) => {
|
router.get("/groups/:id", async (req, res) => {
|
||||||
const groupid = req.params.id;
|
const groupid = req.params.id;
|
||||||
let groups = await DB.getGroup(groupid);
|
let groups = await DB.getGroup(groupid);
|
||||||
|
|||||||
Reference in New Issue
Block a user