From 0cc1dc6aff26bbd833b0f357ca5b909eb4066278 Mon Sep 17 00:00:00 2001 From: Arran Ireland Date: Sat, 22 Aug 2026 15:08:36 +0100 Subject: [PATCH] external-engine: add submit analysis endpoint --- lib/src/api/external_engine.rs | 7 +++++++ lib/src/model/external_engine/mod.rs | 1 + .../model/external_engine/submit_analysis.rs | 20 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 lib/src/model/external_engine/submit_analysis.rs diff --git a/lib/src/api/external_engine.rs b/lib/src/api/external_engine.rs index 017889b..cd0677a 100644 --- a/lib/src/api/external_engine.rs +++ b/lib/src/api/external_engine.rs @@ -53,4 +53,11 @@ impl LichessApi { // The response is a stream of 0 or 1 items, so we can just take the first item Ok((stream.next().await).transpose()?) } + + pub async fn submit_analysis( + &self, + request: impl Into, + ) -> Result<()> { + self.get_empty(request.into()).await + } } diff --git a/lib/src/model/external_engine/mod.rs b/lib/src/model/external_engine/mod.rs index 7080c26..d8174a0 100644 --- a/lib/src/model/external_engine/mod.rs +++ b/lib/src/model/external_engine/mod.rs @@ -4,6 +4,7 @@ pub mod create; pub mod delete; pub mod id; pub mod list; +pub mod submit_analysis; pub mod update; use serde::{Deserialize, Serialize}; diff --git a/lib/src/model/external_engine/submit_analysis.rs b/lib/src/model/external_engine/submit_analysis.rs new file mode 100644 index 0000000..42668b9 --- /dev/null +++ b/lib/src/model/external_engine/submit_analysis.rs @@ -0,0 +1,20 @@ +use crate::model::{Body, Domain, Request}; +use serde::Serialize; + +#[derive(Default, Clone, Debug, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PostQuery; + +pub type PostRequest = Request; + +impl PostRequest { + pub fn new(id: &str, analysis: String) -> Self { + Self { + domain: Domain::Engine, + method: http::Method::POST, + path: format!("/api/external-engine/work/{id}"), + query: Default::default(), + body: Body::PlainText(analysis), + } + } +}