aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-03-21 12:23:02 -0700
committerAdam Soltys <[email protected]>2023-03-21 12:23:02 -0700
commitb9824ce3b80f11f302458575cb90b230dbe08a37 (patch)
tree63b5bce3d06521507e3176b26f8f67e383dfc96d /src
parent067054f780e2f6f8acd9c950cbc2227783f6208b (diff)
downloadcoinos-ui-b9824ce3b80f11f302458575cb90b230dbe08a37.tar.gz
coinos-ui-b9824ce3b80f11f302458575cb90b230dbe08a37.zip
new send fiat route
Diffstat (limited to 'src')
-rw-r--r--src/routes/(app)/send/user/[username]/[...amount]/+page.server.js27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
index c63328e2..6fc74577 100644
--- a/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
+++ b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
@@ -1,9 +1,28 @@
import { error, fail, redirect } from '@sveltejs/kit';
-import { fd, auth, get, post } from '$lib/utils';
+import { types, sats, fd, auth, get, post } from '$lib/utils';
+
+export async function load({ cookies, params, parent }) {
+ let { rates, user } = await parent();
+ let { username } = params;
+ let [amount, currency] = params.amount.split('/');
+
+ if (amount) {
+ let rate = rates[currency.toUpperCase() || user.currency];
+ if (!rate) throw error(500, "Invalid currency symbol");
+ if (currency) amount = (amount * sats) / rate;
+
+ let { hash } = await post(
+ '/invoice',
+ {
+ invoice: { amount, prompt: false, type: types.lightning },
+ user: { username }
+ },
+ auth(cookies)
+ );
+
+ throw redirect(307, `/${username}/invoice/${hash}`);
+ }
-export async function load({ params, parent }) {
- let { user } = await parent();
- let { amount } = params;
let subject = await get(`/users/${params.username}`);
if (subject.username === user?.username) throw error(500, { message: 'Cannot send to self' });
return { amount, subject };