Skip to content

Commit 369b249

Browse files
committed
feat(user): migrate pub/sub
1 parent 9277340 commit 369b249

File tree

30 files changed

+188
-572
lines changed

30 files changed

+188
-572
lines changed

Cargo.lock

+10-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/api/auth/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ uuid = { version = "1", features = ["v4"] }
4545
rivet-auth.workspace = true
4646
rivet-connection.workspace = true
4747

48-
faker-user.workspace = true
4948
debug-email-res.workspace = true
5049
user-identity-get.workspace = true
5150

packages/api/auth/src/route/identity.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ pub async fn complete(
143143
.await?;
144144

145145
// Send user update to hub
146-
msg!([ctx] user::msg::update(user_ent.user_id) {
147-
user_id: Some(user_ent.user_id.into()),
148-
})
149-
.await?;
146+
(*ctx).msg(::user::workflows::user::Update {})
147+
.tag("user_id", user_ent.user_id)
148+
.send()
149+
.await?;
150150

151151
Ok(models::AuthIdentityCompleteEmailVerificationResponse {
152152
status: models::AuthCompleteStatus::LinkedAccountAdded,

packages/api/auth/src/route/tokens.rs

+16-5
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,23 @@ async fn fallback_user(
180180
AccessKind::Public | AccessKind::Private => {
181181
// Register new user
182182
let user_id = Uuid::new_v4();
183-
msg!([ctx] user::msg::create(user_id) -> user::msg::create_complete {
184-
user_id: Some(user_id.into()),
185-
namespace_id: None,
186-
display_name: None,
187-
})
183+
let mut creation_sub = chirp_workflow::compat::subscribe::<
184+
::user::workflows::user::CreateComplete, _
185+
>(&ctx, ("user_id", user_id)).await?;
186+
187+
chirp_workflow::compat::workflow(
188+
&ctx,
189+
::user::workflows::user::Input {
190+
user_id,
191+
display_name: None,
192+
}
193+
)
194+
.await?
195+
.tag("user_id", user_id)
196+
.dispatch()
188197
.await?;
198+
199+
creation_sub.next().await?;
189200

190201
user_id
191202
}

packages/api/cloud/src/route/games/mod.rs

+2-24
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,10 @@ const MAX_BANNER_UPLOAD_SIZE: i64 = util::file_size::megabytes(10) as i64;
2525
// MARK: GET /games
2626
pub async fn list(
2727
ctx: Ctx<Auth>,
28-
watch_index: WatchIndexQuery,
28+
_watch_index: WatchIndexQuery,
2929
) -> GlobalResult<models::CloudGamesGetGamesResponse> {
3030
let accessible_games = ctx.auth().accessible_games(ctx.op_ctx()).await?;
3131

32-
// Wait for an update if needed
33-
let update_ts = if let Some(anchor) = watch_index.to_consumer()? {
34-
// Error if a cloud token tries to watch this endpoint, game update
35-
// messages for teams aren't implemented
36-
if let Some(user_id) = accessible_games.user_id {
37-
let game_update_sub = tail_anchor!([ctx, anchor] user::msg::game_update(user_id));
38-
39-
util::macros::select_with_timeout!({
40-
event = game_update_sub => {
41-
let event = event?;
42-
43-
event.msg_ts()
44-
}
45-
})
46-
} else {
47-
bail_with!(API_FORBIDDEN, reason = "Cloud token cannot watch `/games`");
48-
}
49-
} else {
50-
Default::default()
51-
};
52-
let update_ts = update_ts.unwrap_or_else(util::timestamp::now);
53-
5432
let games = fetch::game::summaries(ctx.op_ctx(), accessible_games.game_ids).await?;
5533
let groups = fetch::group::summaries(
5634
ctx.op_ctx(),
@@ -62,7 +40,7 @@ pub async fn list(
6240
Ok(models::CloudGamesGetGamesResponse {
6341
games,
6442
groups,
65-
watch: WatchResponse::new_as_model(update_ts),
43+
watch: WatchResponse::new_as_model(util::timestamp::now()),
6644
})
6745
}
6846

packages/api/group/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@ rivet-connection.workspace = true
6060
rivet-group.workspace = true
6161
rand = "0.8"
6262

63-
faker-user.workspace = true
63+
faker.workspace = true

packages/api/group/src/fetch/identity.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use api_helper::ctx::Ctx;
22
use proto::{
3-
backend::{self, pkg::*},
3+
backend,
44
common,
55
};
66
use rivet_operation::prelude::*;

0 commit comments

Comments
 (0)