Add listing private chats
This commit is contained in:
parent
9bc103018e
commit
33ade65420
@ -376,6 +376,12 @@ impl Default for RestrictionPolicy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, PartialEq, Eq, GraphQLObject, Type)]
|
||||||
|
pub struct Chat {
|
||||||
|
id: ID,
|
||||||
|
users: Vec<ID>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
pub struct Query;
|
pub struct Query;
|
||||||
|
|
||||||
@ -461,6 +467,24 @@ impl Query {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn chats(context: &Context, user: ID, password_hash: String) -> FieldResult<Vec<Chat>> {
|
||||||
|
let user = id_to_uuid(&user)?.to_simple();
|
||||||
|
user_authentication(&context.db, &user, &password_hash).await?;
|
||||||
|
|
||||||
|
let mut chats = Vec::new();
|
||||||
|
for chat in sqlx::query(format!(
|
||||||
|
r#"SELECT id, users FROM chat_index WHERE is_group_chat = 0 AND users LIKE "%{}%""#,
|
||||||
|
user,
|
||||||
|
).as_str()).fetch_all(&context.db).await? {
|
||||||
|
chats.push(Chat {
|
||||||
|
id: ID::from(chat.try_get::<String, _>("id")?),
|
||||||
|
users: from_sql_formatted_array(chat.try_get("users")?, "users")?.map(|u: String| u.into()).collect(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(chats)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
|
Loading…
Reference in New Issue
Block a user