aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/messages/+page.server.ts
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-09-10 20:39:47 -0700
committerAdam Soltys <[email protected]>2024-09-17 09:18:36 -0700
commit1f63848ca9fb01336f04b41434de1cc06a5b3d93 (patch)
tree2affa3041863be365f33d99e1f32bda60cf93a32 /src/routes/(app)/messages/+page.server.ts
parent6e48c584605bec5623c12c470d04d07303983801 (diff)
downloadcoinos-ui-1f63848ca9fb01336f04b41434de1cc06a5b3d93.tar.gz
coinos-ui-1f63848ca9fb01336f04b41434de1cc06a5b3d93.zip
move routes
Diffstat (limited to 'src/routes/(app)/messages/+page.server.ts')
-rw-r--r--src/routes/(app)/messages/+page.server.ts42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/routes/(app)/messages/+page.server.ts b/src/routes/(app)/messages/+page.server.ts
new file mode 100644
index 00000000..94659621
--- /dev/null
+++ b/src/routes/(app)/messages/+page.server.ts
@@ -0,0 +1,42 @@
+import { get } from "$lib/utils";
+import { redirect } from "@sveltejs/kit";
+
+interface Message {
+ created_at: number;
+}
+
+interface Note {
+ created_at: number;
+ seen: number;
+}
+
+export async function load({ params, parent, }) {
+ let { user } = await parent();
+ if (user.username !== params.username) redirect(307, `/${params.username}`);
+ let { since = 0 } = params;
+
+ let messages = [],
+ notes = [];
+
+ if (user?.pubkey) {
+ let { pubkey } = user;
+ try {
+ messages = await get(`/${pubkey}/${since}/messages`);
+ messages = messages.sort((a: Message, b: Message) => b.created_at - a.created_at);
+ } catch (e) {
+ console.log(`failed to fetch nostr messages`, e);
+ }
+
+ try {
+ notes = await get(`/${pubkey}/notes`);
+ } catch (e) {
+ console.log(`failed to fetch nostr notes for ${pubkey}`, e);
+ }
+
+ notes.map((e: Note) => {
+ e.seen = e.created_at;
+ });
+ }
+
+ return { messages, notes };
+}