user_storage: add UserStorage.get_mutual_guilds

This commit is contained in:
Luna 2018-12-06 16:28:08 -03:00
parent e5c75011da
commit 49a4b46f35
2 changed files with 14 additions and 8 deletions

View File

@ -373,14 +373,7 @@ async def get_profile(peer_id: int):
WHERE id = $1
""", peer_id)
# this is a rad sql query
mutual_guilds = await app.db.fetch("""
SELECT guild_id FROM members WHERE user_id = $1
INTERSECT
SELECT guild_id FROM members WHERE user_id = $2
""", user_id, peer_id)
mutual_guilds = [r['guild_id'] for r in mutual_guilds]
mutual_guilds = await app.user_storage.get_mutual_guilds(user_id, peer_id)
mutual_res = []
# ascending sorting

View File

@ -288,3 +288,16 @@ class UserStorage:
""", user_id)
return [row['guild_id'] for row in guild_ids]
async def get_mutual_guilds(self, user_id: int, peer_id: int) -> List[int]:
"""Get a list of guilds two separate users
have in common."""
mutual_guilds = await self.db.fetch("""
SELECT guild_id FROM members WHERE user_id = $1
INTERSECT
SELECT guild_id FROM members WHERE user_id = $2
""", user_id, peer_id)
mutual_guilds = [r['guild_id'] for r in mutual_guilds]
return mutual_guilds