diff options
| author | Adam Soltys <[email protected]> | 2024-11-22 21:17:05 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-11-22 21:17:05 -0800 |
| commit | 0f91147464ad2668632eb61098f21eaf54245417 (patch) | |
| tree | 5c42086947f23560adaed7eadbba11f52e68c75f /src | |
| parent | 5317814af8f289b422b53ceb42ff8fe10f13d393 (diff) | |
| download | coinos-ui-0f91147464ad2668632eb61098f21eaf54245417.tar.gz coinos-ui-0f91147464ad2668632eb61098f21eaf54245417.zip | |
ecash post req
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/parse.ts | 1 | ||||
| -rw-r--r-- | src/routes/(app)/ecash/post/+server.ts | 10 | ||||
| -rw-r--r-- | src/routes/(app)/send/ecash/[request]/+page.server.ts | 13 | ||||
| -rw-r--r-- | src/routes/(app)/send/ecash/[request]/+page.svelte | 30 |
4 files changed, 38 insertions, 16 deletions
diff --git a/src/lib/parse.ts b/src/lib/parse.ts index 5082cc16..6483aaa0 100644 --- a/src/lib/parse.ts +++ b/src/lib/parse.ts @@ -65,7 +65,6 @@ export default async (s, host) => { redirect(307, `/ecash/${id}`); } - console.log("HI", t); if (t.startsWith("creq")) redirect(307, `/send/ecash/${t}`); // user diff --git a/src/routes/(app)/ecash/post/+server.ts b/src/routes/(app)/ecash/post/+server.ts new file mode 100644 index 00000000..0e5ae605 --- /dev/null +++ b/src/routes/(app)/ecash/post/+server.ts @@ -0,0 +1,10 @@ +import { json } from "@sveltejs/kit"; + +export async function POST({ fetch, request }) { + const { target, payload } = await request.json(); + const res = await fetch(target, { + method: "POST", + body: JSON.stringify(payload), + }); + return json(res); +} diff --git a/src/routes/(app)/send/ecash/[request]/+page.server.ts b/src/routes/(app)/send/ecash/[request]/+page.server.ts index 5ab3e9c0..6cc593cc 100644 --- a/src/routes/(app)/send/ecash/[request]/+page.server.ts +++ b/src/routes/(app)/send/ecash/[request]/+page.server.ts @@ -7,9 +7,16 @@ export async function load({ cookies, params, url }) { redirect(307, `/login?redirect=${encodeURIComponent(url.pathname)}`); const req = { ...decodePaymentRequest(params.request) }; - const { target } = req.transport[0]; - const recipient = await get(`/profile/${target}`); - return { req, recipient }; + const [{ target, type }] = req.transport; + + let recipient = { name: "", pubkey: null }; + if (type === "nostr") { + recipient = await get(`/profile/${target}`); + } else if (type === "post") { + recipient.name = new URL(target).hostname; + } + + return { req, recipient, type, target }; } export const actions = { diff --git a/src/routes/(app)/send/ecash/[request]/+page.svelte b/src/routes/(app)/send/ecash/[request]/+page.svelte index 2f58d78c..1f950de0 100644 --- a/src/routes/(app)/send/ecash/[request]/+page.svelte +++ b/src/routes/(app)/send/ecash/[request]/+page.svelte @@ -1,6 +1,6 @@ <script lang="ts"> import { goto } from "$app/navigation"; - import { fail, post } from "$lib/utils"; + import { focus, fail, post } from "$lib/utils"; import { applyAction, deserialize } from "$app/forms"; import { t } from "$lib/translations"; import { enhance } from "$app/forms"; @@ -31,25 +31,28 @@ try { let { pid, token } = await post("/ecash/mint", { amount }); - const dec = (token) => getDecodedToken(token).token[0]; - let { proofs } = dec(token); + let { proofs } = getDecodedToken(token); let { id, mints, unit = "" } = req; let mint = mints[0]; - const paymentPayload: PaymentRequestPayload = { + + const payload = { id, mint, unit, proofs, }; - const paymentPayloadString = JSON.stringify(paymentPayload); - let event = wrapEvent( - await getPrivateKey(user), - { publicKey: recipient.pubkey }, - JSON.stringify(paymentPayload), - ); + if (type === "nostr") { + let event = wrapEvent( + await getPrivateKey(user), + { publicKey: recipient.pubkey }, + JSON.stringify(payload), + ); - await Promise.any(pool.publish(recipient.relays, event)); + await Promise.any(pool.publish(recipient.relays, event)); + } else if (type === "post") { + await post("/ecash/post", { target, payload }); + } goto(`/sent/${pid}`); } catch (e) { @@ -60,7 +63,10 @@ submitting = false; }; - let { rates, recipient, req, user } = $derived({ ...data, ...form }); + let { rates, recipient, req, user, type, target } = $derived({ + ...data, + ...form, + }); let { currency } = $derived(user); let a = $state(); let next = $state(); |
