diff --git a/server/auth.js b/server/auth.js index 6c9bd5a..2dc4c03 100644 --- a/server/auth.js +++ b/server/auth.js @@ -37,11 +37,11 @@ export default class AuthHandler { const email = payload.email; const user = db.members.getByEmail(email); - let connections = db.MEMBER_IN_NETWORK.getByFrom(db.members.prefix + "-" + user.id) + let connections = db.MEMBER_IN_NETWORK.getByMember(db.members.prefix + "-" + user.id) let userOrgs = connections.map((c) => { return db.networks.get(c.to) }) - console.log(userOrgs) + res.send({ email: user.email, name: user.firstName + " " + user.lastName, networks: userOrgs}); } catch (e) { console.error("Error getting profile: ", e) @@ -62,7 +62,7 @@ export default class AuthHandler { res.status(400).json({ error: 'Incorrect password.' }); } else { const payload = { email: foundUser.email }; - console.log(payload) + console.log("login: ", payload) const secret = process.env.JWT_SECRET; const options = { expiresIn: "2h" }; const token = jwt.sign(payload, secret, options); diff --git a/server/db/model/edge.js b/server/db/model/edge.js index e619f95..b3f102c 100644 --- a/server/db/model/edge.js +++ b/server/db/model/edge.js @@ -15,6 +15,5 @@ export default class Edge { // let } } - console.log(fromID) } } \ No newline at end of file diff --git a/server/db/model/edges/MEMBER_IN_NETWORK.js b/server/db/model/edges/MEMBER_IN_NETWORK.js index 8a30245..11d0020 100644 --- a/server/db/model/edges/MEMBER_IN_NETWORK.js +++ b/server/db/model/edges/MEMBER_IN_NETWORK.js @@ -17,10 +17,20 @@ export default class MEMBER_IN_NETWORK { }) .strict() - getByFrom(fromID) { + getByMember(stringID) { let result = [] for(let i = this.indices[0]; i < this.indices[1]; i++) { - if(global.db.edges[i].from === fromID) { + if(global.db.edges[i].from === stringID) { + result.push(global.db.edges[i]) + } + } + return result + } + + getByNetwork(id) { + let result = [] + for(let i = this.indices[0]; i < this.indices[1]; i++) { + if(global.db.edges[i].to === `${global.db.networks.prefix}-${id}`) { result.push(global.db.edges[i]) } } diff --git a/server/db/model/member.js b/server/db/model/member.js index fc0a5c2..4f6ecdd 100644 --- a/server/db/model/member.js +++ b/server/db/model/member.js @@ -39,8 +39,20 @@ export default class Member { } } - get(id) { - return this.entries[this.ids[id]] + getByNetwork(id) { + let connections = db.MEMBER_IN_NETWORK.getByNetwork(id) + let members = [] + connections.forEach((conn) => { + members.push(this.getByID(conn.from)) + }) + return members + } + + getByID(id) { + if(typeof id === 'string') { + id = id.split("-")[1] + } + return global.db.nodes[this.indices[0] + id - 1] } getByEmail(email) { @@ -51,15 +63,4 @@ export default class Member { } return null } - - getIDFromEmail(email) { - let index = 0 - for(let i=0; i { + getOrgData = async (req, res, next) => { try { - const pathOne = path.join(this.ComalPath, "db", "join.json"); - const pathTwo = path.join(this.ComalPath, "db", "contact.json"); + const networkId = req.params[0] - const [joinRaw, contactRaw] = await Promise.all([ - fs.promises.readFile(pathOne, "utf8"), - fs.promises.readFile(pathTwo, "utf8") - ]); - - const join = joinRaw.trim() ? JSON.parse(joinRaw) : []; - const contact = contactRaw.trim() ? JSON.parse(contactRaw) : []; - - res.json({ - join, - contact - }); + if(networkId === "1") { + const pathOne = path.join(this.ComalPath, "db", "join.json"); + const pathTwo = path.join(this.ComalPath, "db", "contact.json"); + + const [joinRaw, contactRaw] = await Promise.all([ + fs.promises.readFile(pathOne, "utf8"), + fs.promises.readFile(pathTwo, "utf8") + ]); + + const join = joinRaw.trim() ? JSON.parse(joinRaw) : []; + const contact = contactRaw.trim() ? JSON.parse(contactRaw) : []; + const members = db.members.getByNetwork(networkId) + + res.json({ + join, + contact, + members + }); + } else { + const members = db.members.getByNetwork(networkId) + + res.json({ + members + }); + } } catch (err) { next(err); } diff --git a/ui/desktop/index.js b/ui/desktop/index.js index 45a7e6e..43908c4 100644 --- a/ui/desktop/index.js +++ b/ui/desktop/index.js @@ -97,8 +97,9 @@ async function setCurrentNetwork() { path += defaultApp.toLowerCase() } - let appData = await fetch("/app/comaldata", {method: "GET"}) + let appData = await fetch("/app/orgdata/" + defaultNetwork.id, {method: "GET"}) let json = await appData.json() + console.log(json) window.comalData = json return path