diff --git a/server/auth.js b/server/auth.js index 7196813..df58abf 100644 --- a/server/auth.js +++ b/server/auth.js @@ -37,9 +37,14 @@ export default class AuthHandler { const email = payload.email; const user = db.members.getByEmail(email); - const userOrgs = db.edges.getByFrom(db.members.prefix + "-" + user.id) - res.send({ email: user.email, name: user.firstName + " " + user.lastName }); - } catch (err) { + let connections = db.MEMBER_IN_NETWORK.getByFrom(db.members.prefix + "-" + user.id) + let userOrgs = connections.map((v) => { + return db.networks.get(v.id) + }) + console.log(userOrgs) + res.send({ email: user.email, name: user.firstName + " " + user.lastName, networks: userOrgs}); + } catch (e) { + console.error("Error getting profile: ", e) res.status(401).send({ error: "Invalid token" }); } } diff --git a/server/db/db.js b/server/db/db.js index 6e4201c..4403979 100644 --- a/server/db/db.js +++ b/server/db/db.js @@ -18,7 +18,6 @@ export default class Database { let eValues = Object.values(edgeModels) for(let i = 0; i < eValues.length; i++) { let key = eValues[i].constructor.name - key = key.toLowerCase() + "s" this[key] = eValues[i] } this.loadData() @@ -127,7 +126,7 @@ export default class Database { let indices = model.indices if(i >= indices[0] && i < indices[1]) { let prefix = model.prefix - data.nodes[prefix + "-" + entry.id] = entry + data.edges[prefix + "-" + entry.id] = entry } } } diff --git a/server/db/model/edges/MEMBER_IN_NETWORK.js b/server/db/model/edges/MEMBER_IN_NETWORK.js new file mode 100644 index 0000000..ba692c8 --- /dev/null +++ b/server/db/model/edges/MEMBER_IN_NETWORK.js @@ -0,0 +1,28 @@ +import { z } from 'zod' + +export default class MEMBER_IN_NETWORK { + prefix = "MEMBER_IN_NETWORK" + indices = null + + constructor(indices) { + this.indices = indices + } + + schema = z.object({ + id: z.number(), + from: z.string(), + to: z.string(), + created: z.string() + }) + .strict() + + getByFrom(fromID) { + let result = [] + for(let i = this.indices[0]; i < this.indices[1]; i++) { + if(global.db.edges[i].from === fromID) { + result.push(global.db.edges[i]) + } + } + return result + } +} \ No newline at end of file diff --git a/server/db/model/edges/MemberInNetwork.js b/server/db/model/edges/MemberInNetwork.js deleted file mode 100644 index 5198ebc..0000000 --- a/server/db/model/edges/MemberInNetwork.js +++ /dev/null @@ -1,17 +0,0 @@ -import { z } from 'zod' - -export default class MemberInNetwork { - schema = z.object({ - id: z.number(), - from: z.string(), - to: z.string(), - created: z.string() - }) - .strict() - - indices = null - - constructor(indices) { - this.indices = indices - } -} \ No newline at end of file diff --git a/server/db/model/import.js b/server/db/model/import.js index 01c1f88..c4a54b3 100644 --- a/server/db/model/import.js +++ b/server/db/model/import.js @@ -5,7 +5,7 @@ import Payment from "./payment.js" import Post from "./forum/post.js" import Conversation from "./dms/conversation.js" import DM from "./dms/dm.js" -import MemberInNetwork from "./edges/MemberInNetwork.js" +import MEMBER_IN_NETWORK from "./edges/MEMBER_IN_NETWORK.js" let nIndices = { "MEMBER" : [0, 0], // [id, startIndex, nextEmptyIndex @@ -32,5 +32,5 @@ export let nodeModels = { } export let edgeModels = { - MEMBER_IN_NETWORK: new MemberInNetwork(eIndices.MEMBER_IN_NETWORK) + MEMBER_IN_NETWORK: new MEMBER_IN_NETWORK(eIndices.MEMBER_IN_NETWORK) } \ No newline at end of file diff --git a/server/db/model/network.js b/server/db/model/network.js index 22b910b..93b82a8 100644 --- a/server/db/model/network.js +++ b/server/db/model/network.js @@ -16,6 +16,11 @@ export default class Network { }) .strict() + get(id) { + let index = this.indices[0] + (id - 1) + return global.db.nodes[index] + } + save(n) { let id = `${this.prefix}-${n.id}` let result = this.schema.safeParse(n) @@ -39,8 +44,4 @@ export default class Network { } this.save(toSave) } - - get(id) { - return this.entries[this.ids[`${this.prefix}-${id}`]] - } } \ No newline at end of file diff --git a/ui/desktop/components/Sidebar.js b/ui/desktop/components/Sidebar.js index 56f7964..62494b8 100644 --- a/ui/desktop/components/Sidebar.js +++ b/ui/desktop/components/Sidebar.js @@ -17,7 +17,9 @@ class Sidebar extends Shadow { .onAppear(async () => { if(!window.profile) { window.profile = await this.fetchProfile() - this.rerender() + if(profile) { + this.rerender() + } } }) }