fetch configuration

This commit is contained in:
cirroskais 2024-03-18 19:03:56 -04:00
parent 2aed9f566b
commit c0bf53fdcd
No known key found for this signature in database
GPG key ID: 5FC73EBF2678E33D
4 changed files with 23 additions and 13 deletions

View file

@ -1,2 +0,0 @@
VITE_DISCORD_CLIENT_ID=
API_HOST=

View file

@ -1,14 +1,10 @@
<script lang="ts">
import { authorize } from "./lib/discord.js";
import UserCardShort from "./lib/components/UserCardShort.svelte";
import UserCardShortScaffold from "./lib/components/scaffolds/UserCardShortScaffold.svelte";
import { fetchConfiguration } from "./lib/api";
import { user } from "./lib/stores.js";
async function main() {
if (import.meta.env.DEV) return;
const auth = await authorize();
user.set(auth.user);
}
import UserCardShort from "./lib/components/UserCardShort.svelte";
import UserCardShortScaffold from "./lib/components/scaffolds/UserCardShortScaffold.svelte";
if (import.meta.env.DEV) {
user.set({
@ -19,7 +15,7 @@
});
}
main();
fetchConfiguration().then((config) => authorize(config));
</script>
{#if $user}

View file

@ -0,0 +1,10 @@
export interface Configuration {
DISCORD_CLIENT_ID: string;
}
export async function fetchConfiguration() {
const response = await fetch("/api");
const body: Promise<Configuration> = await response.json();
return body;
}

View file

@ -1,13 +1,17 @@
import { DiscordSDK } from "@discord/embedded-app-sdk";
export const discordSdk = new DiscordSDK(import.meta.env.VITE_DISCORD_CLIENT_ID);
import type { Configuration } from "./api";
import { user } from "./stores";
export const ACTIVITY_STARTED = Date.now();
export let discordSdk: DiscordSDK | null = null;
export async function authorize(config: Configuration) {
discordSdk = new DiscordSDK(config.DISCORD_CLIENT_ID);
export async function authorize() {
await discordSdk.ready();
const { code } = await discordSdk.commands.authorize({
client_id: import.meta.env.VITE_DISCORD_CLIENT_ID,
client_id: config.DISCORD_CLIENT_ID,
response_type: "code",
state: "",
prompt: "none",
@ -23,5 +27,7 @@ export async function authorize() {
const { access_token } = await response.json();
const auth = await discordSdk.commands.authenticate({ access_token });
user.set(auth.user);
return auth;
}