atlassian_rust_api/jira/endpoints/avatars/
create_avatar_from_temporary.rs1use 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 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}