Skip to main content

admin/
realm.rs

1use actrix_proto::{RealmInfo, admin::v1::SecretRotationState};
2use platform::realm::Realm;
3
4/// Convert a Realm record into proto RealmInfo
5pub fn realm_to_proto(realm: &Realm) -> RealmInfo {
6    let secret_rotation_state = if !realm.secret_current.is_empty() {
7        let (previous_hash, previous_valid_until) = match &realm.secret_previous {
8            Some((hash, valid_until)) => (Some(hash.clone()), Some(*valid_until as i64)),
9            None => (None, None),
10        };
11        Some(SecretRotationState {
12            current_hash_preview: realm.secret_current.clone(),
13            previous_hash_preview: previous_hash,
14            previous_valid_until,
15        })
16    } else {
17        None
18    };
19
20    RealmInfo {
21        realm_id: realm.id,
22        name: realm.name.clone(),
23        enabled: realm.enabled,
24        created_at: realm.created_at as i64,
25        updated_at: realm.updated_at.map(|v| v as i64),
26        expires_at: realm.expires_at.unwrap_or(0),
27        status: realm.status.to_string(),
28        secret_rotation_state,
29    }
30}