aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/buy/+page.server.js
blob: b8897741d9cf5d8b197b04a1c7c93f1be0ec71aa (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
import { env } from "$env/dynamic/private";
import { error, fail, redirect } from "@sveltejs/kit";
import { post, auth } from "$lib/utils";
import { createTicket } from "$lib/ticket";

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

    let amount = parseFloat(form.get("amount"));
    if (!amount || amount < 0 || amount > 500)
      return fail(400, { message: "Invalid amount" });

    await post(
      "/buy",
      {
        amount: form.get("amount"),
        number: form.get("number").replace(/\s+/g, ""),
        month: form.get("expiry").slice(0, 2),
        year: form.get("expiry").slice(-2),
        cvc: form.get("cvc"),
      },
      auth(cookies)
    );

    redirect(307, `/${form.get("username")}/payments`);
  },
};