diff options
Diffstat (limited to 'makima/src/daemon/api/directive.rs')
| -rw-r--r-- | makima/src/daemon/api/directive.rs | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/makima/src/daemon/api/directive.rs b/makima/src/daemon/api/directive.rs index fcc2ca5..a0cdab0 100644 --- a/makima/src/daemon/api/directive.rs +++ b/makima/src/daemon/api/directive.rs @@ -30,54 +30,6 @@ pub struct UpdateStepDepsRequest { pub depends_on: Vec<Uuid>, } -/// Percent-encode a string for use as a URL path segment. -/// -/// Encodes all characters except unreserved characters (alphanumeric, `-`, `.`, `_`, `~`). -fn percent_encode_path(s: &str) -> String { - let mut encoded = String::with_capacity(s.len()); - for byte in s.bytes() { - match byte { - b'A'..=b'Z' | b'a'..=b'z' | b'0'..=b'9' | b'-' | b'.' | b'_' | b'~' => { - encoded.push(byte as char); - } - _ => { - encoded.push_str(&format!("%{:02X}", byte)); - } - } - } - encoded -} - -/// Request body for setting a single memory entry. -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct SetMemoryRequest { - pub key: String, - pub value: String, -} - -/// A single entry within a batch set request. -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct BatchMemoryEntry { - pub key: String, - pub value: String, -} - -/// Request body for setting multiple memory entries at once. -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct BatchSetMemoryRequest { - pub entries: Vec<BatchMemoryEntry>, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct MemorySetRequest { - pub value: String, -} - - impl ApiClient { /// List all directives. pub async fn list_directives(&self) -> Result<JsonValue, ApiError> { @@ -194,157 +146,6 @@ impl ApiClient { self.put(&format!("/api/v1/directives/{}", directive_id), &req).await } - // ── Directive Memory ────────────────────────────────────────────── - - /// List all memory entries for a directive. - pub async fn list_memories(&self, directive_id: Uuid) -> Result<JsonValue, ApiError> { - self.get(&format!("/api/v1/directives/{}/memory", directive_id)) - .await - } - - /// Get a single memory entry by key. - pub async fn get_memory( - &self, - directive_id: Uuid, - key: &str, - ) -> Result<JsonValue, ApiError> { - self.get(&format!( - "/api/v1/directives/{}/memory/{}", - directive_id, - percent_encode_path(key) - )) - .await - } - - /// Set (create or update) a single memory entry. - pub async fn set_memory( - &self, - directive_id: Uuid, - key: &str, - value: &str, - ) -> Result<JsonValue, ApiError> { - let req = SetMemoryRequest { - key: key.to_string(), - value: value.to_string(), - }; - self.put(&format!("/api/v1/directives/{}/memory", directive_id), &req) - .await - } - - /// Set multiple memory entries in a single request. - pub async fn batch_set_memories( - &self, - directive_id: Uuid, - entries: Vec<(String, String)>, - ) -> Result<JsonValue, ApiError> { - let req = BatchSetMemoryRequest { - entries: entries - .into_iter() - .map(|(key, value)| BatchMemoryEntry { key, value }) - .collect(), - }; - self.post( - &format!("/api/v1/directives/{}/memory/batch", directive_id), - &req, - ) - .await - } - - /// Delete a single memory entry by key. - pub async fn delete_memory( - &self, - directive_id: Uuid, - key: &str, - ) -> Result<(), ApiError> { - self.delete(&format!( - "/api/v1/directives/{}/memory/{}", - directive_id, - percent_encode_path(key) - )) - .await - } - - /// Clear all memory entries for a directive. - pub async fn clear_memories(&self, directive_id: Uuid) -> Result<(), ApiError> { - self.delete(&format!("/api/v1/directives/{}/memory", directive_id)) - .await - } - - // ── CLI-facing Directive Memory aliases ────────────────────────── - - /// Set a memory key-value pair for a directive (CLI-facing). - pub async fn directive_memory_set( - &self, - directive_id: Uuid, - key: &str, - value: &str, - ) -> Result<JsonValue, ApiError> { - let req = MemorySetRequest { - value: value.to_string(), - }; - self.put( - &format!("/api/v1/directives/{}/memory/{}", directive_id, key), - &req, - ) - .await - } - - /// Get a memory value by key for a directive (CLI-facing). - pub async fn directive_memory_get( - &self, - directive_id: Uuid, - key: &str, - ) -> Result<JsonValue, ApiError> { - self.get(&format!( - "/api/v1/directives/{}/memory/{}", - directive_id, key - )) - .await - } - - /// List all memory key-value pairs for a directive (CLI-facing). - pub async fn directive_memory_list( - &self, - directive_id: Uuid, - ) -> Result<JsonValue, ApiError> { - self.get(&format!("/api/v1/directives/{}/memory", directive_id)) - .await - } - - /// Delete a memory key for a directive (CLI-facing). - pub async fn directive_memory_delete( - &self, - directive_id: Uuid, - key: &str, - ) -> Result<(), ApiError> { - self.delete(&format!( - "/api/v1/directives/{}/memory/{}", - directive_id, key - )) - .await - } - - /// Clear all memory for a directive (CLI-facing). - pub async fn directive_memory_clear( - &self, - directive_id: Uuid, - ) -> Result<(), ApiError> { - self.delete(&format!("/api/v1/directives/{}/memory", directive_id)) - .await - } - - /// Batch set multiple memory key-value pairs for a directive (CLI-facing). - pub async fn directive_memory_batch_set( - &self, - directive_id: Uuid, - entries: serde_json::Value, - ) -> Result<JsonValue, ApiError> { - self.post( - &format!("/api/v1/directives/{}/memory/batch", directive_id), - &entries, - ) - .await - } } #[derive(Serialize)] |
