botx_api/api/v3/chats/add_admin/
models.rs

1use serde::{Serialize, Deserialize};
2use uuid::Uuid;
3
4use crate::api::{
5    models::ChatNotFound,
6    v3::chats::models::*
7};
8
9/// Запрос на добавление администраторов в чат
10#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
11#[builder(setter(into, prefix = "with", strip_option))]
12pub struct AddAdminRequest {
13    /// Идентификатор чата
14    pub group_chat_id: Uuid,
15    
16    /// Список добавляемых администраторов
17    pub user_huids: Vec<Uuid>,
18}
19
20/// Ответ eXpress на запрос добавления администраторов в чат
21#[derive(Debug, Serialize, Deserialize, Clone)]
22pub struct AddAdminResponse {
23    /// Результат запроса
24    /// 
25    /// TODO: Я не знаю что значит false, документация не описывает, откройте issue как станет понятно 
26    pub result: bool,
27}
28
29/// Ошибки при добавлении администраторов в чат
30#[derive(Debug, Serialize, Deserialize, Clone)]
31#[serde(tag = "reason")]
32pub enum AddAdminError {
33    /// Чат не найден
34    #[serde(rename(serialize = "chat_not_found", deserialize = "chat_not_found"))]
35    ChatNotFound(ChatNotFound),
36
37    /// Бот не является админом чата
38    #[serde(rename(serialize = "no_permission_for_operation", deserialize = "no_permission_for_operation"))]
39    NoPermissionForOperation(NoPermissionForOperation),
40
41    /// Редактирование списка администраторов персонального чата невозможно
42    #[serde(rename(serialize = "chat_members_not_modifiable", deserialize = "chat_members_not_modifiable"))]
43    ChatMemberNotModifiable(ChatMemberNotModifiable),
44
45    // TODO: добавить десериализацию в HashMap<string, string> когда завезут реализацию
46    /// Неопределенная ошибка, смотрите логи
47    #[serde(other)]
48    Other,
49}