8
9const stripe = new Stripe(Deno.env.get("stripe_sk_customer_readonly") as string, {
10 apiVersion: "2020-08-27",
11});
12
8
9const stripe = new Stripe(Deno.env.get("stripe_sk_customer_readonly") as string, {
10 apiVersion: "2020-08-27",
11});
12
58 ${earthquakes_storage.svg}
59<small><a href="https://www.val.town/v/fil.earthquakes"><b><i>vt</i></b> source code</a>
60<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic">
61<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css">
62<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.css">`,
832 <head>
833 <title>CRM</title>
834 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
835 <style>${css}</style>
836 <meta name="viewport" content="width=device-width, initial-scale=1" />
832 <head>
833 <title>CRM</title>
834 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
835 <style>${css}</style>
836 <meta name="viewport" content="width=device-width, initial-scale=1" />
832 <head>
833 <title>🌽 Kernel CRM</title>
834 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
835 <style>${css}</style>
836 <meta name="viewport" content="width=device-width, initial-scale=1" />
832 <head>
833 <title>🌽 Kernel CRM</title>
834 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
835 <style>${css}</style>
836 <meta name="viewport" content="width=device-width, initial-scale=1" />
499 <title>Task Board</title>
500 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
501 <link rel="preconnect" href="https://fonts.googleapis.com">
502 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
503 <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Text:ital@0;1&family=Dancing+Script:wght@400..700&family=Jersey+10&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Playwrite+AU+SA:wght@100..400&family=Playwrite+IE+Guides&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Rubik+Vinyl&display=swap" rel="stylesheet">
504 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" />
505 <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" rel="stylesheet" />
11 }
12
13 // Define Luma API details
14 const apiUrl = "https://api.lu.ma/public/v1/calendar/list-events";
15 const apiHeaders = new Headers({
16 accept: "application/json",
17 "x-luma-api-key": "secret-9UQU6JqIf5YPasDzEZYAjoz6c", // Replace with your API key
18 });
19
20 try {
21 // Fetch events from Luma API
22 const response = await fetch(apiUrl, {
23 method: "GET",
24 headers: apiHeaders, // Use correct API headers here
25 });
26
30 // Check if the response is not OK
31 if (!response.ok) {
32 throw new Error(`Luma API returned status ${response.status}`);
33 }
34
1export async function fetchEvents() {
2 const url = "https://api.lu.ma/public/v1/calendar/list-events";
3 const headers = {
4 accept: "application/json",
5 "x-luma-api-key": "secret-9UQU6JqIf5YPasDzEZYAjoz6c", // Replace with your actual API key
6 };
7
9 const response = await fetch(url, { method: "GET", headers });
10 const data = await response.json();
11 return data; // Return the API response
12 } catch (error) {
13 return { error: "Failed to fetch events", details: error.message };