From aa662369cc7a293d0be5f4d419543a51ad40a7bc Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 20 Dec 2022 17:39:28 -0800 Subject: send user events --- routes/events.js | 30 ++++++++++++++++++++++++++++++ routes/users.js | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 routes/events.js (limited to 'routes') diff --git a/routes/events.js b/routes/events.js new file mode 100644 index 00000000..460d09a5 --- /dev/null +++ b/routes/events.js @@ -0,0 +1,30 @@ +import app from "$app"; +import redis from "$lib/redis"; +import { pool } from "$lib/nostr"; +import store from "$lib/store"; +import { wait } from "$lib/utils"; + +app.get("/:pubkey/events", async (req, res) => { + try { + let { pubkey } = req.params; + store.fetching[pubkey] = true; + store.timeouts[pubkey] = setTimeout(() => (store.fetching[pubkey] = false), 500); + + pool.subscribe(pubkey, { + limit: 500, + kinds: [1], + authors: [pubkey] + }); + + let events = []; + await wait(() => !store.fetching[pubkey], 10, 10); + for (let id of await redis.sMembers(pubkey)) { + events.push(JSON.parse(await redis.get(`ev:${id}`))); + } + + res.send(events); + } catch (e) { + console.log(e); + res.code(500).send("problem fetching user events"); + } +}); diff --git a/routes/users.js b/routes/users.js index c4b613eb..8d45e8c3 100644 --- a/routes/users.js +++ b/routes/users.js @@ -56,7 +56,7 @@ app.get("/me", auth, async (req, res) => { app.get("/users/:username", async (req, res) => { const { username } = req.params; - const user = await db.User.findOne({ + let user = await db.User.findOne({ attributes: ["username", "banner", "profile", "address", "currency"], where: Sequelize.where( Sequelize.fn("lower", Sequelize.col("username")), -- cgit v1.2.3