Skip to content

Commit

Permalink
better error handling for dm (#499)
Browse files Browse the repository at this point in the history
  • Loading branch information
BlowaterNostr authored Aug 29, 2024
1 parent a5d5cfc commit 1d9473f
Show file tree
Hide file tree
Showing 12 changed files with 65 additions and 41 deletions.
4 changes: 2 additions & 2 deletions app/UI/_setup.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Database_View, EventMark, EventMarker, EventsAdapter, Indices, RelayRecorder } from "../database.ts";
import { EventBus } from "../event-bus.ts";
import { NostrAccountContext, NostrEvent, NostrKind, prepareNormalNostrEvent } from "@blowater/nostr-sdk";
import { NostrAccountContext, NostrEvent, NostrKind, prepareNostrEvent } from "@blowater/nostr-sdk";
import { UI_Interaction_Event } from "./app_update.tsx";
import { Profile_Nostr_Event } from "../nostr.ts";
import { ProfileData } from "../features/profile.ts";
Expand Down Expand Up @@ -62,7 +62,7 @@ export const prepareProfileEvent = async (
author: NostrAccountContext,
profile: ProfileData,
) => {
const profileEvent = await prepareNormalNostrEvent(author, {
const profileEvent = await prepareNostrEvent(author, {
kind: NostrKind.META_DATA,
content: JSON.stringify(profile),
}) as NostrEvent<NostrKind.META_DATA>;
Expand Down
2 changes: 1 addition & 1 deletion app/UI/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -721,7 +721,7 @@ const sync_space_members = async (
) => {
for (const relay of pool.getRelays()) {
(async () => {
const chan = relay.getSpaceMembersStream();
const chan = relay.unstable.getSpaceMembersStream();
for await (const spaceMembers of chan) {
if (spaceMembers instanceof Error) {
if (spaceMembers instanceof TypeError || spaceMembers instanceof SyntaxError) {
Expand Down
6 changes: 3 additions & 3 deletions app/UI/app_update.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ import {
NostrKind,
NoteID,
prepareDeletionEvent,
prepareNormalNostrEvent,
prepareNostrEvent,
prepareReactionEvent,
PublicKey,
SingleRelayConnection,
Expand Down Expand Up @@ -245,7 +245,7 @@ const handle_update_event = async (chan: PutChannel<true>, args: {
children: (
<SpaceSetting
emit={app.eventBus.emit}
getSpaceInformationChan={relay.getRelayInformationStream}
getSpaceInformationChan={relay.unstable.getRelayInformationStream}
getMemberSet={app.database.getMemberSet}
spaceUrl={spaceUrl}
getProfileByPublicKey={app.database.getProfileByPublicKey}
Expand Down Expand Up @@ -716,7 +716,7 @@ export async function handle_SendMessage(
currentRelay: args.current_relay.url,
},
)
: await prepareNormalNostrEvent(ctx, {
: await prepareNostrEvent(ctx, {
content: ui_event.text,
kind: NostrKind.TEXT_NOTE,
tags: [...tags, ["client", "https://blowater.app"]],
Expand Down
2 changes: 1 addition & 1 deletion app/UI/editor.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { h, render } from "preact";
import { Editor } from "./editor.tsx";
import { prepareProfileEvent, testEventBus } from "./_setup.test.ts";
import { InMemoryAccountContext, NostrKind } from "@blowater/nostr-sdk";
import { prepareEncryptedNostrEvent, prepareNormalNostrEvent } from "@blowater/nostr-sdk";
import { prepareEncryptedNostrEvent, prepareNostrEvent } from "@blowater/nostr-sdk";
import { getTags, Parsed_Event, Profile_Nostr_Event } from "../nostr.ts";
import { NostrEvent } from "@blowater/nostr-sdk";

Expand Down
4 changes: 2 additions & 2 deletions app/UI/event-detail.test.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/** @jsx h */
import { h, render } from "preact";
import { prepareNormalNostrEvent } from "@blowater/nostr-sdk";
import { prepareNostrEvent } from "@blowater/nostr-sdk";
import { PrivateKey, PublicKey } from "@blowater/nostr-sdk";
import { NoteID } from "@blowater/nostr-sdk";
import { InMemoryAccountContext, NostrKind } from "@blowater/nostr-sdk";
import { EventDetail, EventDetailItem } from "./event-detail.tsx";

const ctx = InMemoryAccountContext.New(PrivateKey.Generate());
const event = await prepareNormalNostrEvent(ctx, {
const event = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
tags: [["d", "nostr"]],
content: "Pura Vida",
Expand Down
38 changes: 31 additions & 7 deletions app/database.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { InMemoryAccountContext, NostrKind, prepareNormalNostrEvent, PrivateKey } from "@blowater/nostr-sdk";
import {
InMemoryAccountContext,
NostrEvent,
NostrKind,
prepareNostrEvent,
PrivateKey,
} from "@blowater/nostr-sdk";
import { test_db_view } from "./UI/_setup.test.ts";
import { Parsed_Event } from "./nostr.ts";
import { assertEquals } from "https://deno.land/std@0.202.0/assert/assert_equals.ts";
Expand All @@ -11,7 +17,10 @@ Deno.test("Database", async () => {
const db = await test_db_view();

const stream = db.subscribe();
const event_to_add = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "1" });
const event_to_add = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "1",
}) as NostrEvent;
await db.addEvent(event_to_add);
const e1 = db.getEventByID(event_to_add.id);
if (!e1) {
Expand Down Expand Up @@ -51,7 +60,10 @@ Deno.test("Database", async () => {
const stream2 = db.subscribe();

await db.addEvent(event_to_add); // add a duplicated event
const event_to_add2 = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "2" });
const event_to_add2 = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "2",
}) as NostrEvent;
// console.log(event_to_add2.id, event_to_add.id)
await db.addEvent(event_to_add2);
const res_2 = await stream.pop() as {
Expand Down Expand Up @@ -82,8 +94,14 @@ Deno.test("Relay Record", async () => {
const db = await test_db_view();

const stream = db.subscribe();
const event_to_add = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "1" });
const event_to_add_2 = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "2" });
const event_to_add = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "1",
}) as NostrEvent;
const event_to_add_2 = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "2",
}) as NostrEvent;
await db.addEvent(event_to_add); // send by client

{
Expand Down Expand Up @@ -118,7 +136,10 @@ Deno.test("Relay Record", async () => {
Deno.test("mark removed event", async () => {
const ctx = InMemoryAccountContext.New(PrivateKey.Generate());
const db = await test_db_view();
const event_to_add = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "1" });
const event_to_add = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "1",
}) as NostrEvent;

const parsed_event = await db.addEvent(event_to_add);
const retrieved_event = db.getEventByID(event_to_add.id);
Expand All @@ -141,7 +162,10 @@ Deno.test("mark removed event", async () => {
Deno.test("getAllEvents", async () => {
const ctx = InMemoryAccountContext.New(PrivateKey.Generate());
const db = await test_db_view();
const event_to_add = await prepareNormalNostrEvent(ctx, { kind: NostrKind.TEXT_NOTE, content: "1" });
const event_to_add = await prepareNostrEvent(ctx, {
kind: NostrKind.TEXT_NOTE,
content: "1",
}) as NostrEvent;

assertEquals(Array.from(db.getAllEvents()), []);

Expand Down
10 changes: 4 additions & 6 deletions app/features/dm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ export class DirectedMessageController implements DirectMessageGetter {
);

if (result.type == "Other") {
return result;
return result.error;
} else if (result.type == "NotMyMessage") {
return result;
return result.error;
} else if (result.type == "error") {
return result;
return result.error;
}

const dm_event = result.event;
Expand Down Expand Up @@ -237,9 +237,7 @@ export class DirectedMessageController implements DirectMessageGetter {
}
this.directed_messages.set(event.id, chatMessage);
/* do not await */ this.new_message_chan.put(chatMessage);
return {
type: true,
};
return;
}

onChange() {
Expand Down
7 changes: 5 additions & 2 deletions app/features/profile.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
NostrAccountContext,
NostrKind,
prepareNormalNostrEvent,
prepareNostrEvent,
SingleRelayConnection,
} from "@blowater/nostr-sdk";

Expand All @@ -10,10 +10,13 @@ export async function saveProfile(
sender: NostrAccountContext,
relay: SingleRelayConnection,
) {
const event = await prepareNormalNostrEvent(
const event = await prepareNostrEvent(
sender,
{ kind: NostrKind.META_DATA, content: JSON.stringify(profile) },
);
if (event instanceof Error) {
return event;
}
return relay.sendEvent(event);
}

Expand Down
6 changes: 3 additions & 3 deletions app/nostr.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
InMemoryAccountContext,
NostrEvent,
NostrKind,
prepareNormalNostrEvent,
prepareNostrEvent,
PrivateKey,
utf8Decode,
} from "@blowater/nostr-sdk";
Expand Down Expand Up @@ -45,14 +45,14 @@ Deno.test("Generate reply event", async () => {
const userAPrivateKey = PrivateKey.Generate();
const userAContext = InMemoryAccountContext.New(userAPrivateKey);

const message1 = await prepareNormalNostrEvent(
const message1 = await prepareNostrEvent(
userAContext,
{
kind: NostrKind.DIRECT_MESSAGE,

content: "text message 1",
},
);
) as NostrEvent;

const replyMessage1WithText = await prepareReplyEvent(
userAContext,
Expand Down
4 changes: 2 additions & 2 deletions app/nostr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import {
NostrKind,
prepareEncryptedNostrEvent,
prepareNormalNostrEvent,
prepareNostrEvent,
PublicKey,
TagPubKey,
} from "@blowater/nostr-sdk";
Expand Down Expand Up @@ -183,7 +183,7 @@ export async function prepareReplyEvent(
},
): Promise<nostr.NostrEvent | Error> {
const ps = getTags(args.targetEvent).p;
return prepareNormalNostrEvent(
return prepareNostrEvent(
sender,
{
kind: args.targetEvent.kind,
Expand Down
2 changes: 1 addition & 1 deletion deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"imports": {
"@blowater/collections": "jsr:@blowater/collections@^0.0.0-rc3",
"@blowater/csp": "jsr:@blowater/csp@1.0.0",
"@blowater/nostr-sdk": "jsr:@blowater/nostr-sdk@0.0.7",
"@blowater/nostr-sdk": "jsr:@blowater/nostr-sdk@^0.0.16",
"@std/assert": "jsr:@std/assert@0.226.0",
"@std/datetime": "jsr:@std/datetime@0.224.2",
"@std/encoding": "jsr:@std/encoding@1.0.0",
Expand Down
21 changes: 10 additions & 11 deletions deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1d9473f

Please sign in to comment.