Skip to content

Commit ad7fedf

Browse files
committed
Adapt most code to use the new edges and cursors
1 parent 5e0f70c commit ad7fedf

File tree

10 files changed

+62
-66
lines changed

10 files changed

+62
-66
lines changed

crates/cli/src/commands/manage.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,9 +390,10 @@ impl Options {
390390
info!("The following users can request admin privileges ({total} total):");
391391
loop {
392392
let page = repo.user().list(filter, cursor).await?;
393-
for user in page.edges {
393+
for edge in page.edges {
394+
let user = edge.node;
394395
info!(%user.id, username = %user.username);
395-
cursor = cursor.after(user.id);
396+
cursor = cursor.after(edge.cursor);
396397
}
397398

398399
if !page.has_next_page {

crates/cli/src/sync.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ pub async fn config_sync(
132132
let mut existing_enabled_ids = BTreeSet::new();
133133
let mut existing_disabled = BTreeMap::new();
134134
// Process the existing providers
135-
for provider in page.edges {
135+
for edge in page.edges {
136+
let provider = edge.node;
136137
if provider.enabled() {
137138
if config_ids.contains(&provider.id) {
138139
existing_enabled_ids.insert(provider.id);

crates/handlers/src/graphql/model/browser_sessions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ impl BrowserSession {
172172

173173
connection
174174
.edges
175-
.extend(page.edges.into_iter().map(|s| match s {
175+
.extend(page.edges.into_iter().map(|edge| match edge.node {
176176
mas_storage::app_session::AppSession::Compat(session) => Edge::new(
177177
OpaqueCursor(NodeCursor(NodeType::CompatSession, session.id)),
178178
AppSession::CompatSession(Box::new(CompatSession::new(*session))),

crates/handlers/src/graphql/model/users.rs

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,10 @@ impl User {
125125
page.has_next_page,
126126
PreloadedTotalCount(count),
127127
);
128-
connection.edges.extend(page.edges.into_iter().map(|u| {
128+
connection.edges.extend(page.edges.into_iter().map(|edge| {
129129
Edge::new(
130-
OpaqueCursor(NodeCursor(NodeType::CompatSsoLogin, u.id)),
131-
CompatSsoLogin(u),
130+
OpaqueCursor(NodeCursor(NodeType::CompatSsoLogin, edge.cursor)),
131+
CompatSsoLogin(edge.node),
132132
)
133133
}));
134134

@@ -219,14 +219,13 @@ impl User {
219219
page.has_next_page,
220220
PreloadedTotalCount(count),
221221
);
222-
connection
223-
.edges
224-
.extend(page.edges.into_iter().map(|(session, sso_login)| {
225-
Edge::new(
226-
OpaqueCursor(NodeCursor(NodeType::CompatSession, session.id)),
227-
CompatSession::new(session).with_loaded_sso_login(sso_login),
228-
)
229-
}));
222+
connection.edges.extend(page.edges.into_iter().map(|edge| {
223+
let (session, sso_login) = edge.node;
224+
Edge::new(
225+
OpaqueCursor(NodeCursor(NodeType::CompatSession, session.id)),
226+
CompatSession::new(session).with_loaded_sso_login(sso_login),
227+
)
228+
}));
230229

231230
Ok::<_, async_graphql::Error>(connection)
232231
},
@@ -305,10 +304,10 @@ impl User {
305304
page.has_next_page,
306305
PreloadedTotalCount(count),
307306
);
308-
connection.edges.extend(page.edges.into_iter().map(|u| {
307+
connection.edges.extend(page.edges.into_iter().map(|edge| {
309308
Edge::new(
310-
OpaqueCursor(NodeCursor(NodeType::BrowserSession, u.id)),
311-
BrowserSession(u),
309+
OpaqueCursor(NodeCursor(NodeType::BrowserSession, edge.cursor)),
310+
BrowserSession(edge.node),
312311
)
313312
}));
314313

@@ -373,10 +372,10 @@ impl User {
373372
page.has_next_page,
374373
PreloadedTotalCount(count),
375374
);
376-
connection.edges.extend(page.edges.into_iter().map(|u| {
375+
connection.edges.extend(page.edges.into_iter().map(|edge| {
377376
Edge::new(
378-
OpaqueCursor(NodeCursor(NodeType::UserEmail, u.id)),
379-
UserEmail(u),
377+
OpaqueCursor(NodeCursor(NodeType::UserEmail, edge.cursor)),
378+
UserEmail(edge.node),
380379
)
381380
}));
382381

@@ -480,10 +479,10 @@ impl User {
480479
PreloadedTotalCount(count),
481480
);
482481

483-
connection.edges.extend(page.edges.into_iter().map(|s| {
482+
connection.edges.extend(page.edges.into_iter().map(|edge| {
484483
Edge::new(
485-
OpaqueCursor(NodeCursor(NodeType::OAuth2Session, s.id)),
486-
OAuth2Session(s),
484+
OpaqueCursor(NodeCursor(NodeType::OAuth2Session, edge.cursor)),
485+
OAuth2Session(edge.node),
487486
)
488487
}));
489488

@@ -547,10 +546,10 @@ impl User {
547546
page.has_next_page,
548547
PreloadedTotalCount(count),
549548
);
550-
connection.edges.extend(page.edges.into_iter().map(|s| {
549+
connection.edges.extend(page.edges.into_iter().map(|edge| {
551550
Edge::new(
552-
OpaqueCursor(NodeCursor(NodeType::UpstreamOAuth2Link, s.id)),
553-
UpstreamOAuth2Link::new(s),
551+
OpaqueCursor(NodeCursor(NodeType::UpstreamOAuth2Link, edge.cursor)),
552+
UpstreamOAuth2Link::new(edge.node),
554553
)
555554
}));
556555

@@ -689,13 +688,13 @@ impl User {
689688

690689
connection
691690
.edges
692-
.extend(page.edges.into_iter().map(|s| match s {
691+
.extend(page.edges.into_iter().map(|edge| match edge.node {
693692
mas_storage::app_session::AppSession::Compat(session) => Edge::new(
694-
OpaqueCursor(NodeCursor(NodeType::CompatSession, session.id)),
693+
OpaqueCursor(NodeCursor(NodeType::CompatSession, edge.cursor)),
695694
AppSession::CompatSession(Box::new(CompatSession::new(*session))),
696695
),
697696
mas_storage::app_session::AppSession::OAuth2(session) => Edge::new(
698-
OpaqueCursor(NodeCursor(NodeType::OAuth2Session, session.id)),
697+
OpaqueCursor(NodeCursor(NodeType::OAuth2Session, edge.cursor)),
699698
AppSession::OAuth2Session(Box::new(OAuth2Session(*session))),
700699
),
701700
}));

crates/handlers/src/graphql/query/session.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ impl SessionQuery {
6868
);
6969
}
7070

71-
if let Some((compat_session, sso_login)) = compat_sessions.edges.into_iter().next() {
71+
if let Some(edge) = compat_sessions.edges.into_iter().next() {
72+
let (compat_session, sso_login) = edge.node;
7273
repo.cancel().await?;
7374

7475
return Ok(Some(Session::CompatSession(Box::new(
@@ -92,10 +93,10 @@ impl SessionQuery {
9293
);
9394
}
9495

95-
if let Some(session) = sessions.edges.into_iter().next() {
96+
if let Some(edge) = sessions.edges.into_iter().next() {
9697
repo.cancel().await?;
9798
return Ok(Some(Session::OAuth2Session(Box::new(OAuth2Session(
98-
session,
99+
edge.node,
99100
)))));
100101
}
101102
repo.cancel().await?;

crates/handlers/src/graphql/query/upstream_oauth.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,10 @@ impl UpstreamOAuthQuery {
130130
page.has_next_page,
131131
PreloadedTotalCount(count),
132132
);
133-
connection.edges.extend(page.edges.into_iter().map(|p| {
133+
connection.edges.extend(page.edges.into_iter().map(|edge| {
134134
Edge::new(
135-
OpaqueCursor(NodeCursor(NodeType::UpstreamOAuth2Provider, p.id)),
136-
UpstreamOAuth2Provider::new(p),
135+
OpaqueCursor(NodeCursor(NodeType::UpstreamOAuth2Provider, edge.cursor)),
136+
UpstreamOAuth2Provider::new(edge.node),
137137
)
138138
}));
139139

crates/handlers/src/graphql/query/user.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,12 @@ impl UserQuery {
143143
page.has_next_page,
144144
PreloadedTotalCount(count),
145145
);
146-
connection.edges.extend(
147-
page.edges.into_iter().map(|p| {
148-
Edge::new(OpaqueCursor(NodeCursor(NodeType::User, p.id)), User(p))
149-
}),
150-
);
146+
connection.edges.extend(page.edges.into_iter().map(|edge| {
147+
Edge::new(
148+
OpaqueCursor(NodeCursor(NodeType::User, edge.cursor)),
149+
User(edge.node),
150+
)
151+
}));
151152

152153
Ok::<_, async_graphql::Error>(connection)
153154
},

crates/tasks/src/matrix.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,12 @@ impl RunnableJob for SyncDevicesJob {
203203
.await
204204
.map_err(JobError::retry)?;
205205

206-
for (compat_session, _) in page.edges {
206+
for edge in page.edges {
207+
let (compat_session, _) = edge.node;
207208
if let Some(ref device) = compat_session.device {
208209
devices.insert(device.as_str().to_owned());
209210
}
210-
cursor = cursor.after(compat_session.id);
211+
cursor = cursor.after(edge.cursor);
211212
}
212213

213214
if !page.has_next_page {
@@ -227,14 +228,14 @@ impl RunnableJob for SyncDevicesJob {
227228
.await
228229
.map_err(JobError::retry)?;
229230

230-
for oauth2_session in page.edges {
231-
for scope in &*oauth2_session.scope {
231+
for edge in page.edges {
232+
for scope in &*edge.node.scope {
232233
if let Some(device) = Device::from_scope_token(scope) {
233234
devices.insert(device.as_str().to_owned());
234235
}
235236
}
236237

237-
cursor = cursor.after(oauth2_session.id);
238+
cursor = cursor.after(edge.cursor);
238239
}
239240

240241
if !page.has_next_page {

crates/tasks/src/recovery.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,34 +70,26 @@ impl RunnableJob for SendAccountRecoveryEmailsJob {
7070
.await
7171
.map_err(JobError::retry)?;
7272

73-
for email in page.edges {
73+
for edge in page.edges {
7474
let ticket = Alphanumeric.sample_string(&mut rng, 32);
7575

7676
let ticket = repo
7777
.user_recovery()
78-
.add_ticket(&mut rng, clock, &session, &email, ticket)
78+
.add_ticket(&mut rng, clock, &session, &edge.node, ticket)
7979
.await
8080
.map_err(JobError::retry)?;
8181

82-
let user_email = repo
83-
.user_email()
84-
.lookup(email.id)
85-
.await
86-
.map_err(JobError::retry)?
87-
.context("User email not found")
88-
.map_err(JobError::fail)?;
89-
9082
let user = repo
9183
.user()
92-
.lookup(user_email.user_id)
84+
.lookup(edge.node.user_id)
9385
.await
9486
.map_err(JobError::retry)?
9587
.context("User not found")
9688
.map_err(JobError::fail)?;
9789

9890
let url = url_builder.account_recovery_link(ticket.ticket);
9991

100-
let address: Address = user_email.email.parse().map_err(JobError::fail)?;
92+
let address: Address = edge.node.email.parse().map_err(JobError::fail)?;
10193
let mailbox = Mailbox::new(Some(user.username.clone()), address);
10294

10395
info!("Sending recovery email to {}", mailbox);
@@ -112,7 +104,7 @@ impl RunnableJob for SendAccountRecoveryEmailsJob {
112104
);
113105
}
114106

115-
cursor = cursor.after(email.id);
107+
cursor = cursor.after(edge.cursor);
116108
}
117109

118110
if !page.has_next_page {

crates/tasks/src/sessions.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl RunnableJob for ExpireInactiveOAuthSessionsJob {
110110
}
111111

112112
for edge in page.edges {
113-
if let Some(user_id) = edge.user_id {
113+
if let Some(user_id) = edge.node.user_id {
114114
let inserted = users_synced.insert(user_id);
115115
if inserted {
116116
tracing::info!(user.id = %user_id, "Scheduling devices sync for user");
@@ -128,7 +128,7 @@ impl RunnableJob for ExpireInactiveOAuthSessionsJob {
128128
}
129129

130130
repo.oauth2_session()
131-
.finish(clock, edge)
131+
.finish(clock, edge.node)
132132
.await
133133
.map_err(JobError::retry)?;
134134
}
@@ -174,14 +174,14 @@ impl RunnableJob for ExpireInactiveCompatSessionsJob {
174174
}
175175

176176
for edge in page.edges {
177-
let inserted = users_synced.insert(edge.user_id);
177+
let inserted = users_synced.insert(edge.node.user_id);
178178
if inserted {
179-
tracing::info!(user.id = %edge.user_id, "Scheduling devices sync for user");
179+
tracing::info!(user.id = %edge.node.user_id, "Scheduling devices sync for user");
180180
repo.queue_job()
181181
.schedule_job_later(
182182
&mut rng,
183183
clock,
184-
SyncDevicesJob::new_for_id(edge.user_id),
184+
SyncDevicesJob::new_for_id(edge.node.user_id),
185185
clock.now() + delay,
186186
)
187187
.await
@@ -190,7 +190,7 @@ impl RunnableJob for ExpireInactiveCompatSessionsJob {
190190
}
191191

192192
repo.compat_session()
193-
.finish(clock, edge)
193+
.finish(clock, edge.node)
194194
.await
195195
.map_err(JobError::retry)?;
196196
}
@@ -230,7 +230,7 @@ impl RunnableJob for ExpireInactiveUserSessionsJob {
230230

231231
for edge in page.edges {
232232
repo.browser_session()
233-
.finish(clock, edge)
233+
.finish(clock, edge.node)
234234
.await
235235
.map_err(JobError::retry)?;
236236
}

0 commit comments

Comments
 (0)