Skip to main content

atlassian_rust_api/jira/endpoints/application_roles/
get_role.rs

1use std::sync::Arc;
2
3use crate::{Jira, Result, rest_client::RestClient, web::Endpoint};
4
5#[derive(Debug, Clone)]
6pub struct GetRoleBuilder {
7	client: Arc<RestClient>,
8	request: GetRoleRequest,
9}
10
11#[derive(Debug, Clone, Default)]
12struct GetRoleRequest {
13	key: String,
14}
15
16impl Endpoint for GetRoleRequest {
17	fn endpoint(&self) -> std::borrow::Cow<'static, str> {
18		format!("applicationrole/{}", &self.key).into()
19	}
20}
21
22impl GetRoleBuilder {
23	fn new(client: Arc<RestClient>) -> GetRoleBuilder {
24		GetRoleBuilder { client, request: GetRoleRequest::default() }
25	}
26
27	fn key(mut self, key: impl Into<String>) -> GetRoleBuilder {
28		self.request.key = key.into();
29		self
30	}
31
32	pub async fn send(self) -> Result<serde_json::Value> {
33		self.client.get(self.request).await
34	}
35}
36
37impl Jira {
38	/// Returns the ApplicationRole with the given key if it exists. Returns a 404 if the ApplicationRole
39	/// is not found.
40	pub fn get_role(&self, key: impl Into<String>) -> GetRoleBuilder {
41		GetRoleBuilder::new(Arc::clone(&self.client)).key(key)
42	}
43}