diff --git a/src/lib/api.ts b/src/lib/api.ts index b5307d5..6aae92b 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1,3 +1,6 @@ +import { identity } from "./stores"; +import { get } from "svelte/store"; + export interface Configuration { DISCORD_CLIENT_ID: string; } @@ -8,3 +11,14 @@ export async function fetchConfiguration() { return body; } + +export async function connect() { + const searchParams = new URLSearchParams(); + searchParams.set("id", get(identity).id); + searchParams.set("iv", get(identity).iv); + + const socket = new WebSocket("/api/ws?" + searchParams.toString()); + socket.onmessage = (event) => { + console.log(event); + }; +} diff --git a/src/lib/discord.ts b/src/lib/discord.ts index 18b99fc..548ac28 100644 --- a/src/lib/discord.ts +++ b/src/lib/discord.ts @@ -1,6 +1,6 @@ import { DiscordSDK } from "@discord/embedded-app-sdk"; import type { Configuration } from "./api"; -import { user } from "./stores"; +import { identity as identityStore, user } from "./stores"; export const ACTIVITY_STARTED = Date.now(); export let discordSdk: DiscordSDK | null = null; @@ -24,10 +24,11 @@ export async function authorize(config: Configuration) { body: JSON.stringify({ code }), }); - const { access_token } = await response.json(); + const { access_token, identity } = await response.json(); const auth = await discordSdk.commands.authenticate({ access_token }); user.set(auth.user); + identityStore.set(identity); return auth; } diff --git a/src/lib/stores.ts b/src/lib/stores.ts index eec36cd..60d1f46 100644 --- a/src/lib/stores.ts +++ b/src/lib/stores.ts @@ -9,4 +9,10 @@ interface AuthenticatedUser { global_name?: string | null | undefined; } +interface Identity { + id: string; + iv: string; +} + export const user: Writable = writable(); +export const identity: Writable = writable();