aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/invoice.js
blob: 429efa2b1672a0835b3b1039c99f5cea6e5a1e90 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { auth, get, post } from '$lib/utils';
import { redirect } from '@sveltejs/kit';

export default async ({ cookies, request, url }) => {
	let form = await request.formData();

	let rates = await get('/rates');
	let amount = parseInt(form.get('amount'));
	let request_id = form.get('request_id');
	if (request_id === 'undefined') request_id = undefined;

	console.log("FORM", form.get('prompt'));

	let invoice = {
		amount,
		tip: parseInt(form.get('tip')) || 0,
		type: form.get('type'),
		prompt: form.get('prompt') === 'true',
		rate: parseFloat(form.get('rate')) || rates[form.get('currency')],
		request_id
	};

	let user = { username: form.get('username'), currency: form.get('currency') };

	invoice = await post('/invoice', { invoice, user }, auth(cookies));
	let { hash } = invoice;

	if (request_id) {
		if (url.pathname.endsWith('tip')) {
			throw redirect(307, `/send/invoice/${hash}`);
		}

		throw redirect(307, `/${user.username}/request/${request_id}`);
	}

	console.log('PROMPT?', invoice.prompt);
	if (invoice.prompt) throw redirect(307, `/${user.username}/invoice/${hash}/tip`);
	else throw redirect(307, `/${user.username}/invoice/${hash}`);
};