Fixed roles array query that returned unexpected null
All checks were successful
Pull Request CI / Update Deployment (pull_request) Successful in 3m13s

This commit is contained in:
2026-02-12 09:48:45 -05:00
parent 5d2ad6099c
commit 69c7e7ed7e

View File

@@ -184,25 +184,21 @@ export async function getAllMembersLite(): Promise<MemberLight[]> {
export async function getMembersFull(ids: number[]): Promise<MemberCardDetails[]> { export async function getMembersFull(ids: number[]): Promise<MemberCardDetails[]> {
const sql = ` const sql = `
SELECT m.*, SELECT
COALESCE( m.*,
JSON_ARRAYAGG( (
CASE SELECT COALESCE(JSON_ARRAYAGG(JSON_OBJECT(
WHEN r.id IS NOT NULL THEN JSON_OBJECT(
'id', r.id, 'id', r.id,
'name', r.name, 'name', r.name,
'color', r.color, 'color', r.color,
'description', r.description 'description', r.description
) )), JSON_ARRAY())
END FROM members_roles mr
), JOIN roles r ON mr.role_id = r.id
JSON_ARRAY() WHERE mr.member_id = m.member_id
) AS roles ) AS roles
FROM view_member_rank_unit_status_latest m FROM view_member_rank_unit_status_latest m
LEFT JOIN members_roles mr ON m.member_id = mr.member_id WHERE m.member_id IN (?);
LEFT JOIN roles r ON mr.role_id = r.id
WHERE m.member_id IN (?)
GROUP BY m.member_id;
`; `;
const rows: any[] = await pool.query(sql, [ids]); const rows: any[] = await pool.query(sql, [ids]);