feat: add admin work visibility controls

This commit is contained in:
kdletters
2026-05-28 00:49:45 +08:00
parent 8e96c8a67c
commit dbbd48083a
38 changed files with 1807 additions and 89 deletions

View File

@@ -87,6 +87,61 @@ impl SpacetimeClient {
Ok(config)
}
pub async fn admin_list_work_visibility(
&self,
admin_user_id: String,
) -> Result<Vec<shared_contracts::admin::AdminWorkVisibilityEntryPayload>, SpacetimeClientError>
{
let procedure_input = build_admin_work_visibility_list_input(admin_user_id)
.map_err(SpacetimeClientError::validation_failed)?
.into();
self.call_after_connect("admin_list_work_visibility", move |connection, sender| {
connection
.procedures()
.admin_list_work_visibility_then(procedure_input, move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_admin_work_visibility_list_procedure_result);
send_once(&sender, mapped);
});
})
.await
}
pub async fn admin_update_work_visibility(
&self,
admin_user_id: String,
source_type: String,
profile_id: String,
visible: bool,
) -> Result<shared_contracts::admin::AdminWorkVisibilityEntryPayload, SpacetimeClientError>
{
let procedure_input = build_admin_work_visibility_update_input(
admin_user_id,
source_type,
profile_id,
visible,
)
.map_err(SpacetimeClientError::validation_failed)?
.into();
self.call_after_connect(
"admin_update_work_visibility",
move |connection, sender| {
connection
.procedures()
.admin_update_work_visibility_then(procedure_input, move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_admin_work_visibility_procedure_result);
send_once(&sender, mapped);
});
},
)
.await
}
pub async fn get_runtime_settings(
&self,
user_id: String,