1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use crate::client::Bot;
use serde::Serialize;
/// Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns `true` on success.
/// # Documentation
/// <https://core.telegram.org/bots/api#setchatphoto>
/// # Returns
/// - `bool`
#[derive(Clone, Debug, Serialize)]
pub struct SetChatPhoto {
/// Unique identifier for the target chat or username of the target channel (in the format @channelusername)
pub chat_id: crate::types::ChatIdKind,
/// New chat photo, uploaded using multipart/form-data
pub photo: crate::types::InputFile,
}
impl SetChatPhoto {
/// Creates a new `SetChatPhoto`.
///
/// # Arguments
/// * `chat_id` - Unique identifier for the target chat or username of the target channel (in the format @channelusername)
/// * `photo` - New chat photo, uploaded using multipart/form-data
#[must_use]
pub fn new<T0: Into<crate::types::ChatIdKind>, T1: Into<crate::types::InputFile>>(
chat_id: T0,
photo: T1,
) -> Self {
Self {
chat_id: chat_id.into(),
photo: photo.into(),
}
}
/// Unique identifier for the target chat or username of the target channel (in the format @channelusername)
#[must_use]
pub fn chat_id<T: Into<crate::types::ChatIdKind>>(self, val: T) -> Self {
let mut this = self;
this.chat_id = val.into();
this
}
/// New chat photo, uploaded using multipart/form-data
#[must_use]
pub fn photo<T: Into<crate::types::InputFile>>(self, val: T) -> Self {
let mut this = self;
this.photo = val.into();
this
}
}
impl super::TelegramMethod for SetChatPhoto {
type Method = Self;
type Return = bool;
fn build_request<Client>(mut self, _bot: &Bot<Client>) -> super::Request<Self::Method> {
let mut files = vec![];
super::prepare_file(&mut files, &mut self.photo);
super::Request::new("setChatPhoto", self, Some(files))
}
}