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

storage: repository pattern for the compat layer

This commit is contained in:
Quentin Gliech
2023-01-12 15:41:26 +01:00
parent 9f0c9f1466
commit 36396c0b45
18 changed files with 1738 additions and 1191 deletions

View File

@ -15,7 +15,7 @@
use anyhow::Context as _;
use async_graphql::{Context, Description, Object, ID};
use chrono::{DateTime, Utc};
use mas_storage::{compat::lookup_compat_session, user::UserRepository, Repository};
use mas_storage::{compat::CompatSessionRepository, user::UserRepository, Repository};
use sqlx::PgPool;
use url::Url;
@ -101,7 +101,9 @@ impl CompatSsoLogin {
let Some(session_id) = self.0.session_id() else { return Ok(None) };
let mut conn = ctx.data::<PgPool>()?.acquire().await?;
let session = lookup_compat_session(&mut conn, session_id)
let session = conn
.compat_session()
.lookup(session_id)
.await?
.context("Could not load compat session")?;

View File

@ -18,6 +18,7 @@ use async_graphql::{
};
use chrono::{DateTime, Utc};
use mas_storage::{
compat::CompatSsoLoginRepository,
oauth2::OAuth2SessionRepository,
user::{BrowserSessionRepository, UserEmailRepository},
Repository, UpstreamOAuthLinkRepository,
@ -96,14 +97,13 @@ impl User {
.map(|x: OpaqueCursor<NodeCursor>| x.extract_for_type(NodeType::CompatSsoLogin))
.transpose()?;
let (has_previous_page, has_next_page, edges) =
mas_storage::compat::get_paginated_user_compat_sso_logins(
&mut conn, &self.0, before_id, after_id, first, last,
)
let page = conn
.compat_sso_login()
.list_paginated(&self.0, before_id, after_id, first, last)
.await?;
let mut connection = Connection::new(has_previous_page, has_next_page);
connection.edges.extend(edges.into_iter().map(|u| {
let mut connection = Connection::new(page.has_previous_page, page.has_next_page);
connection.edges.extend(page.edges.into_iter().map(|u| {
Edge::new(
OpaqueCursor(NodeCursor(NodeType::CompatSsoLogin, u.id)),
CompatSsoLogin(u),