diff --git a/api/src/client.rs b/api/src/client.rs index 2ad2fa0..4f6565c 100644 --- a/api/src/client.rs +++ b/api/src/client.rs @@ -1,7 +1,13 @@ use clusterizer_common::{ - errors::{CreateFileError, FetchTasksError, RegisterError, SubmitResultError}, - records::{File, Get, Task}, - requests::{CreateFileRequest, FetchTasksRequest, RegisterRequest, SubmitResultRequest}, + errors::{ + CreateFileError, FetchTasksError, RegisterError, SubmitResultError, ValidateFetchError, + ValidateSubmitError, + }, + records::{File, Get, Project, Task}, + requests::{ + CreateFileRequest, FetchTasksRequest, RegisterRequest, SubmitResultRequest, + ValidateSubmitRequest, + }, responses::RegisterResponse, types::Id, }; @@ -56,6 +62,23 @@ impl ApiClient { Ok(()) } + pub async fn validate_fetch( + &self, + project_id: Id, + ) -> ApiResult, ValidateFetchError> { + let url = format!("{}/validate_fetch/{project_id}", self.url); + Ok(self.send_get(url).await?.json().await?) + } + + pub async fn validate_submit( + &self, + request: &ValidateSubmitRequest, + ) -> ApiResult<(), ValidateSubmitError> { + let url = format!("{}/validate_submit", self.url); + self.send_post(url, request).await?; + Ok(()) + } + pub async fn create_file( &self, request: &CreateFileRequest, @@ -64,6 +87,13 @@ impl ApiClient { Ok(self.send_post(url, request).await?.json().await?) } + async fn send_get( + &self, + url: impl IntoUrl, + ) -> ApiResult { + self.send(self.client.get(url)).await + } + async fn send_post( &self, url: impl IntoUrl,