From 0ebcc46e6bdaecb8898eb5077c6a8b74e963649f Mon Sep 17 00:00:00 2001 From: Rogerio Chaves Date: Sun, 5 Apr 2020 14:51:25 +0200 Subject: [PATCH] Add search --- app/lib/express.js | 13 ++++++++++--- app/lib/queries.js | 10 +++++++--- app/views/_header.ejs | 4 ++++ app/views/index.ejs | 8 -------- app/views/search.ejs | 11 +++++++++++ 5 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 app/views/search.ejs diff --git a/app/lib/express.js b/app/lib/express.js index a7f4104..0cef611 100644 --- a/app/lib/express.js +++ b/app/lib/express.js @@ -49,12 +49,11 @@ router.get("/", async (_req, res) => { res.redirect("/about"); } - const [posts, people, friends] = await Promise.all([ + const [posts, friends] = await Promise.all([ queries.getPosts(ssbServer), - queries.getPeople(ssbServer), queries.getFriends(profile, ssbServer), ]); - res.render("index", { profile, posts, people, friends }); + res.render("index", { profile, posts, friends }); }); router.post("/publish", async (req, res) => { @@ -103,6 +102,14 @@ router.get("/debug", async (_req, res) => { res.render("debug", { profile, entries }); }); +router.get("/search", async (req, res) => { + const query = req.query.query; + + const people = await queries.searchPeople(ssbServer, query); + + res.render("search", { profile, people }); +}); + const expressServer = app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`) ); diff --git a/app/lib/queries.js b/app/lib/queries.js index afdac28..19b8242 100644 --- a/app/lib/queries.js +++ b/app/lib/queries.js @@ -92,7 +92,7 @@ const getPosts = (ssbServer) => ); }); -const getPeople = (ssbServer) => +const searchPeople = (ssbServer, search) => new Promise((resolve, reject) => { pull( ssbServer.query.read({ @@ -111,7 +111,11 @@ const getPeople = (ssbServer) => ], }), pull.filter((msg) => { - return msg.value.content && msg.value.author == msg.value.content.about; + return ( + msg.value.content && + msg.value.author == msg.value.content.about && + msg.value.content.name.includes(search) + ); }), pull.collect((err, msgs) => { const entries = msgs.map((x) => x.value); @@ -170,7 +174,7 @@ const getAllEntries = (ssbServer) => module.exports = { mapAuthorName, getPosts, - getPeople, + searchPeople, getFriends, getAllEntries, }; diff --git a/app/views/_header.ejs b/app/views/_header.ejs index 671a9ec..1815056 100644 --- a/app/views/_header.ejs +++ b/app/views/_header.ejs @@ -28,6 +28,10 @@
<%= profile.name %> (<%= profile.id.slice(0, 8) %>)
+
+ + +