fix: MicroDAO rooms query to include owner_id based rooms
This commit is contained in:
@@ -2004,6 +2004,7 @@ async def get_microdao_primary_room(microdao_id: str) -> Optional[dict]:
|
|||||||
async def get_microdao_rooms(microdao_id: str) -> List[dict]:
|
async def get_microdao_rooms(microdao_id: str) -> List[dict]:
|
||||||
"""
|
"""
|
||||||
Отримати всі кімнати MicroDAO, впорядковані за sort_order.
|
Отримати всі кімнати MicroDAO, впорядковані за sort_order.
|
||||||
|
Шукає по microdao_id АБО owner_id (для нових кімнат з owner_type='microdao').
|
||||||
"""
|
"""
|
||||||
pool = await get_pool()
|
pool = await get_pool()
|
||||||
|
|
||||||
@@ -2013,7 +2014,7 @@ async def get_microdao_rooms(microdao_id: str) -> List[dict]:
|
|||||||
cr.slug,
|
cr.slug,
|
||||||
cr.name,
|
cr.name,
|
||||||
cr.matrix_room_id,
|
cr.matrix_room_id,
|
||||||
cr.microdao_id,
|
COALESCE(cr.microdao_id, cr.owner_id) AS microdao_id,
|
||||||
cr.room_role,
|
cr.room_role,
|
||||||
cr.is_public,
|
cr.is_public,
|
||||||
cr.sort_order,
|
cr.sort_order,
|
||||||
@@ -2021,8 +2022,9 @@ async def get_microdao_rooms(microdao_id: str) -> List[dict]:
|
|||||||
cr.banner_url,
|
cr.banner_url,
|
||||||
m.slug AS microdao_slug
|
m.slug AS microdao_slug
|
||||||
FROM city_rooms cr
|
FROM city_rooms cr
|
||||||
LEFT JOIN microdaos m ON cr.microdao_id = m.id
|
LEFT JOIN microdaos m ON COALESCE(cr.microdao_id, cr.owner_id) = m.id
|
||||||
WHERE cr.microdao_id = $1
|
WHERE cr.microdao_id = $1
|
||||||
|
OR (cr.owner_type = 'microdao' AND cr.owner_id = $1)
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE WHEN cr.room_role = 'primary' THEN 0 ELSE 1 END,
|
CASE WHEN cr.room_role = 'primary' THEN 0 ELSE 1 END,
|
||||||
cr.sort_order ASC,
|
cr.sort_order ASC,
|
||||||
|
|||||||
Reference in New Issue
Block a user