use super::base::{Request, TelegramMethod};
use crate::{
client::Bot,
types::{InlineQueryResult, SentWebAppMessage},
};
use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct AnswerWebAppQuery {
pub web_app_query_id: String,
pub result: InlineQueryResult,
}
impl AnswerWebAppQuery {
#[must_use]
pub fn new(web_app_query_id: impl Into<String>, result: impl Into<InlineQueryResult>) -> Self {
Self {
web_app_query_id: web_app_query_id.into(),
result: result.into(),
}
}
#[must_use]
pub fn web_app_query_id(self, val: impl Into<String>) -> Self {
Self {
web_app_query_id: val.into(),
..self
}
}
#[must_use]
pub fn result(self, val: impl Into<InlineQueryResult>) -> Self {
Self {
result: val.into(),
..self
}
}
}
impl TelegramMethod for AnswerWebAppQuery {
type Method = Self;
type Return = SentWebAppMessage;
fn build_request<Client>(&self, _bot: &Bot<Client>) -> Request<Self::Method> {
Request::new("answerWebAppQuery", self, None)
}
}
impl AsRef<AnswerWebAppQuery> for AnswerWebAppQuery {
fn as_ref(&self) -> &Self {
self
}
}