Files
apps/people/server/functions.js

39 lines
1.2 KiB
JavaScript

export async function saveMemberNote(email, text) {
console.log("saving note: ", email, text)
try {
await context.sql`
UPDATE members
SET notes = ${text}
WHERE email = ${email}
`
return { success: true }
} catch(e) {
return e
}
}
export async function getPeople(networkId) {
try {
const people = await context.sql`
SELECT
m.*,
mn.created AS joined_network,
np.name AS plan_name,
COALESCE(
json_agg(r.name ORDER BY r.name) FILTER (WHERE r.name IS NOT NULL),
'[]'
) AS roles
FROM members m
JOIN member_networks mn ON mn.member_id = m.id AND mn.network_id = ${networkId}
LEFT JOIN network_plans np ON np.id = mn.network_plan_id
LEFT JOIN member_roles mr ON mr.member_id = m.id
LEFT JOIN roles r ON r.id = mr.role_id AND r.network_id = ${networkId}
GROUP BY m.id, mn.created, np.name
ORDER BY mn.created ASC
`;
return people
} catch(e) {
console.error(e)
return []
}
}