Skip to main content

atlassian_rust_api/jira/endpoints/avatars/
create_avatar_from_temporary.rs

1use std::sync::Arc;
2
3use crate::{Jira, Result, rest_client::RestClient, web::Endpoint};
4
5#[derive(Debug, Clone)]
6pub struct CreateAvatarFromTemporaryBuilder {
7	client: Arc<RestClient>,
8	request: CreateAvatarFromTemporaryRequest,
9}
10
11#[derive(Debug, Clone, Default)]
12struct CreateAvatarFromTemporaryRequest {
13	avatar_type: String,
14	width: u64,
15	offset_x: u64,
16	offset_y: u64,
17	needs_cropping: bool,
18}
19
20impl Endpoint for CreateAvatarFromTemporaryRequest {
21	fn endpoint(&self) -> std::borrow::Cow<'static, str> {
22		format!("avatar/{}/temporaryCrop", &self.avatar_type).into()
23	}
24}
25
26impl CreateAvatarFromTemporaryBuilder {
27	fn new(client: Arc<RestClient>) -> CreateAvatarFromTemporaryBuilder {
28		CreateAvatarFromTemporaryBuilder { client, request: CreateAvatarFromTemporaryRequest::default() }
29	}
30	
31	fn avatar_type(mut self, avatar_type: impl Into<String>) -> CreateAvatarFromTemporaryBuilder {
32		self.request.avatar_type = avatar_type.into();
33		self
34	}
35
36	pub fn width(mut self, width: u64) -> CreateAvatarFromTemporaryBuilder {
37		self.request.width = width;
38		self
39	}
40
41	pub fn offset_x(mut self, offset_x: u64) -> CreateAvatarFromTemporaryBuilder {
42		self.request.offset_x = offset_x;
43		self
44	}
45
46	pub fn offset_y(mut self, offset_y: u64) -> CreateAvatarFromTemporaryBuilder {
47		self.request.offset_y = offset_y;
48		self
49	}
50
51	pub fn needs_cropping(mut self, needs_cropping: bool) -> CreateAvatarFromTemporaryBuilder {
52		self.request.needs_cropping = needs_cropping;
53		self
54	}
55
56	pub async fn send(self) -> Result<()> {
57		self.client.post_ignore(self.request).await
58	}
59}
60
61impl Jira {
62	/// Updates the cropping instructions of the temporary avatar.
63	pub fn create_avatar_from_temporary(&self, avatar_type: impl Into<String>) -> CreateAvatarFromTemporaryBuilder {
64		CreateAvatarFromTemporaryBuilder::new(Arc::clone(&self.client)).avatar_type(avatar_type)
65	}
66}