refactor: resultify token::exists

This commit is contained in:
link2xt
2024-02-09 03:45:38 +00:00
parent 26ae686687
commit 0fcdee8857
4 changed files with 15 additions and 15 deletions

View File

@@ -383,7 +383,7 @@ async fn decode_openpgp(context: &Context, qr: &str) -> Result<Qr> {
.await .await
.with_context(|| format!("can't check if address {addr:?} is our address"))? .with_context(|| format!("can't check if address {addr:?} is our address"))?
{ {
if token::exists(context, token::Namespace::InviteNumber, &invitenumber).await { if token::exists(context, token::Namespace::InviteNumber, &invitenumber).await? {
Ok(Qr::WithdrawVerifyGroup { Ok(Qr::WithdrawVerifyGroup {
grpname, grpname,
grpid, grpid,
@@ -413,7 +413,7 @@ async fn decode_openpgp(context: &Context, qr: &str) -> Result<Qr> {
}) })
} }
} else if context.is_self_addr(&addr).await? { } else if context.is_self_addr(&addr).await? {
if token::exists(context, token::Namespace::InviteNumber, &invitenumber).await { if token::exists(context, token::Namespace::InviteNumber, &invitenumber).await? {
Ok(Qr::WithdrawVerifyContact { Ok(Qr::WithdrawVerifyContact {
contact_id, contact_id,
fingerprint, fingerprint,

View File

@@ -314,7 +314,7 @@ pub(crate) async fn handle_securejoin_handshake(
return Ok(HandshakeMessage::Ignore); return Ok(HandshakeMessage::Ignore);
} }
}; };
if !token::exists(context, token::Namespace::InviteNumber, invitenumber).await { if !token::exists(context, token::Namespace::InviteNumber, invitenumber).await? {
warn!(context, "Secure-join denied (bad invitenumber)."); warn!(context, "Secure-join denied (bad invitenumber).");
return Ok(HandshakeMessage::Ignore); return Ok(HandshakeMessage::Ignore);
} }
@@ -398,7 +398,7 @@ pub(crate) async fn handle_securejoin_handshake(
.await?; .await?;
return Ok(HandshakeMessage::Ignore); return Ok(HandshakeMessage::Ignore);
}; };
if !token::exists(context, token::Namespace::Auth, auth).await { if !token::exists(context, token::Namespace::Auth, auth).await? {
could_not_establish_secure_connection( could_not_establish_secure_connection(
context, context,
contact_id, contact_id,

View File

@@ -514,7 +514,7 @@ mod tests {
async fn test_execute_sync_items() -> Result<()> { async fn test_execute_sync_items() -> Result<()> {
let t = TestContext::new_alice().await; let t = TestContext::new_alice().await;
assert!(!token::exists(&t, Namespace::Auth, "yip-auth").await); assert!(!token::exists(&t, Namespace::Auth, "yip-auth").await?);
let sync_items = t let sync_items = t
.parse_sync_items( .parse_sync_items(
@@ -537,10 +537,10 @@ mod tests {
.await? .await?
.is_none() .is_none()
); );
assert!(token::exists(&t, Namespace::InviteNumber, "yip-in").await); assert!(token::exists(&t, Namespace::InviteNumber, "yip-in").await?);
assert!(token::exists(&t, Namespace::Auth, "yip-auth").await); assert!(token::exists(&t, Namespace::Auth, "yip-auth").await?);
assert!(!token::exists(&t, Namespace::Auth, "non-existent").await); assert!(!token::exists(&t, Namespace::Auth, "non-existent").await?);
assert!(!token::exists(&t, Namespace::Auth, "directly deleted").await); assert!(!token::exists(&t, Namespace::Auth, "directly deleted").await?);
Ok(()) Ok(())
} }
@@ -577,13 +577,13 @@ mod tests {
let alice2 = TestContext::new_alice().await; let alice2 = TestContext::new_alice().await;
alice2.set_config_bool(Config::SyncMsgs, true).await?; alice2.set_config_bool(Config::SyncMsgs, true).await?;
alice2.recv_msg(&sent_msg).await; alice2.recv_msg(&sent_msg).await;
assert!(token::exists(&alice2, token::Namespace::Auth, "testtoken").await); assert!(token::exists(&alice2, token::Namespace::Auth, "testtoken").await?);
assert_eq!(Chatlist::try_load(&alice2, 0, None, None).await?.len(), 0); assert_eq!(Chatlist::try_load(&alice2, 0, None, None).await?.len(), 0);
// the same sync message sent to bob must not be executed // the same sync message sent to bob must not be executed
let bob = TestContext::new_bob().await; let bob = TestContext::new_bob().await;
bob.recv_msg(&sent_msg).await; bob.recv_msg(&sent_msg).await;
assert!(!token::exists(&bob, token::Namespace::Auth, "testtoken").await); assert!(!token::exists(&bob, token::Namespace::Auth, "testtoken").await?);
Ok(()) Ok(())
} }

View File

@@ -103,15 +103,15 @@ pub async fn lookup_or_new(
token token
} }
pub async fn exists(context: &Context, namespace: Namespace, token: &str) -> bool { pub async fn exists(context: &Context, namespace: Namespace, token: &str) -> Result<bool> {
context let exists = context
.sql .sql
.exists( .exists(
"SELECT COUNT(*) FROM tokens WHERE namespc=? AND token=?;", "SELECT COUNT(*) FROM tokens WHERE namespc=? AND token=?;",
(namespace, token), (namespace, token),
) )
.await .await?;
.unwrap_or_default() Ok(exists)
} }
pub async fn delete(context: &Context, namespace: Namespace, token: &str) -> Result<()> { pub async fn delete(context: &Context, namespace: Namespace, token: &str) -> Result<()> {