diff --git a/Cargo.lock b/Cargo.lock index 2d61e40..74a1c20 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1903,7 +1903,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "submissions-api" -version = "0.7.1" +version = "0.7.2" dependencies = [ "reqwest", "serde", diff --git a/validation/api/Cargo.toml b/validation/api/Cargo.toml index 42321bc..e4080ef 100644 --- a/validation/api/Cargo.toml +++ b/validation/api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "submissions-api" -version = "0.7.1" +version = "0.7.2" edition = "2021" publish = ["strafesnet"] repository = "https://git.itzana.me/StrafesNET/maps-service" diff --git a/validation/api/src/context.rs b/validation/api/src/context.rs index 3264027..36476b3 100644 --- a/validation/api/src/context.rs +++ b/validation/api/src/context.rs @@ -44,4 +44,8 @@ impl Context{ .body(body) .send().await } + pub async fn delete(&self,url:impl reqwest::IntoUrl)->Result<reqwest::Response,reqwest::Error>{ + self.client.delete(url) + .send().await + } } diff --git a/validation/api/src/external.rs b/validation/api/src/external.rs index 58f93fa..e5b9cb0 100644 --- a/validation/api/src/external.rs +++ b/validation/api/src/external.rs @@ -72,6 +72,16 @@ impl Context{ ).await.map_err(Error::Response)? .json().await.map_err(Error::ReqwestJson) } + pub async fn delete_script(&self,config:GetScriptRequest)->Result<(),Error>{ + let url_raw=format!("{}/scripts/{}",self.0.base_url,config.ScriptID.0); + let url=reqwest::Url::parse(url_raw.as_str()).map_err(Error::Parse)?; + + response_ok( + self.0.delete(url).await.map_err(Error::Reqwest)? + ).await.map_err(Error::Response)?; + + Ok(()) + } pub async fn get_script_policies(&self,config:GetScriptPoliciesRequest<'_>)->Result<Vec<ScriptPolicyResponse>,Error>{ let url_raw=format!("{}/script-policy",self.0.base_url); let mut url=reqwest::Url::parse(url_raw.as_str()).map_err(Error::Parse)?; @@ -130,6 +140,16 @@ impl Context{ self.0.post(url,body).await.map_err(Error::Reqwest)? ).await.map_err(Error::Response)?; + Ok(()) + } + pub async fn delete_script_policy(&self,config:GetScriptPolicyRequest)->Result<(),Error>{ + let url_raw=format!("{}/script-policy/{}",self.0.base_url,config.ScriptPolicyID.0); + let url=reqwest::Url::parse(url_raw.as_str()).map_err(Error::Parse)?; + + response_ok( + self.0.delete(url).await.map_err(Error::Reqwest)? + ).await.map_err(Error::Response)?; + Ok(()) } } diff --git a/validation/api/src/types.rs b/validation/api/src/types.rs index 1e4ffe2..1616ac5 100644 --- a/validation/api/src/types.rs +++ b/validation/api/src/types.rs @@ -173,6 +173,10 @@ pub enum Policy{ Replace=4, } +#[allow(nonstandard_style)] +pub struct GetScriptPolicyRequest{ + pub ScriptPolicyID:ScriptPolicyID, +} #[allow(nonstandard_style)] #[derive(Clone,Debug,serde::Serialize)] pub struct GetScriptPoliciesRequest<'a>{