Merge pull request 'Fixed roles array query that returned unexpected null' (#189) from #187-Member-Card-Crash into main
All checks were successful
Testing Site CD / Update Development (push) Successful in 3m24s

Reviewed-on: #189
This commit was merged in pull request #189.
This commit is contained in:
2026-02-12 10:32:21 -06:00

View File

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