Compare commits

..

2 Commits

3 changed files with 38 additions and 24 deletions

@ -14,7 +14,7 @@ impl Context{
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_scripts<'a>(&self,config:GetScriptsRequest<'a>)->Result<Vec<ScriptResponse>,Error>{ pub async fn get_scripts<'a>(&self,config:GetScriptsRequest<'a>)->Result<Vec<ScriptResponse>,Error>{
let url_raw=format!("{}/scripts",self.0.base_url); let url_raw=format!("{}/scripts",self.0.base_url);
@ -33,15 +33,18 @@ impl Context{
if let Some(source)=config.Source{ if let Some(source)=config.Source{
query_pairs.append_pair("Source",source); query_pairs.append_pair("Source",source);
} }
if let Some(submission_id)=config.SubmissionID{ if let Some(resource_type)=config.ResourceType{
query_pairs.append_pair("SubmissionID",submission_id.to_string().as_str()); query_pairs.append_pair("ResourceType",(resource_type as i32).to_string().as_str());
}
if let Some(resource_id)=config.ResourceID{
query_pairs.append_pair("ResourceID",resource_id.to_string().as_str());
} }
} }
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptResponse>,SingleItemError>{ pub async fn get_script_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptResponse>,SingleItemError>{
let scripts=self.get_scripts(GetScriptsRequest{ let scripts=self.get_scripts(GetScriptsRequest{
@ -50,7 +53,8 @@ impl Context{
Hash:Some(config.hash), Hash:Some(config.hash),
Name:None, Name:None,
Source:None, Source:None,
SubmissionID:None, ResourceType:None,
ResourceID:None,
}).await.map_err(SingleItemError::Other)?; }).await.map_err(SingleItemError::Other)?;
if 1<scripts.len(){ if 1<scripts.len(){
return Err(SingleItemError::DuplicateItems); return Err(SingleItemError::DuplicateItems);
@ -66,7 +70,7 @@ impl Context{
response_ok( response_ok(
self.0.post(url,body).await.map_err(Error::Reqwest)? self.0.post(url,body).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_policies<'a>(&self,config:GetScriptPoliciesRequest<'a>)->Result<Vec<ScriptPolicyResponse>,Error>{ pub async fn get_script_policies<'a>(&self,config:GetScriptPoliciesRequest<'a>)->Result<Vec<ScriptPolicyResponse>,Error>{
let url_raw=format!("{}/script-policy",self.0.base_url); let url_raw=format!("{}/script-policy",self.0.base_url);
@ -90,7 +94,7 @@ impl Context{
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_policy_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptPolicyResponse>,SingleItemError>{ pub async fn get_script_policy_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptPolicyResponse>,SingleItemError>{
let policies=self.get_script_policies(GetScriptPoliciesRequest{ let policies=self.get_script_policies(GetScriptPoliciesRequest{
@ -114,7 +118,7 @@ impl Context{
response_ok( response_ok(
self.0.post(url,body).await.map_err(Error::Reqwest)? self.0.post(url,body).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn update_script_policy(&self,config:UpdateScriptPolicyRequest)->Result<(),Error>{ pub async fn update_script_policy(&self,config:UpdateScriptPolicyRequest)->Result<(),Error>{
let url_raw=format!("{}/script-policy/{}",self.0.base_url,config.ID.0); let url_raw=format!("{}/script-policy/{}",self.0.base_url,config.ID.0);

@ -29,7 +29,7 @@ impl Context{
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_scripts<'a>(&self,config:GetScriptsRequest<'a>)->Result<Vec<ScriptResponse>,Error>{ pub async fn get_scripts<'a>(&self,config:GetScriptsRequest<'a>)->Result<Vec<ScriptResponse>,Error>{
let url_raw=format!("{}/scripts",self.0.base_url); let url_raw=format!("{}/scripts",self.0.base_url);
@ -48,15 +48,18 @@ impl Context{
if let Some(source)=config.Source{ if let Some(source)=config.Source{
query_pairs.append_pair("Source",source); query_pairs.append_pair("Source",source);
} }
if let Some(submission_id)=config.SubmissionID{ if let Some(resource_type)=config.ResourceType{
query_pairs.append_pair("SubmissionID",submission_id.to_string().as_str()); query_pairs.append_pair("ResourceType",(resource_type as i32).to_string().as_str());
}
if let Some(resource_id)=config.ResourceID{
query_pairs.append_pair("ResourceID",resource_id.to_string().as_str());
} }
} }
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptResponse>,SingleItemError>{ pub async fn get_script_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptResponse>,SingleItemError>{
let scripts=self.get_scripts(GetScriptsRequest{ let scripts=self.get_scripts(GetScriptsRequest{
@ -65,7 +68,8 @@ impl Context{
Hash:Some(config.hash), Hash:Some(config.hash),
Name:None, Name:None,
Source:None, Source:None,
SubmissionID:None, ResourceType:None,
ResourceID:None,
}).await.map_err(SingleItemError::Other)?; }).await.map_err(SingleItemError::Other)?;
if 1<scripts.len(){ if 1<scripts.len(){
return Err(SingleItemError::DuplicateItems); return Err(SingleItemError::DuplicateItems);
@ -81,7 +85,7 @@ impl Context{
response_ok( response_ok(
self.0.post(url,body).await.map_err(Error::Reqwest)? self.0.post(url,body).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_policies<'a>(&self,config:GetScriptPoliciesRequest<'a>)->Result<Vec<ScriptPolicyResponse>,Error>{ pub async fn get_script_policies<'a>(&self,config:GetScriptPoliciesRequest<'a>)->Result<Vec<ScriptPolicyResponse>,Error>{
let url_raw=format!("{}/script-policy",self.0.base_url); let url_raw=format!("{}/script-policy",self.0.base_url);
@ -105,7 +109,7 @@ impl Context{
response_ok( response_ok(
self.0.get(url).await.map_err(Error::Reqwest)? self.0.get(url).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn get_script_policy_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptPolicyResponse>,SingleItemError>{ pub async fn get_script_policy_from_hash<'a>(&self,config:HashRequest<'a>)->Result<Option<ScriptPolicyResponse>,SingleItemError>{
let policies=self.get_script_policies(GetScriptPoliciesRequest{ let policies=self.get_script_policies(GetScriptPoliciesRequest{
@ -129,7 +133,7 @@ impl Context{
response_ok( response_ok(
self.0.post(url,body).await.map_err(Error::Reqwest)? self.0.post(url,body).await.map_err(Error::Reqwest)?
).await.map_err(Error::Response)? ).await.map_err(Error::Response)?
.json().await.map_err(Error::Reqwest) .json().await.map_err(Error::ReqwestJson)
} }
pub async fn update_submission_validated_model(&self,config:UpdateSubmissionModelRequest)->Result<(),Error>{ pub async fn update_submission_validated_model(&self,config:UpdateSubmissionModelRequest)->Result<(),Error>{
let url_raw=format!("{}/submissions/{}/validated-model",self.0.base_url,config.SubmissionID); let url_raw=format!("{}/submissions/{}/validated-model",self.0.base_url,config.SubmissionID);

@ -2,6 +2,7 @@
pub enum Error{ pub enum Error{
Parse(url::ParseError), Parse(url::ParseError),
Reqwest(reqwest::Error), Reqwest(reqwest::Error),
ReqwestJson(reqwest::Error),
Response(ResponseError), Response(ResponseError),
JSON(serde_json::Error), JSON(serde_json::Error),
} }
@ -65,6 +66,14 @@ pub struct ScriptID(pub(crate)i64);
#[derive(Clone,Copy,Debug,serde::Serialize,serde::Deserialize)] #[derive(Clone,Copy,Debug,serde::Serialize,serde::Deserialize)]
pub struct ScriptPolicyID(pub(crate)i64); pub struct ScriptPolicyID(pub(crate)i64);
#[derive(Clone,Copy,Debug,PartialEq,Eq,serde_repr::Serialize_repr,serde_repr::Deserialize_repr)]
#[repr(i32)]
pub enum ResourceType{
Unknown=0,
Mapfix=1,
Submission=2,
}
#[allow(nonstandard_style)] #[allow(nonstandard_style)]
pub struct GetScriptRequest{ pub struct GetScriptRequest{
pub ScriptID:ScriptID, pub ScriptID:ScriptID,
@ -81,7 +90,9 @@ pub struct GetScriptsRequest<'a>{
#[serde(skip_serializing_if="Option::is_none")] #[serde(skip_serializing_if="Option::is_none")]
pub Source:Option<&'a str>, pub Source:Option<&'a str>,
#[serde(skip_serializing_if="Option::is_none")] #[serde(skip_serializing_if="Option::is_none")]
pub SubmissionID:Option<i64>, pub ResourceType:Option<ResourceType>,
#[serde(skip_serializing_if="Option::is_none")]
pub ResourceID:Option<i64>,
} }
#[derive(Clone,Copy,Debug)] #[derive(Clone,Copy,Debug)]
pub struct HashRequest<'a>{ pub struct HashRequest<'a>{
@ -94,13 +105,8 @@ pub struct ScriptResponse{
pub Name:String, pub Name:String,
pub Hash:String, pub Hash:String,
pub Source:String, pub Source:String,
pub SubmissionID:i64, pub ResourceType:ResourceType,
} pub ResourceID:i64,
#[derive(Clone,Debug,serde::Serialize)]
pub enum ResourceType{
Unknown=0,
Mapfix=1,
Submission=2,
} }
#[allow(nonstandard_style)] #[allow(nonstandard_style)]
#[derive(Clone,Debug,serde::Serialize)] #[derive(Clone,Debug,serde::Serialize)]