Skip to content

Commit c9fc011

Browse files
committed
fixup! Support compatibility sessions that do not have devices
1 parent 6ed745a commit c9fc011

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

crates/storage-pg/src/compat/session.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl TryFrom<CompatSessionLookup> for CompatSession {
100100
#[enum_def]
101101
struct CompatSessionAndSsoLoginLookup {
102102
compat_session_id: Uuid,
103-
device_id: String,
103+
device_id: Option<String>,
104104
user_id: Uuid,
105105
user_session_id: Option<Uuid>,
106106
created_at: DateTime<Utc>,
@@ -122,12 +122,16 @@ impl TryFrom<CompatSessionAndSsoLoginLookup> for (CompatSession, Option<CompatSs
122122

123123
fn try_from(value: CompatSessionAndSsoLoginLookup) -> Result<Self, Self::Error> {
124124
let id = value.compat_session_id.into();
125-
let device = Some(Device::try_from(value.device_id).map_err(|e| {
126-
DatabaseInconsistencyError::on("compat_sessions")
127-
.column("device_id")
128-
.row(id)
129-
.source(e)
130-
})?);
125+
let device = value
126+
.device_id
127+
.map(Device::try_from)
128+
.transpose()
129+
.map_err(|e| {
130+
DatabaseInconsistencyError::on("compat_sessions")
131+
.column("device_id")
132+
.row(id)
133+
.source(e)
134+
})?;
131135

132136
let state = match value.finished_at {
133137
None => CompatSessionState::Valid,

0 commit comments

Comments
 (0)