conogram/methods/
answer_pre_checkout_query.rs1use std::{
2 future::{Future, IntoFuture},
3 pin::Pin,
4};
5
6use serde::Serialize;
7
8use crate::{api::API, errors::ConogramError, impl_into_future, request::RequestT};
9
10#[derive(Debug, Clone, Serialize)]
11pub struct AnswerPreCheckoutQueryParams {
12 pub pre_checkout_query_id: String,
13 pub ok: bool,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub error_message: Option<String>,
16}
17
18impl_into_future!(AnswerPreCheckoutQueryRequest<'a>);
19
20#[derive(Clone)]
22pub struct AnswerPreCheckoutQueryRequest<'a> {
23 api: &'a API,
24 params: AnswerPreCheckoutQueryParams,
25}
26
27impl<'a> RequestT for AnswerPreCheckoutQueryRequest<'a> {
28 type ParamsType = AnswerPreCheckoutQueryParams;
29 type ReturnType = bool;
30 fn get_name() -> &'static str {
31 "answerPreCheckoutQuery"
32 }
33 fn get_api_ref(&self) -> &API {
34 self.api
35 }
36 fn get_params_ref(&self) -> &Self::ParamsType {
37 &self.params
38 }
39 fn is_multipart() -> bool {
40 false
41 }
42}
43impl<'a> AnswerPreCheckoutQueryRequest<'a> {
44 pub fn new(
45 api: &'a API,
46 pre_checkout_query_id: impl Into<String>,
47 ok: impl Into<bool>,
48 ) -> Self {
49 Self {
50 api,
51 params: AnswerPreCheckoutQueryParams {
52 pre_checkout_query_id: pre_checkout_query_id.into(),
53 ok: ok.into(),
54 error_message: Option::default(),
55 },
56 }
57 }
58
59 #[must_use]
61 pub fn pre_checkout_query_id(mut self, pre_checkout_query_id: impl Into<String>) -> Self {
62 self.params.pre_checkout_query_id = pre_checkout_query_id.into();
63 self
64 }
65
66 #[must_use]
68 pub fn ok(mut self, ok: impl Into<bool>) -> Self {
69 self.params.ok = ok.into();
70 self
71 }
72
73 #[must_use]
75 pub fn error_message(mut self, error_message: impl Into<String>) -> Self {
76 self.params.error_message = Some(error_message.into());
77 self
78 }
79}
80
81impl API {
82 pub fn answer_pre_checkout_query(
84 &self,
85 pre_checkout_query_id: impl Into<String>,
86 ok: impl Into<bool>,
87 ) -> AnswerPreCheckoutQueryRequest {
88 AnswerPreCheckoutQueryRequest::new(self, pre_checkout_query_id, ok)
89 }
90}
91
92