mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 17:36:29 +03:00
refactor: resultify token::exists
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
14
src/sync.rs
14
src/sync.rs
@@ -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(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<()> {
|
||||||
|
|||||||
Reference in New Issue
Block a user