summaryrefslogtreecommitdiff
path: root/makima/src/daemon/api/supervisor.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-26 20:19:30 +0000
committersoryu <soryu@soryu.co>2026-01-26 20:19:30 +0000
commit04e1e8f0dd85d19917ac5ba0b73cba65ebac8976 (patch)
treee52537dd2a33c10156f1378ffdc6803bc983482d /makima/src/daemon/api/supervisor.rs
parent6328477bc459eca0243b685553dbd75b925fdc8a (diff)
downloadsoryu-04e1e8f0dd85d19917ac5ba0b73cba65ebac8976.tar.gz
soryu-04e1e8f0dd85d19917ac5ba0b73cba65ebac8976.zip
Add completion phases
Diffstat (limited to 'makima/src/daemon/api/supervisor.rs')
-rw-r--r--makima/src/daemon/api/supervisor.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/makima/src/daemon/api/supervisor.rs b/makima/src/daemon/api/supervisor.rs
index 74c27e0..e79a9bb 100644
--- a/makima/src/daemon/api/supervisor.rs
+++ b/makima/src/daemon/api/supervisor.rs
@@ -299,6 +299,31 @@ impl ApiClient {
self.delete(&format!("/api/v1/mesh/tasks/{}", task_id)).await
}
+ /// Mark a deliverable as complete.
+ pub async fn supervisor_mark_deliverable(
+ &self,
+ contract_id: Uuid,
+ deliverable_id: &str,
+ phase: Option<&str>,
+ ) -> Result<JsonValue, ApiError> {
+ #[derive(Serialize)]
+ #[serde(rename_all = "camelCase")]
+ struct MarkDeliverableRequest {
+ deliverable_id: String,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ phase: Option<String>,
+ }
+ let req = MarkDeliverableRequest {
+ deliverable_id: deliverable_id.to_string(),
+ phase: phase.map(|s| s.to_string()),
+ };
+ self.post(
+ &format!("/api/v1/contracts/{}/deliverables/complete", contract_id),
+ &req,
+ )
+ .await
+ }
+
/// Update a task.
pub async fn update_task(
&self,