39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
export async function saveMemberNote(email, text) {
|
|
console.log("saving note: ", email, text)
|
|
try {
|
|
await this.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 this.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 []
|
|
}
|
|
} |