1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-07-29 22:01:14 +03:00

storage: finish cleaning up the errors

This commit is contained in:
Quentin Gliech
2022-12-08 15:09:54 +01:00
parent bd93074076
commit 56d43b0166
13 changed files with 111 additions and 157 deletions

View File

@ -24,7 +24,7 @@ use uuid::Uuid;
use crate::{
pagination::{process_page, QueryBuilderExt},
Clock, DatabaseError, DatabaseInconsistencyError2, LookupResultExt,
Clock, DatabaseError, DatabaseInconsistencyError, LookupResultExt,
};
#[derive(sqlx::FromRow)]
@ -40,17 +40,17 @@ struct ProviderLookup {
}
impl TryFrom<ProviderLookup> for UpstreamOAuthProvider {
type Error = DatabaseInconsistencyError2;
type Error = DatabaseInconsistencyError;
fn try_from(value: ProviderLookup) -> Result<Self, Self::Error> {
let id = value.upstream_oauth_provider_id.into();
let scope = value.scope.parse().map_err(|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("scope")
.row(id)
.source(e)
})?;
let token_endpoint_auth_method = value.token_endpoint_auth_method.parse().map_err(|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("token_endpoint_auth_method")
.row(id)
.source(e)
@ -60,7 +60,7 @@ impl TryFrom<ProviderLookup> for UpstreamOAuthProvider {
.map(|x| x.parse())
.transpose()
.map_err(|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("token_endpoint_signing_alg")
.row(id)
.source(e)

View File

@ -19,9 +19,7 @@ use sqlx::PgExecutor;
use ulid::Ulid;
use uuid::Uuid;
use crate::{
Clock, DatabaseError, DatabaseInconsistencyError2, GenericLookupError, LookupResultExt,
};
use crate::{Clock, DatabaseError, DatabaseInconsistencyError, LookupResultExt};
struct SessionAndProviderLookup {
upstream_oauth_authorization_session_id: Uuid,
@ -92,7 +90,7 @@ pub async fn lookup_session(
id,
issuer: res.provider_issuer,
scope: res.provider_scope.parse().map_err(|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("scope")
.row(id)
.source(e)
@ -101,7 +99,7 @@ pub async fn lookup_session(
encrypted_client_secret: res.provider_encrypted_client_secret,
token_endpoint_auth_method: res.provider_token_endpoint_auth_method.parse().map_err(
|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("token_endpoint_auth_method")
.row(id)
.source(e)
@ -112,7 +110,7 @@ pub async fn lookup_session(
.map(|x| x.parse())
.transpose()
.map_err(|e| {
DatabaseInconsistencyError2::on("upstream_oauth_providers")
DatabaseInconsistencyError::on("upstream_oauth_providers")
.column("token_endpoint_signing_alg")
.row(id)
.source(e)
@ -297,7 +295,7 @@ pub async fn lookup_session_on_link(
executor: impl PgExecutor<'_>,
upstream_oauth_link: &UpstreamOAuthLink,
id: Ulid,
) -> Result<UpstreamOAuthAuthorizationSession, GenericLookupError> {
) -> Result<Option<UpstreamOAuthAuthorizationSession>, sqlx::Error> {
let res = sqlx::query_as!(
SessionLookup,
r#"
@ -321,11 +319,11 @@ pub async fn lookup_session_on_link(
)
.fetch_one(executor)
.await
.map_err(GenericLookupError::what(
"Upstream OAuth 2.0 session on link",
))?;
.to_option()?;
Ok(UpstreamOAuthAuthorizationSession {
let Some(res) = res else { return Ok(None) };
Ok(Some(UpstreamOAuthAuthorizationSession {
id: res.upstream_oauth_authorization_session_id.into(),
provider_id: res.upstream_oauth_provider_id.into(),
link_id: res.upstream_oauth_link_id.map(Ulid::from),
@ -336,5 +334,5 @@ pub async fn lookup_session_on_link(
created_at: res.created_at,
completed_at: res.completed_at,
consumed_at: res.consumed_at,
})
}))
}