def __validate_conversation(participants):
first_row = None
with db.conn() as conn:
result = conn.execute("""
SELECT c._id FROM
%(schema_name)s.conversation AS c
WHERE
c.distinct_by_participants = TRUE
AND
(
SELECT COUNT(DISTINCT uc.user)
FROM %(schema_name)s.user_conversation
AS uc
WHERE
uc.conversation = c._id
AND
uc.user IN %(user_ids)s
) = %(count)s
""", {'schema_name': AsIs(_get_schema_name()),
'user_ids': tuple(participants),
'count': len(participants)})
first_row = result.first()
valid = first_row is None
if not valid:
raise ConversationAlreadyExistsException(first_row[0])
评论列表
文章目录