[READ-ONLY] Mirror of https://github.com/flo-bit/youtube-party-dj. democratic youtube player, everyone can vote and add songs, uni project, made with uix
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor user sessions, use datex struct

+37 -22
+2 -7
backend/integrations/discord/Client.ts
··· 65 65 const data = await result.json(); 66 66 if (data.access_token) { 67 67 const user = getUser(endpoint); 68 - if (!user.discord) { 69 - user.discord = { 70 - bearer: data.access_token 71 - } 72 - } else { 73 - user.discord.bearer = data.access_token; 74 - } 68 + user.discord.bearer = data.access_token; 69 + user.discord.isLoggedIn = true; 75 70 return true; 76 71 } 77 72 return false;
+5 -15
backend/sessions.ts
··· 1 1 import { ObjectRef } from "datex-core-legacy/runtime/pointers.ts"; 2 - import { GuildData, play, playerInstances } from "backend/integrations/discord/Client.ts"; 2 + import { play, playerInstances } from "backend/integrations/discord/Client.ts"; 3 + import { datexClassType } from "unyt_core/datex_all.ts"; 4 + import { UserData } from "common/components/integrations/discord/Definitions.ts"; 3 5 4 6 export type Item = { 5 7 title: string; ··· 128 130 } 129 131 } 130 132 131 - interface Discord { 132 - bearer: string; 133 - guilds?: GuildData[]; 134 - } 135 - 136 - interface UserData { 137 - userId: string, 138 - discord?: Discord 139 - } 140 - 141 - const users = eternalVar("users") ?? $$({} as Record<string, UserData>) 133 + const users = eternalVar("users") ?? $$({} as Record<string, datexClassType<ObjectRef<typeof UserData>>>) 142 134 143 135 export const getUser = (endpoint?: string) => { 144 136 /** ··· 149 141 */ 150 142 const user = endpoint ? endpoint : datex.meta.caller.main.toString(); 151 143 if (!(user in users)) { 152 - users[user] = $$({ 153 - userId: crypto.randomUUID() 154 - }) 144 + users[user] = new UserData(); 155 145 } 156 146 return users[user]; 157 147 }
+30
common/components/integrations/discord/Definitions.ts
··· 1 + import { GuildData } from "backend/integrations/discord/Client.ts"; 2 + import { ObjectRef, datexClassType } from "datex-core-legacy/datex_all.ts"; 3 + 4 + export const Discord = struct("Discord", 5 + class Discord { 6 + @property isLoggedIn: boolean = false; 7 + @property bearer?: string; 8 + @property guilds?: GuildData[]; 9 + 10 + @property setBearer = (bearer: string) => { 11 + this.bearer = bearer; 12 + } 13 + 14 + construct() { 15 + console.log("Created Discord Object"); 16 + } 17 + } 18 + ); 19 + 20 + export const UserData = struct("UserData", 21 + class UserData { 22 + @property userId: string = crypto.randomUUID(); 23 + @property discord!: datexClassType<ObjectRef<typeof Discord>>; 24 + 25 + construct() { 26 + console.log("Created UserData Object"); 27 + this.discord = new Discord(); 28 + } 29 + } 30 + );