Files
Genarrative/server-rs/crates/spacetime-client/src/external_api_key.rs
T
suzmii cbc73f111c
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
恢复外部 API Key 表并统一 Router 账号存储
恢复 external_api_key 表及客户端绑定为 master 原始结构

将 LLM Router 凭据、状态、撤销和缓存统一收敛到 llm_router_account

移除后台与契约中的 purpose 字段及 Router 专用撤销 procedure

同步更新架构文档并补齐相关测试契约
2026-09-03 19:43:10 +08:00

95 lines
3.4 KiB
Rust

use super::*;
impl SpacetimeClient {
pub async fn create_external_api_key(
&self,
input: ExternalApiKeyCreateRecordInput,
) -> Result<ExternalApiKeyRecord, SpacetimeClientError> {
let procedure_input = input.into();
self.call_after_connect(
"create_external_api_key_and_return",
move |connection, sender| {
connection
.procedures()
.create_external_api_key_and_return_then(procedure_input, move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_external_api_key_single_procedure_result);
send_once(&sender, mapped);
});
},
)
.await
}
pub async fn list_external_api_keys(
&self,
owner_user_id: String,
) -> Result<Vec<ExternalApiKeyRecord>, SpacetimeClientError> {
let procedure_input = ExternalApiKeyListInput { owner_user_id };
self.call_after_connect(
"list_external_api_keys_and_return",
move |connection, sender| {
connection
.procedures()
.list_external_api_keys_and_return_then(procedure_input, move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_external_api_key_list_procedure_result);
send_once(&sender, mapped);
});
},
)
.await
}
pub async fn revoke_external_api_key(
&self,
input: ExternalApiKeyRevokeRecordInput,
) -> Result<ExternalApiKeyRecord, SpacetimeClientError> {
let procedure_input = input.into();
self.call_after_connect(
"revoke_external_api_key_and_return",
move |connection, sender| {
connection
.procedures()
.revoke_external_api_key_and_return_then(procedure_input, move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_external_api_key_single_procedure_result);
send_once(&sender, mapped);
});
},
)
.await
}
pub async fn authenticate_external_api_key(
&self,
input: ExternalApiKeyAuthenticateRecordInput,
) -> Result<ExternalApiKeyRecord, SpacetimeClientError> {
let procedure_input = input.into();
self.call_after_connect(
"authenticate_external_api_key_and_return",
move |connection, sender| {
connection
.procedures()
.authenticate_external_api_key_and_return_then(
procedure_input,
move |_, result| {
let mapped = result
.map_err(SpacetimeClientError::from_sdk_error)
.and_then(map_external_api_key_single_procedure_result);
send_once(&sender, mapped);
},
);
},
)
.await
}
}