fetch configuration
This commit is contained in:
parent
2aed9f566b
commit
c0bf53fdcd
4 changed files with 23 additions and 13 deletions
|
@ -1,2 +0,0 @@
|
||||||
VITE_DISCORD_CLIENT_ID=
|
|
||||||
API_HOST=
|
|
|
@ -1,14 +1,10 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { authorize } from "./lib/discord.js";
|
import { authorize } from "./lib/discord.js";
|
||||||
import UserCardShort from "./lib/components/UserCardShort.svelte";
|
import { fetchConfiguration } from "./lib/api";
|
||||||
import UserCardShortScaffold from "./lib/components/scaffolds/UserCardShortScaffold.svelte";
|
|
||||||
import { user } from "./lib/stores.js";
|
import { user } from "./lib/stores.js";
|
||||||
|
|
||||||
async function main() {
|
import UserCardShort from "./lib/components/UserCardShort.svelte";
|
||||||
if (import.meta.env.DEV) return;
|
import UserCardShortScaffold from "./lib/components/scaffolds/UserCardShortScaffold.svelte";
|
||||||
const auth = await authorize();
|
|
||||||
user.set(auth.user);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (import.meta.env.DEV) {
|
if (import.meta.env.DEV) {
|
||||||
user.set({
|
user.set({
|
||||||
|
@ -19,7 +15,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
fetchConfiguration().then((config) => authorize(config));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if $user}
|
{#if $user}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
|
@ -1,13 +1,17 @@
|
||||||
import { DiscordSDK } from "@discord/embedded-app-sdk";
|
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 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();
|
await discordSdk.ready();
|
||||||
|
|
||||||
const { code } = await discordSdk.commands.authorize({
|
const { code } = await discordSdk.commands.authorize({
|
||||||
client_id: import.meta.env.VITE_DISCORD_CLIENT_ID,
|
client_id: config.DISCORD_CLIENT_ID,
|
||||||
response_type: "code",
|
response_type: "code",
|
||||||
state: "",
|
state: "",
|
||||||
prompt: "none",
|
prompt: "none",
|
||||||
|
@ -23,5 +27,7 @@ export async function authorize() {
|
||||||
const { access_token } = await response.json();
|
const { access_token } = await response.json();
|
||||||
const auth = await discordSdk.commands.authenticate({ access_token });
|
const auth = await discordSdk.commands.authenticate({ access_token });
|
||||||
|
|
||||||
|
user.set(auth.user);
|
||||||
|
|
||||||
return auth;
|
return auth;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue