aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/invoice
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/(app)/invoice')
-rw-r--r--src/routes/(app)/invoice/[id]/tip/+page.server.ts21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/routes/(app)/invoice/[id]/tip/+page.server.ts b/src/routes/(app)/invoice/[id]/tip/+page.server.ts
index c3be68f0..de24c639 100644
--- a/src/routes/(app)/invoice/[id]/tip/+page.server.ts
+++ b/src/routes/(app)/invoice/[id]/tip/+page.server.ts
@@ -1,12 +1,29 @@
import invoice from "$lib/invoice";
import getRates from "$lib/rates";
+import { auth, get, post } from "$lib/utils";
import { redirect } from "@sveltejs/kit";
-export async function load({ parent }) {
+export async function load({ cookies, parent }) {
const rates = await getRates();
- const { invoice, subject } = await parent();
+ let { invoice, subject, user } = await parent();
if (!invoice.amount) redirect(307, `/invoice/${invoice.id}`);
+ const trust = await get("/trust", auth(cookies));
+ const trusted = trust.includes(invoice.uid);
+ if (trusted) {
+ if (invoice.prompt && invoice.tip === null && user.tip > 0) {
+ invoice.tip = Math.round(invoice.amount * (user.tip / 100));
+ invoice = await post(
+ "/invoice",
+ { invoice, user: subject },
+ auth(cookies),
+ );
+ }
+
+ const p = await post("/payments", invoice, auth(cookies));
+ redirect(307, `/sent/${p.id}`);
+ }
+
const rate = rates[subject?.currency];
const invoiceRate = rates[invoice.currency];
return { rate, invoiceRate };