merge rooms/short Data w/ Service; optimize queries

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-09-29 13:13:09 +00:00 committed by strawberry
parent 0e8ae1e13e
commit c569881b08
18 changed files with 257 additions and 262 deletions

View file

@ -120,13 +120,13 @@ impl Service {
/// Check if a user has an account on this homeserver.
#[inline]
pub async fn exists(&self, user_id: &UserId) -> bool { self.db.userid_password.qry(user_id).await.is_ok() }
pub async fn exists(&self, user_id: &UserId) -> bool { self.db.userid_password.get(user_id).await.is_ok() }
/// Check if account is deactivated
pub async fn is_deactivated(&self, user_id: &UserId) -> Result<bool> {
self.db
.userid_password
.qry(user_id)
.get(user_id)
.map_ok(|val| val.is_empty())
.map_err(|_| err!(Request(NotFound("User does not exist."))))
.await
@ -146,7 +146,7 @@ impl Service {
/// Find out which user an access token belongs to.
pub async fn find_from_token(&self, token: &str) -> Result<(OwnedUserId, OwnedDeviceId)> {
self.db.token_userdeviceid.qry(token).await.deserialized()
self.db.token_userdeviceid.get(token).await.deserialized()
}
/// Returns an iterator over all users on this homeserver (offered for
@ -171,7 +171,7 @@ impl Service {
/// Returns the password hash for the given user.
pub async fn password_hash(&self, user_id: &UserId) -> Result<String> {
self.db.userid_password.qry(user_id).await.deserialized()
self.db.userid_password.get(user_id).await.deserialized()
}
/// Hash and set the user's password to the Argon2 hash
@ -196,7 +196,7 @@ impl Service {
/// Returns the displayname of a user on this homeserver.
pub async fn displayname(&self, user_id: &UserId) -> Result<String> {
self.db.userid_displayname.qry(user_id).await.deserialized()
self.db.userid_displayname.get(user_id).await.deserialized()
}
/// Sets a new displayname or removes it if displayname is None. You still
@ -213,7 +213,7 @@ impl Service {
/// Get the `avatar_url` of a user.
pub async fn avatar_url(&self, user_id: &UserId) -> Result<OwnedMxcUri> {
self.db.userid_avatarurl.qry(user_id).await.deserialized()
self.db.userid_avatarurl.get(user_id).await.deserialized()
}
/// Sets a new avatar_url or removes it if avatar_url is None.
@ -229,7 +229,7 @@ impl Service {
/// Get the blurhash of a user.
pub async fn blurhash(&self, user_id: &UserId) -> Result<String> {
self.db.userid_blurhash.qry(user_id).await.deserialized()
self.db.userid_blurhash.get(user_id).await.deserialized()
}
/// Sets a new avatar_url or removes it if avatar_url is None.
@ -284,7 +284,7 @@ impl Service {
userdeviceid.extend_from_slice(device_id.as_bytes());
// Remove tokens
if let Ok(old_token) = self.db.userdeviceid_token.qry(&userdeviceid).await {
if let Ok(old_token) = self.db.userdeviceid_token.get(&userdeviceid).await {
self.db.userdeviceid_token.remove(&userdeviceid);
self.db.token_userdeviceid.remove(&old_token);
}
@ -390,7 +390,7 @@ impl Service {
pub async fn last_one_time_keys_update(&self, user_id: &UserId) -> u64 {
self.db
.userid_lastonetimekeyupdate
.qry(user_id)
.get(user_id)
.await
.deserialized()
.unwrap_or(0)
@ -664,7 +664,7 @@ impl Service {
let key = self
.db
.keyid_key
.qry(key_id)
.get(key_id)
.await
.deserialized::<serde_json::Value>()?;
@ -679,7 +679,7 @@ impl Service {
where
F: Fn(&UserId) -> bool + Send + Sync,
{
let key_id = self.db.userid_masterkeyid.qry(user_id).await?;
let key_id = self.db.userid_masterkeyid.get(user_id).await?;
self.get_key(&key_id, sender_user, user_id, allowed_signatures)
.await
@ -691,16 +691,16 @@ impl Service {
where
F: Fn(&UserId) -> bool + Send + Sync,
{
let key_id = self.db.userid_selfsigningkeyid.qry(user_id).await?;
let key_id = self.db.userid_selfsigningkeyid.get(user_id).await?;
self.get_key(&key_id, sender_user, user_id, allowed_signatures)
.await
}
pub async fn get_user_signing_key(&self, user_id: &UserId) -> Result<Raw<CrossSigningKey>> {
let key_id = self.db.userid_usersigningkeyid.qry(user_id).await?;
let key_id = self.db.userid_usersigningkeyid.get(user_id).await?;
self.db.keyid_key.qry(&*key_id).await.deserialized()
self.db.keyid_key.get(&*key_id).await.deserialized()
}
pub async fn add_to_device_event(
@ -797,7 +797,7 @@ impl Service {
pub async fn get_devicelist_version(&self, user_id: &UserId) -> Result<u64> {
self.db
.userid_devicelistversion
.qry(user_id)
.get(user_id)
.await
.deserialized()
}
@ -853,7 +853,7 @@ impl Service {
/// Find out which user an OpenID access token belongs to.
pub async fn find_from_openid_token(&self, token: &str) -> Result<OwnedUserId> {
let Ok(value) = self.db.openidtoken_expiresatuserid.qry(token).await else {
let Ok(value) = self.db.openidtoken_expiresatuserid.get(token).await else {
return Err!(Request(Unauthorized("OpenID token is unrecognised")));
};