use super::base::{Request, TelegramMethod};
use crate::{
client::Bot,
types::{ChatIdKind, ChatMember},
};
use serde::Serialize;
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize)]
pub struct GetChatAdministrators {
pub chat_id: ChatIdKind,
}
impl GetChatAdministrators {
#[must_use]
pub fn new(chat_id: impl Into<ChatIdKind>) -> Self {
Self {
chat_id: chat_id.into(),
}
}
#[must_use]
pub fn chat_id(self, val: impl Into<ChatIdKind>) -> Self {
Self {
chat_id: val.into(),
}
}
}
impl TelegramMethod for GetChatAdministrators {
type Method = Self;
type Return = Vec<ChatMember>;
fn build_request<Client>(&self, _bot: &Bot<Client>) -> Request<Self::Method> {
Request::new("getChatAdministrators", self, None)
}
}
impl AsRef<GetChatAdministrators> for GetChatAdministrators {
fn as_ref(&self) -> &Self {
self
}
}