conogram/methods/
approve_chat_join_request.rs1use std::{
2 future::{Future, IntoFuture},
3 pin::Pin,
4};
5
6use serde::Serialize;
7
8use crate::{
9 api::API, entities::misc::chat_id::ChatId, errors::ConogramError, impl_into_future,
10 request::RequestT,
11};
12
13#[derive(Debug, Clone, Serialize)]
14pub struct ApproveChatJoinRequestParams {
15 pub chat_id: ChatId,
16 pub user_id: i64,
17}
18
19impl_into_future!(ApproveChatJoinRequestRequest<'a>);
20
21#[derive(Clone)]
23pub struct ApproveChatJoinRequestRequest<'a> {
24 api: &'a API,
25 params: ApproveChatJoinRequestParams,
26}
27
28impl<'a> RequestT for ApproveChatJoinRequestRequest<'a> {
29 type ParamsType = ApproveChatJoinRequestParams;
30 type ReturnType = bool;
31 fn get_name() -> &'static str {
32 "approveChatJoinRequest"
33 }
34 fn get_api_ref(&self) -> &API {
35 self.api
36 }
37 fn get_params_ref(&self) -> &Self::ParamsType {
38 &self.params
39 }
40 fn is_multipart() -> bool {
41 false
42 }
43}
44impl<'a> ApproveChatJoinRequestRequest<'a> {
45 pub fn new(api: &'a API, chat_id: impl Into<ChatId>, user_id: impl Into<i64>) -> Self {
46 Self {
47 api,
48 params: ApproveChatJoinRequestParams {
49 chat_id: chat_id.into(),
50 user_id: user_id.into(),
51 },
52 }
53 }
54
55 #[must_use]
57 pub fn chat_id(mut self, chat_id: impl Into<ChatId>) -> Self {
58 self.params.chat_id = chat_id.into();
59 self
60 }
61
62 #[must_use]
64 pub fn user_id(mut self, user_id: impl Into<i64>) -> Self {
65 self.params.user_id = user_id.into();
66 self
67 }
68}
69
70impl API {
71 pub fn approve_chat_join_request(
73 &self,
74 chat_id: impl Into<ChatId>,
75 user_id: impl Into<i64>,
76 ) -> ApproveChatJoinRequestRequest {
77 ApproveChatJoinRequestRequest::new(self, chat_id, user_id)
78 }
79}
80
81