jira_v3_openapi/apis/
workflow_statuses_api.rs

1/*
2 * The Jira Cloud platform REST API
3 *
4 * Jira Cloud platform REST API documentation
5 *
6 * The version of the OpenAPI document: 1001.0.0-SNAPSHOT-4f9780d932de14e7c3dec0c9382f8855050fda22
7 * Contact: ecosystem@atlassian.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_status`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetStatusError {
22    Status401(),
23    Status404(),
24    UnknownValue(serde_json::Value),
25}
26
27/// struct for typed errors of method [`get_statuses`]
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum GetStatusesError {
31    Status401(),
32    UnknownValue(serde_json::Value),
33}
34
35
36/// Returns a status. The status must be associated with an active workflow to be returned.  If a name is used on more than one status, only the status found first is returned. Therefore, identifying the status by its ID may be preferable.  This operation can be accessed anonymously.  [Permissions](#permissions) required: *Browse projects* [project permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-permissions/) for the project.
37pub async fn get_status(configuration: &configuration::Configuration, id_or_name: &str) -> Result<models::StatusDetails, Error<GetStatusError>> {
38    let local_var_configuration = configuration;
39
40    let local_var_client = &local_var_configuration.client;
41
42    let local_var_uri_str = format!("{}/rest/api/3/status/{idOrName}", local_var_configuration.base_path, idOrName=crate::apis::urlencode(id_or_name));
43    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
44
45    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
46        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
47    }
48    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
49        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
50    };
51    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
52        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
53    };
54
55    let local_var_req = local_var_req_builder.build()?;
56    let local_var_resp = local_var_client.execute(local_var_req).await?;
57
58    let local_var_status = local_var_resp.status();
59    let local_var_content = local_var_resp.text().await?;
60
61    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
62        serde_json::from_str(&local_var_content).map_err(Error::from)
63    } else {
64        let local_var_entity: Option<GetStatusError> = serde_json::from_str(&local_var_content).ok();
65        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
66        Err(Error::ResponseError(local_var_error))
67    }
68}
69
70/// Returns a list of all statuses associated with active workflows.  This operation can be accessed anonymously.  [Permissions](#permissions) required: *Browse projects* [project permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-permissions/) for the project.
71pub async fn get_statuses(configuration: &configuration::Configuration, ) -> Result<Vec<models::StatusDetails>, Error<GetStatusesError>> {
72    let local_var_configuration = configuration;
73
74    let local_var_client = &local_var_configuration.client;
75
76    let local_var_uri_str = format!("{}/rest/api/3/status", local_var_configuration.base_path);
77    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
78
79    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
80        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
81    }
82    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
83        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
84    };
85    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
86        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
87    };
88
89    let local_var_req = local_var_req_builder.build()?;
90    let local_var_resp = local_var_client.execute(local_var_req).await?;
91
92    let local_var_status = local_var_resp.status();
93    let local_var_content = local_var_resp.text().await?;
94
95    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
96        serde_json::from_str(&local_var_content).map_err(Error::from)
97    } else {
98        let local_var_entity: Option<GetStatusesError> = serde_json::from_str(&local_var_content).ok();
99        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
100        Err(Error::ResponseError(local_var_error))
101    }
102}
103