Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

better error handling for dm #499

Merged
merged 2 commits into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

Loading