use leash_sdk::LeashIntegrations;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct JiraGetParams {
pub path: String,
#[serde(rename = "queryParams")]
#[serde(skip_serializing_if = "Option::is_none")]
pub queryparams: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jq: Option<String>,
#[serde(rename = "outputFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputformat: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct JiraPostParams {
pub path: String,
#[serde(rename = "queryParams")]
#[serde(skip_serializing_if = "Option::is_none")]
pub queryparams: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jq: Option<String>,
#[serde(rename = "outputFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputformat: Option<String>,
pub body: serde_json::Value,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct JiraPutParams {
pub path: String,
#[serde(rename = "queryParams")]
#[serde(skip_serializing_if = "Option::is_none")]
pub queryparams: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jq: Option<String>,
#[serde(rename = "outputFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputformat: Option<String>,
pub body: serde_json::Value,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct JiraPatchParams {
pub path: String,
#[serde(rename = "queryParams")]
#[serde(skip_serializing_if = "Option::is_none")]
pub queryparams: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jq: Option<String>,
#[serde(rename = "outputFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputformat: Option<String>,
pub body: serde_json::Value,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct JiraDeleteParams {
pub path: String,
#[serde(rename = "queryParams")]
#[serde(skip_serializing_if = "Option::is_none")]
pub queryparams: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jq: Option<String>,
#[serde(rename = "outputFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputformat: Option<String>,
}
pub struct JiraClient {
leash: LeashIntegrations,
}
impl JiraClient {
pub fn new(leash: LeashIntegrations) -> Self {
Self { leash }
}
pub async fn jira_get(&self, params: &JiraGetParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("jira", "jira_get", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn jira_post(&self, params: &JiraPostParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("jira", "jira_post", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn jira_put(&self, params: &JiraPutParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("jira", "jira_put", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn jira_patch(&self, params: &JiraPatchParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("jira", "jira_patch", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn jira_delete(&self, params: &JiraDeleteParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("jira", "jira_delete", Some(serde_json::to_value(params).unwrap_or_default())).await
}
}