aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/invoice/+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)/invoice/+page.server.ts
parent6e48c584605bec5623c12c470d04d07303983801 (diff)
downloadcoinos-ui-1f63848ca9fb01336f04b41434de1cc06a5b3d93.tar.gz
coinos-ui-1f63848ca9fb01336f04b41434de1cc06a5b3d93.zip
move routes
Diffstat (limited to 'src/routes/(app)/invoice/+page.server.ts')
-rw-r--r--src/routes/(app)/invoice/+page.server.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/routes/(app)/invoice/+page.server.ts b/src/routes/(app)/invoice/+page.server.ts
new file mode 100644
index 00000000..83127457
--- /dev/null
+++ b/src/routes/(app)/invoice/+page.server.ts
@@ -0,0 +1,29 @@
+import { auth, post } from "$lib/utils";
+import { error, redirect } from "@sveltejs/kit";
+import type { Invoice } from "$lib/types";
+
+export let load = async ({ cookies, params, parent }) => {
+ let { account } = params;
+ let { subject, user, rates } = await parent();
+
+ let invoice: Invoice = {
+ account,
+ type: account ? "bitcoin" : "lightning",
+ rate: rates[user?.currency || subject?.currency],
+ };
+
+ if (!user) user = subject;
+
+ try {
+ invoice = await post("/invoice", { invoice, account, user }, auth(cookies));
+ } catch (e) {
+ console.log(e);
+ error(500, "Failed to generate invoice");
+ }
+
+ let { id } = invoice;
+
+ if (invoice.memoPrompt && !invoice.memo) {
+ redirect(307, `/invoice/${id}/memo`);
+ } else redirect(307, `/invoice/${id}`);
+};