Fixed roles array query that returned unexpected null #189

Merged
Ajdj100 merged 1 commits from #187-Member-Card-Crash into main 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[]> { 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())
) FROM members_roles mr
END JOIN roles r ON mr.role_id = r.id
), WHERE mr.member_id = m.member_id
JSON_ARRAY() ) 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]);