FastComments.com

FastComments Rust SDK


Это официальный SDK на Rust для FastComments.

Официальный SDK на Rust для API FastComments

Репозиторий

Посмотреть на GitHub


Установка Internal Link

cargo add fastcomments-sdk

SDK требует Rust 2021 edition или более поздней версии.

Содержимое библиотеки Internal Link


FastComments Rust SDK состоит из нескольких модулей:

  • Модуль клиента - Автоматически сгенерированный API-клиент для FastComments REST API

    • Полные определения типов для всех моделей API
    • Как аутентифицированные (DefaultApi), так и публичные (PublicApi) конечные точки
    • Полная поддержка async/await с tokio
    • Смотрите client/README.md для подробной документации API
  • Модуль SSO - Серверные утилиты единого входа (Single Sign-On)

    • Безопасная генерация токенов для аутентификации пользователей
    • Поддержка как простого, так и защищённого режимов SSO
    • Подпись токенов на основе HMAC-SHA256
  • Core Types - Общие определения типов и утилиты

    • Модели комментариев и структуры метаданных
    • Конфигурации пользователей и тенантов
    • Вспомогательные функции для общих операций

Быстрый старт Internal Link

Использование публичного API

use fastcomments_sdk::client::apis::configuration::Configuration;
use fastcomments_sdk::client::apis::public_api;

#[tokio::main]
async fn main() {
    // Создать конфигурацию API
    let config = Configuration::new();

    // Получить комментарии для страницы
    let result = public_api::get_comments_public(
        &config,
        public_api::GetCommentsPublicParams {
            tenant_id: "your-tenant-id".to_string(),
            urlid: Some("page-url-id".to_string()),
            url: None,
            count_only: None,
            skip: None,
            limit: None,
            sort_dir: None,
            page: None,
            sso_hash: None,
            simple_sso_hash: None,
            has_no_comment: None,
            has_comment: None,
            comment_id_filter: None,
            child_ids: None,
            start_date_time: None,
            starts_with: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Found {} comments", response.comments.len());
            for comment in response.comments {
                println!("Comment: {:?}", comment);
            }
        }
        Err(e) => eprintln!("Error fetching comments: {:?}", e),
    }
}

Использование аутентифицированного API

use fastcomments_sdk::client::apis::configuration::{ApiKey, Configuration};
use fastcomments_sdk::client::apis::default_api;

#[tokio::main]
async fn main() {
    // Создать конфигурацию с API-ключом
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // Получить комментарии с использованием аутентифицированного API
    let result = default_api::get_comments(
        &config,
        default_api::GetCommentsParams {
            tenant_id: "your-tenant-id".to_string(),
            skip: None,
            limit: None,
            sort_dir: None,
            urlid: Some("page-url-id".to_string()),
            url: None,
            is_spam: None,
            user_id: None,
            all_comments: None,
            for_moderation: None,
            parent_id: None,
            is_flagged: None,
            is_flagged_tag: None,
            is_by_verified: None,
            is_pinned: None,
            asc: None,
            include_imported: None,
            origin: None,
            tags: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Total comments: {}", response.count);
            for comment in response.comments {
                println!("Comment ID: {}, Text: {}", comment.id, comment.comment);
            }
        }
        Err(e) => eprintln!("Error: {:?}", e),
    }
}

Использование SSO для аутентификации

use fastcomments_sdk::sso::{
    fastcomments_sso::FastCommentsSSO,
    secure_sso_user_data::SecureSSOUserData,
};

fn main() {
    let api_key = "your-api-key".to_string();

    // Создать защищённые данные пользователя SSO (только на сервере!)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // Идентификатор пользователя
        "user@example.com".to_string(),   // Электронная почта
        "John Doe".to_string(),            // Имя пользователя
        "https://example.com/avatar.jpg".to_string(), // URL аватара
    );

    // Сгенерировать SSO-токен
    let sso = FastCommentsSSO::new_secure(api_key, &user_data).unwrap();
    let token = sso.create_token().unwrap();

    println!("SSO Token: {}", token);
    // Передайте этот токен на фронтенд для аутентификации
}

Типичные проблемы Internal Link

Ошибки 401 (Unauthorized)

Если вы получаете ошибки 401 при использовании аутентифицированного API:

  1. Проверьте ваш API key: Убедитесь, что вы используете корректный API key из панели управления FastComments
  2. Проверьте tenant ID: Убедитесь, что tenant ID соответствует вашей учётной записи
  3. Формат API key: API key должен передаваться в Configuration:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

Проблемы с SSO-токенами

Если SSO-токены не работают:

  1. Используйте защищённый режим в продакшене: Всегда используйте FastCommentsSSO::new_secure() с вашим API key для продакшена
  2. Только на стороне сервера: Генерируйте SSO токены на вашем сервере, никогда не раскрывайте ваш API key клиентам
  3. Проверьте данные пользователя: Убедитесь, что все обязательные поля (id, email, username) указаны

Ошибки асинхронного рантайма

SDK использует tokio для асинхронных операций. Убедитесь, что:

  1. Добавьте tokio в ваши зависимости:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
  2. Используйте рантайм tokio:

    #[tokio::main]
    async fn main() {
     // Ваш асинхронный код здесь
    }

Примечания Internal Link

Идентификаторы Broadcast

Вы увидите, что в некоторых API-вызовах нужно передавать broadcastId. Когда вы получаете события, этот идентификатор вернётся, поэтому вы будете знать, что можно игнорировать событие, если планируете оптимистично применять изменения на клиенте (что, вероятно, вы захотите сделать, так как это обеспечивает лучший пользовательский опыт). Передавайте здесь UUID. Идентификатор должен быть достаточно уникальным, чтобы не появиться дважды в сессии браузера.

Агрегировать Internal Link


Агрегирует документы, группируя их (если указан groupBy) и применяя несколько операций. Поддерживаются различные операции (например sum, countDistinct, avg и т.д.).

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
aggregation_request models::AggregationRequest Да
parent_tenant_id String Нет
include_stats bool Нет

Ответ

Возвращает: AggregationResponse


Получить журналы аудита Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Yes
limit f64 No
skip f64 No
order models::SortDir No
after f64 No
before f64 No

Ответ

Возвращает: GetAuditLogs200Response

Пример

Пример get_audit_logs
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetAuditLogsParams = GetAuditLogsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 limit: Some(100.0),
6 skip: Some(0.0),
7 order: Some(models::SortDir::Desc),
8 after: Some(1672531200.0),
9 before: Some(1675209600.0),
10 };
11 let response: GetAuditLogs200Response = get_audit_logs(&configuration, params).await?;
12 Ok(())
13}
14

Заблокировать по комментарию Internal Link

Параметры

Name Type Required Description
tenant_id String Да
comment_id String Да
public_block_from_comment_params models::PublicBlockFromCommentParams Да
sso String Нет

Ответ

Возвращает: BlockFromCommentPublic200Response

Пример

Пример block_from_comment_public
Copy Copy
1
2pub async fn run_block_example() -> Result<(), Error> {
3 let params: BlockFromCommentPublicParams = BlockFromCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25-12345".to_string(),
6 public_block_from_comment_params: models::PublicBlockFromCommentParams {
7 reason: "Repeated promotional links".to_string(),
8 reporter_id: Some("reader-2048".to_string()),
9 permanent: Some(false),
10 },
11 sso: Some("sso:user:acme:2048".to_string()),
12 };
13 let response: BlockFromCommentPublic200Response = block_from_comment_public(&configuration, params).await?;
14 println!("{:#?}", response);
15 Ok(())
16}
17

Разблокировать комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
public_block_from_comment_params models::PublicBlockFromCommentParams Да
sso String Нет

Ответ

Возвращает: UnBlockCommentPublic200Response

Пример

Пример un_block_comment_public
Copy Copy
1
2async fn run() -> Result<UnBlockCommentPublic200Response, Error> {
3 let params: UnBlockCommentPublicParams = UnBlockCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25/comment-98765".to_string(),
6 public_block_from_comment_params: models::PublicBlockFromCommentParams {
7 unblocked_by: "moderator@acme.com".to_string(),
8 reason: "Reviewed and determined not to be spam".to_string(),
9 },
10 sso: Some("sso-session-token-abc123".to_string()),
11 };
12 let response: UnBlockCommentPublic200Response = un_block_comment_public(&configuration, params).await?;
13 Ok(response)
14}
15

Проверить заблокированные комментарии Internal Link

Параметры

Name Type Required Description
tenant_id String Yes
comment_ids String Yes
sso String No

Ответ

Возвращает: CheckedCommentsForBlocked200Response

Пример

Пример checked_comments_for_blocked
Copy Copy
1
2async fn run_checked_comments() -> Result<CheckedCommentsForBlocked200Response, Error> {
3 let params: CheckedCommentsForBlockedParams = CheckedCommentsForBlockedParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_ids: "article-98765:12345,article-98765:67890".to_string(),
6 sso: Some("sso-uid-4821".to_string()),
7 };
8 let response: CheckedCommentsForBlocked200Response = checked_comments_for_blocked(&configuration, params).await?;
9 Ok(response)
10}
11

Заблокировать пользователя в комментарии Internal Link

Параметры

Name Type Required Description
tenant_id String Yes
id String Yes
block_from_comment_params models::BlockFromCommentParams Yes
user_id String No
anon_user_id String No

Ответ

Возвращает: BlockFromCommentPublic200Response

Пример

Пример block_user_from_comment
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: BlockUserFromCommentParams = BlockUserFromCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-2026-03-25/comment-842".to_string(),
6 block_from_comment_params: models::BlockFromCommentParams {
7 reason: Some("Repeated promotional links".to_string()),
8 duration_minutes: Some(7_200),
9 notify_user: Some(true),
10 },
11 user_id: Some("user-9812".to_string()),
12 anon_user_id: None,
13 };
14 let response: BlockFromCommentPublic200Response = block_user_from_comment(&configuration, params).await?;
15 Ok(())
16}
17

Создать публичный комментарий Internal Link

Параметры

Name Type Required Description
tenant_id String Да
url_id String Да
broadcast_id String Да
comment_data models::CommentData Да
session_id String Нет
sso String Нет

Ответ

Возвращает: CreateCommentPublic200Response

Пример

create_comment_public Пример
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateCommentPublicParams = CreateCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/politics/2026-election-coverage".to_string(),
6 broadcast_id: "live-coverage-2026-03-25".to_string(),
7 comment_data: models::CommentData {
8 content: "Insightful piece — appreciate the depth of reporting.".to_string(),
9 author_name: Some("Jane Doe".to_string()),
10 author_email: Some("jane.doe@acme.com".to_string()),
11 is_anonymous: Some(false),
12 parent_id: None,
13 metadata: None,
14 },
15 session_id: Some("sess_6f7e8d9c".to_string()),
16 sso: Some("sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9".to_string()),
17 };
18 let resp: CreateCommentPublic200Response = create_comment_public(&configuration, params).await?;
19 Ok(())
20}
21

Удалить комментарий Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
context_user_id String Нет
is_live bool Нет

Ответ

Возвращает: DeleteComment200Response

Пример

Пример delete_comment
Copy Copy
1
2async fn run_delete_comment() -> Result<DeleteComment200Response, Error> {
3 let params: DeleteCommentParams = DeleteCommentParams {
4 tenant_id: "acme-newsroom".to_string(),
5 id: "news/article-2026/comments/abc123".to_string(),
6 context_user_id: Some("user-789".to_string()),
7 is_live: Some(true),
8 };
9 let response: DeleteComment200Response = delete_comment(&configuration, params).await?;
10 Ok(response)
11}
12

Удалить публичный комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
broadcast_id String Да
edit_key String Нет
sso String Нет

Ответ

Возвращает: DeleteCommentPublic200Response

Пример

Пример delete_comment_public
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteCommentPublicParams = DeleteCommentPublicParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: String::from("news/article/2026/03/interesting-story#cmt-67890"),
6 broadcast_id: String::from("news-article-12345"),
7 edit_key: Some(String::from("editkey-3f2b9a")),
8 sso: Some(String::from("sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")),
9 };
10 let response: DeleteCommentPublic200Response = delete_comment_public(&configuration, params).await?;
11 Ok(())
12}
13

Удалить голос за комментарий Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
comment_id String Да
vote_id String Да
url_id String Да
broadcast_id String Да
edit_key String Нет
sso String Нет

Ответ

Возвращает: DeleteCommentVote200Response

Пример

Пример delete_comment_vote
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteCommentVoteParams = DeleteCommentVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-12345".to_string(),
6 vote_id: "vote-67890".to_string(),
7 url_id: "news/world/article-2026".to_string(),
8 broadcast_id: "broadcast-1".to_string(),
9 edit_key: Some("editkey-abc123".to_string()),
10 sso: Some("sso-token-xyz".to_string()),
11 };
12 let response: DeleteCommentVote200Response = delete_comment_vote(&configuration, params).await?;
13 Ok(())
14}
15

Пожаловаться на комментарий Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да
user_id String Нет
anon_user_id String Нет

Ответ

Возвращает: FlagComment200Response

Пример

Пример flag_comment
Copy Copy
1
2async fn run() -> Result<FlagComment200Response, Error> {
3 let params: FlagCommentParams = FlagCommentParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 id: "comment-20260325-842".to_string(),
6 user_id: Some("user-7b2f3d".to_string()),
7 anon_user_id: Some("anon-1a2b3c".to_string()),
8 };
9 let resp: FlagComment200Response = flag_comment(&configuration, params).await?;
10 Ok(resp)
11}
12

Получить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetComment200Response

Пример

Пример get_comment
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetCommentParams = GetCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345/comment-6789".to_string(),
6 };
7 let _response: GetComment200Response = get_comment(&configuration, params).await?;
8 Ok(())
9}
10

Получить текст комментария Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
edit_key String Нет
sso String Нет

Ответ

Возвращает: GetCommentText200Response

Пример

Пример get_comment_text
Copy Copy
1
2pub async fn run() -> Result<GetCommentText200Response, Error> {
3 let params: GetCommentTextParams = GetCommentTextParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article-2026-03-25-98765".to_string(),
6 edit_key: Some("edit_4f3d2b9a".to_string()),
7 sso: Some("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9".to_string()),
8 };
9 let comment: GetCommentText200Response = get_comment_text(&configuration, params).await?;
10 Ok(comment)
11}
12

Получить имена пользователей, голосовавших за комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
dir i32 Да
sso String Нет

Ответ

Возвращает: GetCommentVoteUserNames200Response

Пример

get_comment_vote_user_names Пример
Copy Copy
1
2async fn fetch_vote_user_names() -> Result<GetCommentVoteUserNames200Response, Error> {
3 let params: GetCommentVoteUserNamesParams = GetCommentVoteUserNamesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: String::from("news/article-12345/comment-6789"),
6 dir: 1,
7 sso: Some(String::from("sso-token-01a2b3")),
8 };
9 let response: GetCommentVoteUserNames200Response =
10 get_comment_vote_user_names(&configuration, params).await?;
11 Ok(response)
12}
13

Получить комментарии Internal Link

Параметры

Name Type Required Description
tenant_id String Да
page i32 Нет
limit i32 Нет
skip i32 Нет
as_tree bool Нет
skip_children i32 Нет
limit_children i32 Нет
max_tree_depth i32 Нет
url_id String Нет
user_id String Нет
anon_user_id String Нет
context_user_id String Нет
hash_tag String Нет
parent_id String Нет
direction models::SortDirections Нет

Ответ

Возвращает: GetComments200Response

Пример

Пример get_comments
Copy Copy
1
2async fn run_get_comments() -> Result<(), Error> {
3 let params: GetCommentsParams = GetCommentsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 page: Some(1),
6 limit: Some(25),
7 skip: Some(0),
8 as_tree: Some(true),
9 skip_children: Some(0),
10 limit_children: Some(5),
11 max_tree_depth: Some(3),
12 url_id: Some("news/article/technology/ai-ethics".to_string()),
13 user_id: Some("user_98765".to_string()),
14 anon_user_id: Some("anon_abc123".to_string()),
15 context_user_id: Some("moderator_12".to_string()),
16 hash_tag: Some("aiethics".to_string()),
17 parent_id: Some("comment_456".to_string()),
18 direction: None,
19 };
20 let comments: GetComments200Response = get_comments(&configuration, params).await?;
21 Ok(())
22}
23

Получить публичные комментарии Internal Link

req tenantId urlId

Параметры

Name Type Required Description
tenant_id String Да
url_id String Да
page i32 Нет
direction models::SortDirections Нет
sso String Нет
skip i32 Нет
skip_children i32 Нет
limit i32 Нет
limit_children i32 Нет
count_children bool Нет
fetch_page_for_comment_id String Нет
include_config bool Нет
count_all bool Нет
includei10n bool Нет
locale String Нет
modules String Нет
is_crawler bool Нет
include_notification_count bool Нет
as_tree bool Нет
max_tree_depth i32 Нет
use_full_translation_ids bool Нет
parent_id String Нет
search_text String Нет
hash_tags Vec Нет
user_id String Нет
custom_config_str String Нет
after_comment_id String Нет
before_comment_id String Нет

Ответ

Возвращает: GetCommentsPublic200Response

Пример

Пример get_comments_public
Copy Copy
1
2async fn run() -> Result<GetCommentsPublic200Response, Error> {
3 let params: GetCommentsPublicParams = GetCommentsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article/2026/03/25/top-story".to_string(),
6 page: Some(1), direction: Some(models::SortDirections::Desc),
7 sso: None, skip: Some(0), skip_children: Some(0),
8 limit: Some(50), limit_children: Some(10), count_children: Some(true),
9 fetch_page_for_comment_id: None, include_config: Some(true), count_all: Some(false),
10 includei10n: Some(false), locale: Some("en-US".to_string()), modules: None,
11 is_crawler: Some(false), include_notification_count: Some(false), as_tree: Some(true),
12 max_tree_depth: Some(3), use_full_translation_ids: Some(false), parent_id: None,
13 search_text: Some("climate policy debate".to_string()), hash_tags: Some(vec!["breaking".to_string(), "policy".to_string()]),
14 user_id: None, custom_config_str: None, after_comment_id: None, before_comment_id: None,
15 };
16 let response: GetCommentsPublic200Response = get_comments_public(configuration, params).await?;
17 Ok(response)
18}
19

Заблокировать комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
broadcast_id String Да
sso String Нет

Ответ

Возвращает: LockComment200Response

Пример

Пример lock_comment
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: LockCommentParams = LockCommentParams {
4 tenant_id: String::from("acme-news-tenant"),
5 comment_id: String::from("cmt-20260325-789"),
6 broadcast_id: String::from("live/politics-debate-2026-03-25"),
7 sso: Some(String::from("sso-user-0a1b2c3d4e")),
8 };
9 let response: LockComment200Response = lock_comment(&configuration, params).await?;
10 Ok(())
11}
12

Прикрепить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
broadcast_id String Да
sso String Нет

Ответ

Возвращает: PinComment200Response

Пример

Пример pin_comment
Copy Copy
1
2let params: PinCommentParams = PinCommentParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 comment_id: "cmt-987654321".to_string(),
5 broadcast_id: "news/article/2026-03-25".to_string(),
6 sso: Some("user-12345-ssotoken".to_string()),
7};
8let response: PinComment200Response = pin_comment(&configuration, params).await?;
9

Сохранить комментарий Internal Link


Параметры

Name Type Required Description
tenant_id String Да
create_comment_params models::CreateCommentParams Да
is_live bool Нет
do_spam_check bool Нет
send_emails bool Нет
populate_notifications bool Нет

Ответ

Возвращает: SaveComment200Response

Пример

Пример save_comment
Copy Copy
1
2let create_comment: models::CreateCommentParams = models::CreateCommentParams {
3 thread_key: "news/article/2026/03/25/budget-reform".to_string(),
4 body: "Great breakdown of the proposed changes — very informative and balanced.".to_string(),
5 user_name: Some("Jane Doe".to_string()),
6 user_email: Some("jane.doe@acme-corp.com".to_string()),
7 user_id: Some("user-9876".to_string()),
8 parent_id: None,
9};
10
11let save_params: SaveCommentParams = SaveCommentParams {
12 tenant_id: "acme-corp-tenant".to_string(),
13 create_comment_params: create_comment,
14 is_live: Some(true),
15 do_spam_check: Some(true),
16 send_emails: Some(false),
17 populate_notifications: Some(true),
18};
19
20let saved: SaveComment200Response = save_comment(&configuration, save_params).await?;
21

Массовое сохранение комментариев Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_comment_params Vecmodels::CreateCommentParams Да
is_live bool Нет
do_spam_check bool Нет
send_emails bool Нет
populate_notifications bool Нет

Ответ

Возвращает: Vec<models::SaveComment200Response>

Пример

Пример save_comments_bulk
Copy Copy
1
2let params: SaveCommentsBulkParams = SaveCommentsBulkParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_comment_params: vec![
5 models::CreateCommentParams {
6 thread_id: "news/article-2026-election".to_string(),
7 text: "Insightful reporting — thanks for the coverage!".to_string(),
8 author_name: "Jane Doe".to_string(),
9 author_email: "jane.doe@example.com".to_string(),
10 },
11 models::CreateCommentParams {
12 thread_id: "news/article-2026-election".to_string(),
13 text: "I disagree with the premise of this piece.".to_string(),
14 author_name: "John Smith".to_string(),
15 author_email: "john.smith@example.org".to_string(),
16 },
17 ],
18 is_live: Some(true),
19 do_spam_check: Some(true),
20 send_emails: Some(false),
21 populate_notifications: Some(true),
22};
23let saved: Vec<models::SaveComment200Response> = save_comments_bulk(&configuration, params).await?;
24

Установить текст комментария Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
comment_id String Да
broadcast_id String Да
comment_text_update_request models::CommentTextUpdateRequest Да
edit_key String Нет
sso String Нет

Ответ

Возвращает: SetCommentText200Response

Пример

Пример set_comment_text
Copy Copy
1
2async fn update_comment_text() -> Result<(), Error> {
3 let params: SetCommentTextParams = SetCommentTextParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25/comment-6789".to_string(),
6 broadcast_id: "comments-broadcast-main".to_string(),
7 comment_text_update_request: models::CommentTextUpdateRequest {
8 text: "Updated comment: thank you @jane_doe — here's an update about #rustlang".to_string(),
9 ..Default::default()
10 },
11 edit_key: Some("editkey-9f8e7d6c".to_string()),
12 sso: Some("sso-token-abc123".to_string()),
13 };
14 let result: SetCommentText200Response = set_comment_text(configuration, params).await?;
15 println!("set_comment_text result: {:?}", result);
16 Ok(())
17}
18

Разблокировать пользователя в комментарии Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
un_block_from_comment_params models::UnBlockFromCommentParams Да
user_id String Нет
anon_user_id String Нет

Ответ

Возвращает: UnBlockCommentPublic200Response

Пример

un_block_user_from_comment Пример
Copy Copy
1
2async fn run_unblock() -> Result<UnBlockCommentPublic200Response, Error> {
3 let unblock_body: models::UnBlockFromCommentParams = models::UnBlockFromCommentParams {
4 reason: Some(String::from("False positive - reviewed by moderator")),
5 moderator_id: Some(String::from("moderator-42")),
6 };
7 let params: UnBlockUserFromCommentParams = UnBlockUserFromCommentParams {
8 tenant_id: String::from("acme-corp-tenant"),
9 id: String::from("news/article/comments/abc123"),
10 un_block_from_comment_params: unblock_body,
11 user_id: Some(String::from("user-9876")),
12 anon_user_id: Some(String::from("anon-5f4d")),
13 };
14 let result: UnBlockCommentPublic200Response = un_block_user_from_comment(&configuration, params).await?;
15 Ok(result)
16}
17

Снять жалобу с комментария Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
user_id String Нет
anon_user_id String Нет

Ответ

Возвращает: FlagComment200Response

Пример

un_flag_comment Пример
Copy Copy
1
2async fn example_unflag_comment() -> Result<FlagComment200Response, Error> {
3 let params = UnFlagCommentParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article/comment-12345"),
6 user_id: Some(String::from("reader-987")),
7 anon_user_id: None,
8 };
9 let response: FlagComment200Response = un_flag_comment(&configuration, params).await?;
10 Ok(response)
11}
12

Разблокировать комментарий Internal Link

Параметры

Name Type Required Description
tenant_id String Да
comment_id String Да
broadcast_id String Да
sso String Нет

Ответ

Возвращает: LockComment200Response

Пример

un_lock_comment Пример
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UnLockCommentParams = UnLockCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-987654321".to_string(),
6 broadcast_id: "news/world-update-2026-04-25".to_string(),
7 sso: Some("sso-token-abcdef123456".to_string()),
8 };
9 let response: LockComment200Response = un_lock_comment(&configuration, params).await?;
10 let _ = response;
11 Ok(())
12}
13

Открепить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
broadcast_id String Да
sso String Нет

Ответ

Возвращает: PinComment200Response

Пример

Пример un_pin_comment
Copy Copy
1
2async fn run_unpin() -> Result<(), Error> {
3 let params: UnPinCommentParams = UnPinCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-20260325-7a9".to_string(),
6 broadcast_id: "news/homepage/launch-article".to_string(),
7 sso: Some("sso-jwt-user-0a1b2c3d".to_string()),
8 };
9 let response: PinComment200Response = un_pin_comment(&configuration, params).await?;
10 Ok(())
11}
12

Обновить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
updatable_comment_params models::UpdatableCommentParams Да
context_user_id String Нет
do_spam_check bool Нет
is_live bool Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_comment
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let tenant_id: String = "acme-corp-tenant".into();
4 let comment_id: String = "news/article/12345-6789".into();
5 let context_user_id: String = "reader-42".into();
6
7 let updatable: models::UpdatableCommentParams = models::UpdatableCommentParams {
8 body: Some("Updated comment: I appreciate the clarification on this report.".into()),
9 is_edited: Some(true),
10 tags: Some(vec!["clarification".into(), "follow-up".into()]),
11 };
12
13 let params: UpdateCommentParams = UpdateCommentParams {
14 tenant_id,
15 id: comment_id,
16 updatable_comment_params: updatable,
17 context_user_id: Some(context_user_id),
18 do_spam_check: Some(true),
19 is_live: Some(false),
20 };
21
22 let response: FlagCommentPublic200Response = update_comment(&configuration, params).await?;
23 Ok(())
24}
25

Проголосовать за комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
url_id String Да
broadcast_id String Да
vote_body_params models::VoteBodyParams Да
session_id String Нет
sso String Нет

Ответ

Возвращает: VoteComment200Response

Пример

Пример vote_comment
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: VoteCommentParams = VoteCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-12345".to_string(),
6 url_id: "news/politics/2026-election".to_string(),
7 broadcast_id: "broadcast-nytimes-001".to_string(),
8 vote_body_params: models::VoteBodyParams { ..Default::default() },
9 session_id: Some("sess-9f8e7d".to_string()),
10 sso: Some("user-42@example.com".to_string()),
11 };
12 let response: VoteComment200Response = vote_comment(&configuration, params).await?;
13 Ok(())
14}
15

Добавить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
add_domain_config_params models::AddDomainConfigParams Да

Ответ

Возвращает: AddDomainConfig200Response


Удалить конфигурацию домена Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
domain String Да

Ответ

Возвращает: DeleteDomainConfig200Response


Получить конфигурацию домена Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
domain String Да

Ответ

Возвращает: GetDomainConfig200Response


Получить конфигурации доменов Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да

Ответ

Возвращает: GetDomainConfigs200Response


Частично обновить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
domain_to_update String Да
patch_domain_config_params models::PatchDomainConfigParams Да

Ответ

Возвращает: GetDomainConfig200Response


Заменить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
domain_to_update String Да
update_domain_config_params models::UpdateDomainConfigParams Да

Ответ

Возвращает: GetDomainConfig200Response

Создать шаблон письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_email_template_body models::CreateEmailTemplateBody Да

Ответ

Возвращает: CreateEmailTemplate200Response

Пример

Пример create_email_template
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateEmailTemplateParams = CreateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".into(),
5 create_email_template_body: models::CreateEmailTemplateBody {
6 name: "Article Comment Notification".into(),
7 subject: "New comment on your article".into(),
8 body_html: "<p>Hi {{recipient_name}},</p><p>{{comment_author}} left a comment on your article \"{{article_title}}\".</p>".into(),
9 from_name: Some("Acme News".into()),
10 from_email: Some("notifications@acme.example".into()),
11 reply_to: Some("no-reply@acme.example".into()),
12 enabled: Some(true),
13 tags: Some(vec!["comments".into(), "notifications".into()]),
14 },
15 };
16 let response: CreateEmailTemplate200Response = create_email_template(configuration, params).await?;
17 Ok(())
18}
19

Удалить шаблон письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

delete_email_template Пример
Copy Copy
1
2async fn run_delete_template() -> Result<(), Error> {
3 let params: DeleteEmailTemplateParams = DeleteEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 };
7 let confirm_deletion: Option<bool> = Some(true);
8 let response: FlagCommentPublic200Response = delete_email_template(&configuration, params).await?;
9 Ok(())
10}
11

Удалить ошибку рендеринга шаблона письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Yes
id String Yes
error_id String Yes

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_email_template_render_error
Copy Copy
1
2let error_id_opt: Option<String> = Some("render-failure-9f3b".to_string());
3let params: DeleteEmailTemplateRenderErrorParams = DeleteEmailTemplateRenderErrorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email".to_string(),
6 error_id: error_id_opt.unwrap(),
7};
8let response: FlagCommentPublic200Response = delete_email_template_render_error(&configuration, params).await?;
9

Получить шаблон письма Internal Link

Параметры

Имя Type Обязательный Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetEmailTemplate200Response

Пример

Пример get_email_template
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let tenant_id: String = "acme-corp-tenant".to_string();
4 let template_id: String = "welcome-new-subscriber".to_string();
5 let params: GetEmailTemplateParams = GetEmailTemplateParams {
6 tenant_id,
7 id: template_id,
8 locale: Some("en-US".to_string()),
9 };
10 let template: GetEmailTemplate200Response = get_email_template(&configuration, params).await?;
11 let _ = template;
12 Ok(())
13}
14

Получить определения шаблонов писем Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да

Ответ

Возвращает: GetEmailTemplateDefinitions200Response

Пример

Пример get_email_template_definitions
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetEmailTemplateDefinitionsParams = GetEmailTemplateDefinitionsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 locale: Some("en-US".to_string()),
6 include_inactive: Some(false),
7 };
8 let templates: GetEmailTemplateDefinitions200Response =
9 get_email_template_definitions(&configuration, params).await?;
10 Ok(())
11}
12

Получить ошибки рендеринга шаблонов писем Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
skip f64 Нет

Ответ

Возвращает: GetEmailTemplateRenderErrors200Response

Пример

Пример get_email_template_render_errors
Copy Copy
1
2async fn run_example() -> Result<(), Error> {
3 let params: GetEmailTemplateRenderErrorsParams = GetEmailTemplateRenderErrorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 skip: Some(10.0),
7 };
8 let response: GetEmailTemplateRenderErrors200Response =
9 get_email_template_render_errors(&configuration, params).await?;
10 Ok(())
11}
12

Получить шаблоны писем Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
skip f64 Нет

Ответ

Возвращает: GetEmailTemplates200Response

Пример

Пример get_email_templates
Copy Copy
1
2async fn fetch_email_templates() -> Result<GetEmailTemplates200Response, Error> {
3 let params: GetEmailTemplatesParams = GetEmailTemplatesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let templates: GetEmailTemplates200Response = get_email_templates(&configuration, params).await?;
8 Ok(templates)
9}
10

Отрендерить шаблон письма Internal Link

Параметры

Name Type Required Description
tenant_id String Да
render_email_template_body models::RenderEmailTemplateBody Да
locale String Нет

Ответ

Возвращает: RenderEmailTemplate200Response

Пример

Пример render_email_template
Copy Copy
1
2async fn example(configuration: &configuration::Configuration) -> Result<RenderEmailTemplate200Response, Error> {
3 let body = models::RenderEmailTemplateBody {
4 template_key: "welcome_email".to_string(),
5 subject: "Welcome to Acme News".to_string(),
6 from_address: "noreply@acme.com".to_string(),
7 placeholders: std::collections::HashMap::from([
8 ("user_name".to_string(), "Jane Doe".to_string()),
9 ("article_title".to_string(), "Breaking News: Rust Adoption Soars".to_string()),
10 ]),
11 };
12 let params = RenderEmailTemplateParams {
13 tenant_id: "acme-corp-tenant".to_string(),
14 render_email_template_body: body,
15 locale: Some("en-US".to_string()),
16 };
17 let rendered: RenderEmailTemplate200Response = render_email_template(configuration, params).await?;
18 Ok(rendered)
19}
20

Обновить шаблон письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_email_template_body models::UpdateEmailTemplateBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_email_template
Copy Copy
1
2async fn example_update_email_template() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateEmailTemplateParams = UpdateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 update_email_template_body: models::UpdateEmailTemplateBody {
7 subject: "Welcome to Acme News".to_string(),
8 html_body: "<h1>Welcome, {{user_name}}</h1><p>Thanks for joining Acme.</p>".to_string(),
9 plain_body: Some("Welcome, {{user_name}}!\nThanks for joining Acme.".to_string()),
10 enabled: Some(true),
11 from_name: Some("Acme Support <support@acme.com>".to_string()),
12 },
13 };
14 let response: FlagCommentPublic200Response = update_email_template(&configuration, params).await?;
15 Ok(response)
16}
17

Получить журнал событий Internal Link

req tenantId urlId userIdWS

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да
user_id_ws String Да
start_time i64 Да
end_time i64 Да

Ответ

Возвращает: GetEventLog200Response

Пример

Пример get_event_log
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetEventLogParams = GetEventLogParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article-2023-01-01".to_string(),
6 user_id_ws: "user-12345-ws".to_string(),
7 start_time: 1672531200i64,
8 end_time: 1672617599i64,
9 include_details: Some(true),
10 };
11 let response: GetEventLog200Response = get_event_log(&configuration, params).await?;
12 Ok(())
13}
14

Получить глобальный журнал событий Internal Link

req tenantId urlId userIdWS

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
url_id String Да
user_id_ws String Да
start_time i64 Да
end_time i64 Да

Ответ

Возвращает: GetEventLog200Response

Пример

Пример get_global_event_log
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let include_deleted: Option<bool> = Some(false);
4 let params: GetGlobalEventLogParams = GetGlobalEventLogParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 url_id: "news/article-123".to_string(),
7 user_id_ws: "user-789-ws".to_string(),
8 start_time: 1711411200i64,
9 end_time: 1711497599i64,
10 };
11 let response: GetEventLog200Response = get_global_event_log(&configuration, params).await?;
12 let _include_deleted = include_deleted;
13 Ok(())
14}
15

Создать публикацию ленты Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_feed_post_params models::CreateFeedPostParams Да
broadcast_id String Нет
is_live bool Нет
do_spam_check bool Нет
skip_dup_check bool Нет

Ответ

Возвращает: CreateFeedPost200Response

Пример

create_feed_post Пример
Copy Copy
1
2async fn create_post_example() -> Result<CreateFeedPost200Response, Error> {
3 let params = CreateFeedPostParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_feed_post_params: models::CreateFeedPostParams {
6 title: Some("Downtown Datacenter Outage".to_string()),
7 body: Some("Investigating a partial outage affecting login and API endpoints.".to_string()),
8 author_id: Some("ops-team".to_string()),
9 ..Default::default()
10 },
11 broadcast_id: Some("status-broadcast-2026-03-25".to_string()),
12 is_live: Some(true),
13 do_spam_check: Some(true),
14 skip_dup_check: Some(false),
15 };
16 let response: CreateFeedPost200Response = create_feed_post(&configuration, params).await?;
17 Ok(response)
18}
19

Создать публичную публикацию ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_feed_post_params models::CreateFeedPostParams Да
broadcast_id String Нет
sso String Нет

Ответ

Возвращает: CreateFeedPostPublic200Response

Пример

create_feed_post_public Пример
Copy Copy
1
2let create_feed_post_params: models::CreateFeedPostParams = models::CreateFeedPostParams {
3 title: "Acme Product Launch".to_string(),
4 body: "We're excited to announce our new product line that will change the way teams collaborate.".to_string(),
5 slug: "news/product-launch".to_string(),
6 links: Some(vec![models::FeedPostLink { url: "https://acme.com/launch".to_string(), title: Some("Launch details".to_string()) }]),
7 media: Some(vec![models::FeedPostMediaItem { assets: Some(vec![models::FeedPostMediaItemAsset { url: "https://cdn.acme.com/images/launch.jpg".to_string(), mime_type: Some("image/jpeg".to_string()) }]), caption: Some("Hero image".to_string()) }]),
8 tags: Some(vec!["announcement".to_string(), "product".to_string()]),
9};
10
11let params: CreateFeedPostPublicParams = CreateFeedPostPublicParams {
12 tenant_id: "acme-corp-tenant".to_string(),
13 create_feed_post_params,
14 broadcast_id: Some("broadcast-2026-03-25".to_string()),
15 sso: Some("sso-token-xyz789".to_string()),
16};
17
18let response: CreateFeedPostPublic200Response = create_feed_post_public(&configuration, params).await?;
19

Удалить публичную публикацию ленты Internal Link


Параметры

Name Type Required Description
tenant_id String Да
post_id String Да
broadcast_id String Нет
sso String Нет

Ответ

Возвращает: DeleteFeedPostPublic200Response

Пример

Пример delete_feed_post_public
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteFeedPostPublicParams = DeleteFeedPostPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_id: "news/article-2026-03-25-12345".to_string(),
6 broadcast_id: Some("broadcast-9876".to_string()),
7 sso: Some("user-42-sso-token".to_string()),
8 };
9 let response: DeleteFeedPostPublic200Response = delete_feed_post_public(&configuration, params).await?;
10 Ok(())
11}
12

Получить публикации ленты Internal Link

req tenantId afterId

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
after_id String Нет
limit i32 Нет
tags Vec Нет

Ответ

Возвращает: GetFeedPosts200Response

Пример

Пример get_feed_posts
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetFeedPostsParams = GetFeedPostsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("post_98765".to_string()),
6 limit: Some(20),
7 tags: Some(vec!["news".to_string(), "technology".to_string()]),
8 };
9 let feed: GetFeedPosts200Response = get_feed_posts(&configuration, params).await?;
10 Ok(())
11}
12

Получить публичные публикации ленты Internal Link

req tenantId afterId

Параметры

Name Type Required Description
tenant_id String Да
after_id String Нет
limit i32 Нет
tags Vec Нет
sso String Нет
is_crawler bool Нет
include_user_info bool Нет

Ответ

Возвращает: GetFeedPostsPublic200Response

Пример

Пример get_feed_posts_public
Copy Copy
1
2async fn example() -> Result<GetFeedPostsPublic200Response, Error> {
3 let params: GetFeedPostsPublicParams = GetFeedPostsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("post_987654".to_string()),
6 limit: Some(25),
7 tags: Some(vec!["news".to_string(), "technology".to_string()]),
8 sso: Some("sso-token-abc123".to_string()),
9 is_crawler: Some(false),
10 include_user_info: Some(true),
11 };
12 let response: GetFeedPostsPublic200Response = get_feed_posts_public(&configuration, params).await?;
13 Ok(response)
14}
15

Получить статистику публикаций ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
post_ids Vec Да
sso String Нет

Ответ

Возвращает: GetFeedPostsStats200Response

Пример

Пример get_feed_posts_stats
Copy Copy
1
2async fn fetch_feed_stats() -> Result<(), Error> {
3 let params: GetFeedPostsStatsParams = GetFeedPostsStatsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_ids: vec![
6 "news/article/2026/03/25/product-launch".to_string(),
7 "blog/product-updates/q1-2026".to_string(),
8 ],
9 sso: Some("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.examplepayload.signature".to_string()),
10 };
11 let stats: GetFeedPostsStats200Response = get_feed_posts_stats(&configuration, params).await?;
12 Ok(())
13}
14

Получить публичные реакции пользователя Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
post_ids Vec Нет
sso String Нет

Ответ

Возвращает: GetUserReactsPublic200Response

Пример

get_user_reacts_public Пример
Copy Copy
1
2async fn run() -> Result<GetUserReactsPublic200Response, Error> {
3 let params: GetUserReactsPublicParams = GetUserReactsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_ids: Some(vec![
6 "news/article-123".to_string(),
7 "blog/post-456".to_string(),
8 ]),
9 sso: Some("john.doe@acme.com".to_string()),
10 };
11 let response: GetUserReactsPublic200Response = get_user_reacts_public(&configuration, params).await?;
12 Ok(response)
13}
14

Поставить реакцию на публичную публикацию ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
post_id String Да
react_body_params models::ReactBodyParams Да
is_undo bool Нет
broadcast_id String Нет
sso String Нет

Ответ

Возвращает: ReactFeedPostPublic200Response

Пример

Пример react_feed_post_public
Copy Copy
1
2let params: ReactFeedPostPublicParams = ReactFeedPostPublicParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 post_id: "news/world/2026-election".to_string(),
5 react_body_params: models::ReactBodyParams { reaction: "like".to_string() },
6 is_undo: Some(false),
7 broadcast_id: Some("broadcast-2026-03-25".to_string()),
8 sso: Some("sso-token-6f4e2b".to_string()),
9};
10
11let response: ReactFeedPostPublic200Response = react_feed_post_public(&configuration, params).await?;
12

Обновить публикацию ленты Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
feed_post models::FeedPost Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_feed_post
Copy Copy
1
2async fn update_post_example() -> Result<(), Error> {
3 let params: UpdateFeedPostParams = UpdateFeedPostParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/rocket-launch-2026".to_string(),
6 feed_post: models::FeedPost {
7 title: Some("Rocket Launch Successful".to_string()),
8 body: Some("Acme Rockets launched the Atlas X at 10:00 UTC with no anomalies.".to_string()),
9 author: Some("Acme Newsroom".to_string()),
10 media: Some(vec![
11 models::FeedPostMediaItem {
12 url: Some("https://cdn.acme.com/images/launch.jpg".to_string()),
13 caption: Some("Moments before liftoff".to_string()),
14 asset: None
15 }
16 ]),
17 links: Some(vec![
18 models::FeedPostLink {
19 title: Some("Detailed Coverage".to_string()),
20 url: Some("https://news.acme.com/coverage/atlas-x-launch".to_string())
21 }
22 ]),
23 published: Some(true)
24 }
25 };
26 let response: FlagCommentPublic200Response = update_feed_post(&configuration, params).await?;
27 Ok(())
28}
29

Обновить публичную публикацию ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
post_id String Да
update_feed_post_params models::UpdateFeedPostParams Да
broadcast_id String Нет
sso String Нет

Ответ

Возвращает: CreateFeedPostPublic200Response

Пример

Пример update_feed_post_public
Copy Copy
1
2let params: UpdateFeedPostPublicParams = UpdateFeedPostPublicParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 post_id: "news/article-2026-03-25".to_string(),
5 update_feed_post_params: models::UpdateFeedPostParams {
6 title: "Acme Widget Launch".to_string(),
7 body: "Acme today launched the next-generation Widget with improved performance and battery life.".to_string(),
8 tags: vec!["product".to_string(), "launch".to_string()],
9 media: vec![
10 models::FeedPostMediaItem {
11 url: "https://cdn.acme.com/images/widget-launch.jpg".to_string(),
12 asset: Some(models::FeedPostMediaItemAsset {
13 mime_type: "image/jpeg".to_string(),
14 size: Some(142000),
15 }),
16 }
17 ],
18 links: vec![
19 models::FeedPostLink {
20 url: "https://acme.com/blog/widget-launch".to_string(),
21 title: Some("Read the full announcement".to_string()),
22 }
23 ],
24 },
25 broadcast_id: Some("broadcast-2026-03".to_string()),
26 sso: Some("sso-token-9f8e7d".to_string()),
27};
28
29let response: CreateFeedPostPublic200Response = update_feed_post_public(configuration, params).await?;
30

Пожаловаться на комментарий (публично) Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Да
is_flagged bool Да
sso String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример flag_comment_public
Copy Copy
1
2async fn run_flag() -> Result<FlagCommentPublic200Response, Error> {
3 let params: FlagCommentPublicParams = FlagCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article-2026-03-25-8a7b6c".to_string(),
6 is_flagged: true,
7 sso: Some("sso-token-user-123".to_string()),
8 };
9 let response: FlagCommentPublic200Response = flag_comment_public(&configuration, params).await?;
10 Ok(response)
11}
12

Добавить хештег Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Нет
create_hash_tag_body models::CreateHashTagBody Нет

Ответ

Возвращает: AddHashTag200Response

Пример

Пример add_hash_tag
Copy Copy
1
2let params: AddHashTagParams = AddHashTagParams {
3 tenant_id: Some("acme-corp-tenant".to_string()),
4 create_hash_tag_body: Some(models::CreateHashTagBody {
5 tag: "breaking-news".to_string(),
6 display_name: Some("Breaking News".to_string()),
7 description: Some("Articles covering breaking news events".to_string()),
8 enabled: Some(true),
9 }),
10};
11
12let response: AddHashTag200Response = add_hash_tag(&configuration, params).await?;
13

Массово добавить хештеги Internal Link

Параметры

Name Type Required Description
tenant_id String Нет
bulk_create_hash_tags_body models::BulkCreateHashTagsBody Нет

Ответ

Возвращает: AddHashTagsBulk200Response

Пример

Пример add_hash_tags_bulk
Copy Copy
1
2async fn add_tags_example() -> Result<(), Error> {
3 let body = BulkCreateHashTagsBody {
4 tags: vec![
5 BulkCreateHashTagsBodyTagsInner {
6 tag: "news/article".to_string(),
7 path: "site/news".to_string(),
8 description: Some("Articles and press releases".to_string()),
9 is_active: Some(true),
10 custom_config: Some(CustomConfigParameters { score: Some(0.85) }),
11 },
12 BulkCreateHashTagsBodyTagsInner {
13 tag: "product/launch".to_string(),
14 path: "site/products".to_string(),
15 description: Some("New product launches".to_string()),
16 is_active: Some(true),
17 custom_config: Some(CustomConfigParameters { score: Some(0.95) }),
18 },
19 ],
20 };
21 let params: AddHashTagsBulkParams = AddHashTagsBulkParams {
22 tenant_id: Some("acme-corp-tenant".to_string()),
23 bulk_create_hash_tags_body: Some(body),
24 };
25 let response: AddHashTagsBulk200Response = add_hash_tags_bulk(&configuration, params).await?;
26 Ok(())
27}
28

Удалить хештег Internal Link

Параметры

Имя Тип Обязательный Описание
tag String Да
tenant_id String Нет
delete_hash_tag_request models::DeleteHashTagRequest Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_hash_tag
Copy Copy
1
2async fn run_delete_tag(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params = DeleteHashTagParams {
4 tag: "news/world-climate".to_owned(),
5 tenant_id: Some("acme-corp-tenant".to_owned()),
6 delete_hash_tag_request: None,
7 };
8 let response: FlagCommentPublic200Response = delete_hash_tag(configuration, params).await?;
9 Ok(response)
10}
11

Получить хештеги Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
page f64 Нет

Ответ

Возвращает: GetHashTags200Response

Пример

Пример get_hash_tags
Copy Copy
1
2async fn fetch_hash_tags() -> Result<GetHashTags200Response, Error> {
3 let params: GetHashTagsParams = GetHashTagsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 page: Some(1.0),
6 };
7 let response: GetHashTags200Response = get_hash_tags(&configuration, params).await?;
8 Ok(response)
9}
10

Частично обновить хештег Internal Link

Параметры

Name Type Required Description
tag String Да
tenant_id String Нет
update_hash_tag_body models::UpdateHashTagBody Нет

Ответ

Возвращает: PatchHashTag200Response

Пример

Пример patch_hash_tag
Copy Copy
1
2let params: PatchHashTagParams = PatchHashTagParams {
3 tag: "news/article".to_string(),
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 update_hash_tag_body: Some(models::UpdateHashTagBody {
6 label: Some("World News".to_string()),
7 description: Some("Articles related to world events.".to_string()),
8 enabled: Some(true),
9 }),
10};
11
12let response: PatchHashTag200Response = patch_hash_tag(&configuration, params).await?
13

Создать модератора Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_moderator_body models::CreateModeratorBody Да

Ответ

Возвращает: CreateModerator200Response

Пример

Пример create_moderator
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateModeratorParams = CreateModeratorParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 create_moderator_body: models::CreateModeratorBody {
6 username: String::from("jane.moderator"),
7 email: String::from("jane.moderator@acme.com"),
8 display_name: Some(String::from("Jane Moderator")),
9 sections: Some(vec![String::from("news/article"), String::from("forums/general")]),
10 active: Some(true),
11 notes: Some(String::from("Senior moderator, PST timezone")),
12 },
13 };
14 let response: CreateModerator200Response = create_moderator(&configuration, params).await?;
15 Ok(())
16}
17

Удалить модератора Internal Link

Параметры

Name Type Required Description
tenant_id String Yes
id String Yes
send_email String No

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_moderator
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteModeratorParams = DeleteModeratorParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("moderator-9876"),
6 send_email: Some(String::from("true")),
7 };
8
9 let response: FlagCommentPublic200Response = delete_moderator(&configuration, params).await?;
10 Ok(())
11}
12

Получить модератора Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetModerator200Response

Пример

get_moderator Пример
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params = GetModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-4521".to_string(),
6 include_permissions: Some(true),
7 };
8 let moderator: GetModerator200Response = get_moderator(&configuration, params).await?;
9 println!("{:#?}", moderator);
10 Ok(())
11}
12

Получить модераторов Internal Link


Параметры

Name Type Required Description
tenant_id String Да
skip f64 Нет

Ответ

Возвращает: GetModerators200Response

Пример

Пример get_moderators
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetModeratorsParams = GetModeratorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let _moderators: GetModerators200Response = get_moderators(&configuration, params).await?;
8 Ok(())
9}
10

Отправить приглашение Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
from_name String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

send_invite Пример
Copy Copy
1
2async fn send_invite_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: SendInviteParams = SendInviteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-2026-03-25-modern-rust".to_string(),
6 from_name: "Acme Newsroom".to_string(),
7 message: Some("Please join the discussion on this article.".to_string()),
8 };
9 let response: FlagCommentPublic200Response = send_invite(&configuration, params).await?;
10 Ok(response)
11}
12

Обновить модератора Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да
update_moderator_body models::UpdateModeratorBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_moderator
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UpdateModeratorParams = UpdateModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-987".to_string(),
6 update_moderator_body: models::UpdateModeratorBody {
7 username: Some("jane.doe".to_string()),
8 email: Some("jane.doe@acme.com".to_string()),
9 role: Some("senior_moderator".to_string()),
10 active: Some(true),
11 notes: Some("Promoted after successful trial period".to_string()),
12 },
13 };
14 let response: FlagCommentPublic200Response = update_moderator(&configuration, params).await?;
15 Ok(())
16}
17

Удалить счетчик уведомлений Internal Link

Параметры

Имя Type Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

delete_notification_count Пример
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteNotificationCountParams = DeleteNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("notification-9876"),
6 user_id: Some(String::from("user-1234")),
7 };
8 let response: FlagCommentPublic200Response = delete_notification_count(configuration, params).await?;
9 Ok(response)
10}
11

Получить кэшированный счетчик уведомлений Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetCachedNotificationCount200Response

Пример

Пример get_cached_notification_count
Copy Copy
1
2pub async fn example_get_cached_notification_count(configuration: &configuration::Configuration) -> Result<GetCachedNotificationCount200Response, Error> {
3 let params: GetCachedNotificationCountParams = GetCachedNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345".to_string(),
6 };
7 let response: GetCachedNotificationCount200Response = get_cached_notification_count(configuration, params).await?;
8 Ok(response)
9}
10

Получить количество уведомлений Internal Link

Параметры

Name Type Обязательный Описание
tenant_id String Да
user_id String Нет
url_id String Нет
from_comment_id String Нет
viewed bool Нет

Ответ

Возвращает: GetNotificationCount200Response

Пример

Пример get_notification_count
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: GetNotificationCountParams = GetNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user-67890".to_string()),
6 url_id: Some("news/2026/03/25/election-updates".to_string()),
7 from_comment_id: Some("cmt_42".to_string()),
8 viewed: Some(false),
9 };
10 let response: GetNotificationCount200Response = get_notification_count(&configuration, params).await?;
11 Ok(())
12}
13

Получить уведомления Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
user_id String Нет
url_id String Нет
from_comment_id String Нет
viewed bool Нет
skip f64 Нет

Ответ

Возвращает: GetNotifications200Response

Пример

get_notifications Пример
Copy Copy
1
2async fn fetch_notifications() -> Result<(), Error> {
3 let params: GetNotificationsParams = GetNotificationsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 user_id: Some("user-12345".to_owned()),
6 url_id: Some("news/article/2026/03/25/major-update".to_owned()),
7 from_comment_id: Some("cmt-98765".to_owned()),
8 viewed: Some(false),
9 skip: Some(0.0),
10 };
11 let notifications: GetNotifications200Response = get_notifications(&configuration, params).await?;
12 Ok(())
13}
14

Обновить уведомление Internal Link


Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да
update_notification_body models::UpdateNotificationBody Да
user_id String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_notification
Copy Copy
1
2let params: UpdateNotificationParams = UpdateNotificationParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "notif-12345".to_string(),
5 update_notification_body: models::UpdateNotificationBody {
6 name: "Article Comments Webhook".to_string(),
7 url: "https://hooks.acme-corp.com/article-comments".to_string(),
8 enabled: true,
9 events: vec!["comment.created".to_string(), "comment.flagged".to_string()],
10 },
11 user_id: Some("moderator-42".to_string()),
12};
13
14let response: FlagCommentPublic200Response = update_notification(&configuration, params).await?;
15

Добавить страницу Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_api_page_data models::CreateApiPageData Да

Ответ

Возвращает: AddPageApiResponse


Удалить страницу Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: DeletePageApiResponse


Получить страницу по URL ID Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да

Ответ

Возвращает: GetPageByUrlidApiResponse


Получить страницы Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да

Ответ

Возвращает: GetPagesApiResponse


Частично обновить страницу Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_api_page_data models::UpdateApiPageData Да

Ответ

Возвращает: PatchPageApiResponse


Удалить ожидающее событие вебхука Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

delete_pending_webhook_event Пример
Copy Copy
1
2async fn run_delete() -> Result<FlagCommentPublic200Response, Error> {
3 let audit_note: Option<String> = Some("removed duplicate webhook event".to_string());
4 let params: DeletePendingWebhookEventParams = DeletePendingWebhookEventParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 id: "9f8b7a6c-1234-4b8d-9c3a-0e1f2d3c4b5a".to_string(),
7 };
8 let response: FlagCommentPublic200Response = delete_pending_webhook_event(&configuration, params).await?;
9 let _ = audit_note;
10 Ok(response)
11}
12

Получить количество ожидающих событий вебхуков Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
comment_id String Нет
external_id String Нет
event_type String Нет
domain String Нет
attempt_count_gt f64 Нет

Ответ

Возвращает: GetPendingWebhookEventCount200Response

Пример

Пример get_pending_webhook_event_count
Copy Copy
1
2async fn fetch_pending_webhook_count(configuration: &configuration::Configuration) -> Result<GetPendingWebhookEventCount200Response, Error> {
3 let params: GetPendingWebhookEventCountParams = GetPendingWebhookEventCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: Some(String::from("cmt-12345")),
6 external_id: Some(String::from("ext-67890")),
7 event_type: Some(String::from("comment_posted")),
8 domain: Some(String::from("news.example.com")),
9 attempt_count_gt: Some(3.0),
10 };
11 let response: GetPendingWebhookEventCount200Response = get_pending_webhook_event_count(configuration, params).await?;
12 Ok(response)
13}
14

Получить ожидающие события вебхуков Internal Link

Параметры

Name Type Required Description
tenant_id String Да
comment_id String Нет
external_id String Нет
event_type String Нет
domain String Нет
attempt_count_gt f64 Нет
skip f64 Нет

Ответ

Возвращает: GetPendingWebhookEvents200Response

Пример

get_pending_webhook_events Пример
Copy Copy
1
2async fn fetch_pending_webhook_events() -> Result<GetPendingWebhookEvents200Response, Error> {
3 let params: GetPendingWebhookEventsParams = GetPendingWebhookEventsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: Some("cmt-2026-04-01-001".to_string()),
6 external_id: Some("news/article-42".to_string()),
7 event_type: Some("comment.created".to_string()),
8 domain: Some("news.example.com".to_string()),
9 attempt_count_gt: Some(1.0),
10 skip: Some(0.0),
11 };
12 let response: GetPendingWebhookEvents200Response = get_pending_webhook_events(&configuration, params).await?;
13 Ok(response)
14}
15

Создать конфигурацию вопроса Internal Link

Параметры

Name Type Required Description
tenant_id String Да
create_question_config_body models::CreateQuestionConfigBody Да

Ответ

Возвращает: CreateQuestionConfig200Response

Пример

Пример create_question_config
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateQuestionConfigParams = CreateQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_config_body: models::CreateQuestionConfigBody {
6 slug: "news/article".to_string(),
7 title: "Reader satisfaction".to_string(),
8 description: Some("How satisfied are you with this article?".to_string()),
9 required: Some(false),
10 rendering_type: Some(QuestionRenderingType::Inline),
11 custom_options: Some(vec![
12 models::QuestionConfigCustomOptionsInner { value: "very_satisfied".to_string(), label: Some("Very satisfied".to_string()) },
13 models::QuestionConfigCustomOptionsInner { value: "unsatisfied".to_string(), label: Some("Unsatisfied".to_string()) },
14 ]),
15 },
16 };
17 let response: CreateQuestionConfig200Response = create_question_config(configuration, params).await?;
18 Ok(())
19}
20

Удалить конфигурацию вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_question_config
Copy Copy
1
2pub async fn run_delete_question_config() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteQuestionConfigParams = DeleteQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "question-config-8742".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_question_config(&configuration, params).await?;
8 Ok(response)
9}
10

Получить конфигурацию вопроса Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да

Ответ

Возвращает: GetQuestionConfig200Response

Пример

Пример get_question_config
Copy Copy
1
2async fn run_get_question_config() -> Result<GetQuestionConfig200Response, Error> {
3 let tenant: Option<String> = Some("acme-corp-tenant".to_string());
4 let params: GetQuestionConfigParams = GetQuestionConfigParams {
5 tenant_id: tenant.unwrap(),
6 id: "news/article/2026/03/25/space-launch".to_string(),
7 };
8 let response: GetQuestionConfig200Response = get_question_config(&configuration, params).await?;
9 Ok(response)
10}
11

Получить конфигурации вопросов Internal Link


Параметры

Имя Type Обязательно Описание
tenant_id String Да
skip f64 Нет

Response

Возвращает: GetQuestionConfigs200Response

Пример

Пример get_question_configs
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetQuestionConfigsParams = GetQuestionConfigsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let response: GetQuestionConfigs200Response = get_question_configs(&configuration, params).await?;
8 println!("{:#?}", response);
9 Ok(())
10}
11

Обновить конфигурацию вопроса Internal Link

Параметры

Название Тип Обязательно Описание
tenant_id String Yes
id String Yes
update_question_config_body models::UpdateQuestionConfigBody Yes

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_question_config
Copy Copy
1
2let params: UpdateQuestionConfigParams = UpdateQuestionConfigParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "news/article-2026-03-readability".to_string(),
5 update_question_config_body: models::UpdateQuestionConfigBody {
6 question_text: Some("Was this article helpful?".to_string()),
7 required: Some(true),
8 rendering_type: Some(models::QuestionRenderingType::Inline),
9 custom_options: Some(vec![
10 models::QuestionConfigCustomOptionsInner { label: "Very helpful".to_string(), value: "very_helpful".to_string() },
11 models::QuestionConfigCustomOptionsInner { label: "Somewhat helpful".to_string(), value: "somewhat_helpful".to_string() },
12 models::QuestionConfigCustomOptionsInner { label: "Not helpful".to_string(), value: "not_helpful".to_string() },
13 ]),
14 when_save: Some(models::QuestionWhenSave::AskOnSave),
15 ..Default::default()
16 },
17};
18let response: FlagCommentPublic200Response = update_question_config(&configuration, params).await?;
19

Создать результат вопроса Internal Link

Параметры

Name Type Required Description
tenant_id String Да
create_question_result_body models::CreateQuestionResultBody Да

Ответ

Возвращает: CreateQuestionResult200Response

Пример

Пример create_question_result
Copy Copy
1
2async fn run_create_question_result() -> Result<(), Error> {
3 let params: CreateQuestionResultParams = CreateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_result_body: models::CreateQuestionResultBody {
6 question_id: "article-123-comment-rating".to_string(),
7 user_id: Some("reader-456".to_string()),
8 result: Some("helpful".to_string()),
9 context: Some("news/article".to_string()),
10 submitted_at: Some("2026-03-25T12:34:56Z".to_string()),
11 },
12 };
13
14 let response: CreateQuestionResult200Response = create_question_result(&configuration, params).await?;
15 Ok(())
16}
17

Удалить результат вопроса Internal Link


Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_question_result
Copy Copy
1
2async fn run_delete_question_result() -> Result<(), Error> {
3 let params: DeleteQuestionResultParams = DeleteQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "qres-news/article-2026-03-25-9a8b7c".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_question_result(&configuration, params).await?;
8 let _response = response;
9 Ok(())
10}
11

Получить результат вопроса Internal Link

Параметры

Name Type Required Description
tenant_id String Yes
id String Yes

Ответ

Возвращает: GetQuestionResult200Response

Пример

get_question_result Пример
Copy Copy
1
2async fn example_get_question_result() -> Result<GetQuestionResult200Response, Error> {
3 let params: GetQuestionResultParams = GetQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "question-12345".to_string(),
6 };
7 let _include_metadata: Option<bool> = Some(true);
8 let response: GetQuestionResult200Response = get_question_result(configuration, params).await?;
9 Ok(response)
10}
11

Получить результаты вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Нет
user_id String Нет
start_date String Нет
question_id String Нет
question_ids String Нет
skip f64 Нет

Ответ

Возвращает: GetQuestionResults200Response

Пример

Пример get_question_results
Copy Copy
1
2async fn run() -> Result<GetQuestionResults200Response, Error> {
3 let params: GetQuestionResultsParams = GetQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 url_id: Some("news/local/2026/03/25".to_owned()),
6 user_id: Some("user_12345".to_owned()),
7 start_date: Some("2026-01-01T00:00:00Z".to_owned()),
8 question_id: Some("q_789".to_owned()),
9 question_ids: Some("q_789,q_790".to_owned()),
10 skip: Some(10.0),
11 };
12 let response: GetQuestionResults200Response = get_question_results(&configuration, params).await?;
13 Ok(response)
14}
15

Обновить результат вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_question_result_body models::UpdateQuestionResultBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_question_result
Copy Copy
1
2async fn run_update_question_result() -> Result<(), Error> {
3 let params: UpdateQuestionResultParams = UpdateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article/2026/03/25/12345".to_string(),
6 update_question_result_body: models::UpdateQuestionResultBody {
7 question_id: Some("q-987".to_string()),
8 result: Some(true),
9 reviewer_id: Some("moderator-7".to_string()),
10 notes: Some("Marked as resolved after editorial review".to_string()),
11 },
12 };
13 let response: FlagCommentPublic200Response = update_question_result(&configuration, params).await?;
14 println!("update result: {:?}", response);
15 Ok(())
16}
17

Агрегировать результаты вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
question_id String Нет
question_ids Vec Нет
url_id String Нет
time_bucket models::AggregateTimeBucket Нет
start_date String Нет
force_recalculate bool Нет

Ответ

Возвращает: AggregateQuestionResults200Response

Пример

Пример aggregate_question_results
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: AggregateQuestionResultsParams = AggregateQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 question_id: Some("satisfaction-8".to_string()),
6 question_ids: Some(vec!["satisfaction-8".to_string(), "recommendation-3".to_string()]),
7 url_id: Some("news/article/2026/ai-announce".to_string()),
8 time_bucket: Some(models::AggregateTimeBucket::Daily),
9 start_date: Some("2026-03-01T00:00:00Z".to_string()),
10 force_recalculate: Some(true),
11 };
12 let aggregation: AggregateQuestionResults200Response = aggregate_question_results(&configuration, params).await?;
13 Ok(())
14}
15

Массовая агрегация результатов вопросов Internal Link

Параметры

Name Type Required Description
tenant_id String Да
bulk_aggregate_question_results_request models::BulkAggregateQuestionResultsRequest Да
force_recalculate bool Нет

Ответ

Возвращает: BulkAggregateQuestionResults200Response

Пример

Пример bulk_aggregate_question_results
Copy Copy
1
2let params: BulkAggregateQuestionResultsParams = BulkAggregateQuestionResultsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 bulk_aggregate_question_results_request: models::BulkAggregateQuestionResultsRequest {
5 questions: vec![
6 models::BulkAggregateQuestionItem {
7 question_id: "news/article-2026-03-24-comments".to_string(),
8 include_subquestions: Some(true),
9 top_n: Some(5),
10 }
11 ],
12 time_bucket: models::AggregateTimeBucket::Daily,
13 start_time: "2026-03-01T00:00:00Z".to_string(),
14 end_time: "2026-03-24T23:59:59Z".to_string(),
15 },
16 force_recalculate: Some(true),
17};
18let response: BulkAggregateQuestionResults200Response = bulk_aggregate_question_results(&configuration, params).await?;
19

Объединить комментарии с результатами вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
question_id String Нет
question_ids Vec Нет
url_id String Нет
start_date String Нет
force_recalculate bool Нет
min_value f64 Нет
max_value f64 Нет
limit f64 Нет

Ответ

Возвращает: CombineCommentsWithQuestionResults200Response

Пример

Пример combine_comments_with_question_results
Copy Copy
1
2async fn run() -> Result<CombineCommentsWithQuestionResults200Response, Error> {
3 let params: CombineCommentsWithQuestionResultsParams = CombineCommentsWithQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 question_id: Some("q-2026-product-satisfaction".to_string()),
6 question_ids: Some(vec![
7 "q-2026-product-satisfaction".to_string(),
8 "q-2026-support-rating".to_string(),
9 ]),
10 url_id: Some("news/product/launch-2026".to_string()),
11 start_date: Some("2026-03-01T00:00:00Z".to_string()),
12 force_recalculate: Some(true),
13 min_value: Some(1.0),
14 max_value: Some(5.0),
15 limit: Some(100.0),
16 };
17 let response: CombineCommentsWithQuestionResults200Response =
18 combine_comments_with_question_results(&configuration, params).await?;
19 Ok(response)
20}
21

Добавить SSO-пользователя Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_apisso_user_data models::CreateApissoUserData Да

Ответ

Возвращает: AddSsoUserApiResponse


Удалить SSO-пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
delete_comments bool Нет
comment_delete_mode String Нет

Ответ

Возвращает: DeleteSsoUserApiResponse


Получить SSO-пользователя по email Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
email String Да

Ответ

Возвращает: GetSsoUserByEmailApiResponse


Получить SSO-пользователя по ID Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetSsoUserByIdApiResponse


Получить SSO-пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
skip i32 Нет

Ответ

Возвращает: GetSsoUsers200Response

Частично обновить SSO-пользователя Internal Link


Параметры

Имя Тип Обязателен Описание
tenant_id String Да
id String Да
update_apisso_user_data models::UpdateApissoUserData Да
update_comments bool Нет

Ответ

Возвращает: PatchSsoUserApiResponse


Заменить SSO-пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_apisso_user_data models::UpdateApissoUserData Да
update_comments bool Нет

Ответ

Возвращает: PutSsoUserApiResponse


Создать подписку Internal Link

Параметры

Name Type Required Description
tenant_id String Да
create_api_user_subscription_data models::CreateApiUserSubscriptionData Да

Ответ

Возвращает: CreateSubscriptionApiResponse

Пример

Пример create_subscription
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateSubscriptionParams = CreateSubscriptionParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_api_user_subscription_data: models::CreateApiUserSubscriptionData {
6 api_user_id: "api_user_9843".to_string(),
7 resource: "news/article".to_string(),
8 plan: Some("pro".to_string()),
9 start_at: Some("2026-03-01T12:00:00Z".to_string()),
10 metadata: Some(std::collections::HashMap::from([
11 ("source".to_string(), "signup_form".to_string()),
12 ("utm_campaign".to_string(), "spring_launch".to_string()),
13 ])),
14 active: Some(true),
15 },
16 };
17
18 let subscription_response: CreateSubscriptionApiResponse =
19 create_subscription(&configuration, params).await?;
20 Ok(())
21}
22

Удалить подписку Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
user_id String Нет

Ответ

Возвращает: DeleteSubscriptionApiResponse


Получить подписки Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
user_id String Нет

Ответ

Возвращает: GetSubscriptionsApiResponse

Пример

Пример get_subscriptions
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetSubscriptionsParams = GetSubscriptionsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user-42@example.com".to_string()),
6 };
7 let subscriptions: GetSubscriptionsApiResponse = get_subscriptions(&configuration, params).await?;
8 let _ = subscriptions;
9 Ok(())
10}
11

Обновить подписку Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_api_user_subscription_data models::UpdateApiUserSubscriptionData Да
user_id String Нет

Ответ

Возвращает: UpdateSubscriptionApiResponse

Пример

Пример update_subscription
Copy Copy
1
2async fn example_update_subscription() -> Result<(), Error> {
3 let params: UpdateSubscriptionParams = UpdateSubscriptionParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "sub_8f9a2b".to_string(),
6 update_api_user_subscription_data: models::UpdateApiUserSubscriptionData {
7 plan: "newsletter-weekly".to_string(),
8 active: true,
9 renewal_period_days: Some(30),
10 },
11 user_id: Some("user_42".to_string()),
12 };
13 let response: UpdateSubscriptionApiResponse = update_subscription(&configuration, params).await?;
14 Ok(())
15}
16

Получить ежедневное использование тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
year_number f64 Нет
month_number f64 Нет
day_number f64 Нет
skip f64 Нет

Ответ

Возвращает: GetTenantDailyUsages200Response

Пример

Пример get_tenant_daily_usages
Copy Copy
1
2async fn example_get_usage() -> Result<GetTenantDailyUsages200Response, Error> {
3 let params = GetTenantDailyUsagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 year_number: Some(2026.0),
6 month_number: Some(3.0),
7 day_number: Some(25.0),
8 skip: Some(0.0),
9 };
10 let response = get_tenant_daily_usages(&configuration, params).await?;
11 Ok(response)
12}
13

Создать пакет тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_tenant_package_body models::CreateTenantPackageBody Да

Ответ

Возвращает: CreateTenantPackage200Response

Пример

Пример create_tenant_package
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantPackageParams = CreateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_package_body: models::CreateTenantPackageBody {
6 name: "Acme Standard Moderation".to_string(),
7 description: Some("Standard moderation package for news and blog sites".to_string()),
8 enabled: Some(true),
9 custom_config: Some(CustomConfigParameters { max_comment_length: Some(1000), require_moderation: Some(true) }),
10 gif_rating: Some(GifRating::PG13),
11 image_content_profanity_level: Some(ImageContentProfanityLevel::Moderate),
12 tos: Some(TosConfig { require_acceptance: Some(true), tos_url: Some("https://acme.example.com/terms".to_string()) }),
13 },
14 };
15 let response: CreateTenantPackage200Response = create_tenant_package(&configuration, params).await?;
16 Ok(())
17}
18

Удалить пакет тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_tenant_package
Copy Copy
1
2async fn run_delete() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantPackageParams = DeleteTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-comments-package-2026-03".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_tenant_package(&configuration, params).await?;
8 Ok(response)
9}
10

Получить пакет тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetTenantPackage200Response

Пример

get_tenant_package Пример
Copy Copy
1
2async fn fetch_tenant_package() -> Result<GetTenantPackage200Response, Error> {
3 let params: GetTenantPackageParams = GetTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "package-basic-2026".to_string(),
6 };
7 let include_metadata: Option<bool> = Some(true);
8 let package: GetTenantPackage200Response = get_tenant_package(&configuration, params).await?;
9 Ok(package)
10}
11

Получить пакеты тенанта Internal Link

Параметры

Name Type Required Description
tenant_id String Да
skip f64 Нет

Ответ

Возвращает: GetTenantPackages200Response

Пример

Пример get_tenant_packages
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: GetTenantPackagesParams = GetTenantPackagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20.0),
6 };
7 let packages: GetTenantPackages200Response = get_tenant_packages(&configuration, params).await?;
8 Ok(())
9}
10

Заменить пакет тенанта Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
replace_tenant_package_body models::ReplaceTenantPackageBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример replace_tenant_package
Copy Copy
1
2async fn run_replace_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: ReplaceTenantPackageParams = ReplaceTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "enterprise-package-2026".to_string(),
6 replace_tenant_package_body: models::ReplaceTenantPackageBody {
7 name: "Acme Enterprise".to_string(),
8 plan: "enterprise".to_string(),
9 seats: Some(50),
10 allowed_domains: Some(vec![
11 "acme.com".to_string(),
12 "news.acme.com".to_string(),
13 ]),
14 },
15 };
16
17 let response: FlagCommentPublic200Response = replace_tenant_package(&configuration, params).await?;
18 Ok(response)
19}
20

Обновить пакет тенанта Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_tenant_package_body models::UpdateTenantPackageBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_tenant_package
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: UpdateTenantPackageParams = UpdateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "pkg-professional-2026".to_string(),
6 update_tenant_package_body: models::UpdateTenantPackageBody {
7 name: "Acme Professional".to_string(),
8 plan: "professional".to_string(),
9 enabled: Some(true),
10 api_status: Some(ApiStatus::Enabled),
11 custom_config: Some(CustomConfigParameters {
12 moderation_webhook: Some("https://acme.example.com/hooks/moderation".to_string()),
13 sso_security_level: Some(SsoSecurityLevel::Strict),
14 }),
15 tos_config: Some(TosConfig {
16 enabled: Some(true),
17 url: Some("https://acme.example.com/terms".to_string()),
18 }),
19 },
20 };
21 let response: FlagCommentPublic200Response = update_tenant_package(&configuration, params).await?;
22 Ok(())
23}
24

Создать пользователя тенанта Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
create_tenant_user_body models::CreateTenantUserBody Да

Ответ

Возвращает: CreateTenantUser200Response

Пример

Пример create_tenant_user
Copy Copy
1
2let params: CreateTenantUserParams = CreateTenantUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_tenant_user_body: models::CreateTenantUserBody {
5 username: "jane.doe".to_string(),
6 email: "jane.doe@acme.com".to_string(),
7 display_name: Some("Jane Doe".to_string()),
8 roles: Some(vec!["reader".to_string(), "commenter".to_string()]),
9 locale: Some("en-US".to_string()),
10 is_verified: Some(true),
11 },
12};
13
14let response: CreateTenantUser200Response = create_tenant_user(&configuration, params).await?;
15

Удалить пользователя тенанта Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
delete_comments String Нет
comment_delete_mode String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример delete_tenant_user
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantUserParams = DeleteTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-9876".to_string(),
6 delete_comments: Some("true".to_string()),
7 comment_delete_mode: Some("permanent".to_string()),
8 };
9 let response: FlagCommentPublic200Response = delete_tenant_user(&configuration, params).await?;
10 Ok(response)
11}
12

Получить пользователя тенанта Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да

Response

Возвращает: GetTenantUser200Response

Пример

Пример get_tenant_user
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantUserParams = GetTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-9a4f2e".to_string(),
6 expand: Some(vec!["roles".to_string(), "preferences".to_string()]),
7 };
8 let user_response: GetTenantUser200Response = get_tenant_user(&configuration, params).await?;
9 println!("{:#?}", user_response);
10 Ok(())
11}
12

Получить пользователей тенанта Internal Link

Параметры

Name Type Required Description
tenant_id String Да
skip f64 Нет

Ответ

Возвращает: GetTenantUsers200Response

Пример

Пример get_tenant_users
Copy Copy
1
2async fn example_get_tenant_users() -> Result<(), Error> {
3 let params: GetTenantUsersParams = GetTenantUsersParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20.0),
6 };
7 let users: GetTenantUsers200Response = get_tenant_users(&configuration, params).await?;
8 let _users = users;
9 Ok(())
10}
11

Заменить пользователя тенанта Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
replace_tenant_user_body models::ReplaceTenantUserBody Да
update_comments String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

replace_tenant_user Пример
Copy Copy
1
2let params: ReplaceTenantUserParams = ReplaceTenantUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "user-42".to_string(),
5 replace_tenant_user_body: models::ReplaceTenantUserBody {
6 user_id: "user-42".to_string(),
7 display_name: "Jane Doe".to_string(),
8 email: "jane.doe@acme.com".to_string(),
9 roles: vec!["moderator".to_string()],
10 },
11 update_comments: Some("true".to_string()),
12};
13let response: FlagCommentPublic200Response = replace_tenant_user(&configuration, params).await?
14

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
redirect_url String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример send_login_link
Copy Copy
1
2async fn send_login_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: SendLoginLinkParams = SendLoginLinkParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("user-98765"),
6 redirect_url: Some(String::from("https://acme.example.com/dashboard")),
7 };
8 let response: FlagCommentPublic200Response = send_login_link(&configuration, params).await?;
9 Ok(response)
10}
11

Обновить пользователя тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да
update_tenant_user_body models::UpdateTenantUserBody Да
update_comments String Нет

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_tenant_user
Copy Copy
1
2async fn run_update_tenant_user(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantUserParams = UpdateTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-7b9f".to_string(),
6 update_tenant_user_body: models::UpdateTenantUserBody {
7 email: Some("jane.doe@acme.com".to_string()),
8 display_name: Some("Jane Doe".to_string()),
9 username: Some("jdoe".to_string()),
10 role: Some("moderator".to_string()),
11 },
12 update_comments: Some("Promoted to moderator to handle flagged comments".to_string()),
13 };
14 let response = update_tenant_user(configuration, params).await?;
15 Ok(response)
16}
17

Создать тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
create_tenant_body models::CreateTenantBody Да

Ответ

Возвращает: CreateTenant200Response

Пример

Пример create_tenant
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantParams = CreateTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_body: models::CreateTenantBody {
6 name: "Acme Corporation".to_string(),
7 primary_domain: Some("acme.example.com".to_string()),
8 admin_email: Some("admin@acme.example.com".to_string()),
9 api_domain_configuration: Some(models::ApiDomainConfiguration {
10 primary_domain: Some("acme.example.com".to_string()),
11 allowed_origins: Some(vec![
12 "https://acme.example.com".to_string(),
13 "https://www.acme.com".to_string()
14 ]),
15 ..Default::default()
16 }),
17 billing_info: Some(models::BillingInfo {
18 plan: "business".to_string(),
19 company_name: Some("Acme Corporation".to_string()),
20 contact_email: Some("billing@acme.example.com".to_string()),
21 ..Default::default()
22 }),
23 imported_sites: Some(vec![models::ImportedSiteType {
24 site_id: "news/site-1".to_string(),
25 origin: Some("https://news.acme.com".to_string()),
26 ..Default::default()
27 }]),
28 ..Default::default()
29 },
30 };
31 let response: CreateTenant200Response = create_tenant(&configuration, params).await?;
32 Ok(())
33}
34

Удалить тенанта Internal Link


Параметры

Имя Тип Обязательно Описание
tenant_id String Yes
id String Yes
sure String No

Ответ

Возвращает: FlagCommentPublic200Response

Пример

delete_tenant Пример
Copy Copy
1
2let params: DeleteTenantParams = DeleteTenantParams {
3 tenant_id: String::from("acme-corp-tenant"),
4 id: String::from("acme-corp-tenant-001"),
5 sure: Some(String::from("confirm-delete")),
6};
7let response: FlagCommentPublic200Response = delete_tenant(&configuration, params).await?;
8

Получить тенанта Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetTenant200Response

Пример

Пример get_tenant
Copy Copy
1
2async fn run_get_tenant() -> Result<GetTenant200Response, Error> {
3 let params: GetTenantParams = GetTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/site-42".to_string(),
6 expand: Some(vec!["domains".to_string(), "billing".to_string()]),
7 };
8 let tenant: GetTenant200Response = get_tenant(&configuration, params).await?;
9 Ok(tenant)
10}
11

Получить тенанты Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
meta String Нет
skip f64 Нет

Ответ

Возвращает: GetTenants200Response

Пример

Пример get_tenants
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantsParams = GetTenantsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 meta: Some("news/article".to_string()),
6 skip: Some(10.0),
7 };
8 let response: GetTenants200Response = get_tenants(&configuration, params).await?;
9 println!("{:#?}", response);
10 Ok(())
11}
12

Обновить тенанта Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
update_tenant_body models::UpdateTenantBody Да

Ответ

Возвращает: FlagCommentPublic200Response

Пример

Пример update_tenant
Copy Copy
1
2let params: UpdateTenantParams = UpdateTenantParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "site-42".to_string(),
5 update_tenant_body: models::UpdateTenantBody {
6 name: Some("Acme Corporation".to_string()),
7 api_domain_configuration: Some(models::ApiDomainConfiguration {
8 primary_domain: Some("comments.acme.com".to_string()),
9 allowed_domains: Some(vec!["acme.com".to_string(), "www.acme.com".to_string()]),
10 }),
11 billing_info: Some(models::BillingInfo {
12 plan: Some("business".to_string()),
13 billing_contact_email: Some("billing@acme.com".to_string()),
14 }),
15 sso_security_level: Some(models::SsoSecurityLevel::Strict),
16 custom_config_parameters: Some(models::CustomConfigParameters {
17 max_comment_length: Some(2000),
18 enable_moderation_queue: Some(true),
19 }),
20 },
21};
22let response: FlagCommentPublic200Response = update_tenant(&configuration, params).await?;
23

Изменить состояние тикета Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
user_id String Да
id String Да
change_ticket_state_body models::ChangeTicketStateBody Да

Ответ

Возвращает: ChangeTicketState200Response

Пример

Пример change_ticket_state
Copy Copy
1
2async fn run() -> Result<ChangeTicketState200Response, Error> {
3 let params: ChangeTicketStateParams = ChangeTicketStateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: "agent_jdoe".to_string(),
6 id: "ticket-2026-03-25-001".to_string(),
7 change_ticket_state_body: models::ChangeTicketStateBody {
8 state: "closed".to_string(),
9 note: Some("Issue resolved after patch deployment".to_string()),
10 assignee_id: Some("agent_jdoe".to_string()),
11 priority: Some("low".to_string()),
12 },
13 };
14 let response: ChangeTicketState200Response = change_ticket_state(&configuration, params).await?;
15 Ok(response)
16}
17

Создать тикет Internal Link

Параметры

Name Type Required Description
tenant_id String Да
user_id String Да
create_ticket_body models::CreateTicketBody Да

Ответ

Возвращает: CreateTicket200Response

Пример

Пример create_ticket
Copy Copy
1
2async fn create_ticket_example() -> Result<CreateTicket200Response, Error> {
3 let params = CreateTicketParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: "user-12345".to_string(),
6 create_ticket_body: models::CreateTicketBody {
7 subject: "Moderation request: abusive comments".to_string(),
8 description: "Several abusive comments reported on the article 'Election 2026: Key Races'".to_string(),
9 priority: Some("high".to_string()),
10 tags: Some(vec!["moderation".to_string(), "priority-high".to_string()]),
11 reporter_email: Some("editor@news.example.com".to_string()),
12 source_url: Some("https://news.example.com/articles/election-2026-key-races".to_string()),
13 custom_fields: Some(std::collections::HashMap::from([
14 ("article_id".to_string(), "news-20260324-001".to_string())
15 ])),
16 },
17 };
18 let response: CreateTicket200Response = create_ticket(&configuration, params).await?;
19 Ok(response)
20}
21

Получить тикет Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
user_id String Нет

Ответ

Возвращает: GetTicket200Response

Пример

Пример get_ticket
Copy Copy
1
2async fn example_get_ticket() -> Result<GetTicket200Response, Error> {
3 let params: GetTicketParams = GetTicketParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "support/ticket-2026-03-25-12345".to_string(),
6 user_id: Some("user-67890".to_string()),
7 };
8 let ticket: GetTicket200Response = get_ticket(&configuration, params).await?;
9 Ok(ticket)
10}
11

Получить тикеты Internal Link

Параметры

Name Type Required Description
tenant_id String Да
user_id String Нет
state f64 Нет
skip f64 Нет
limit f64 Нет

Ответ

Возвращает: GetTickets200Response

Пример

Пример get_tickets
Copy Copy
1
2async fn example_get_tickets() -> Result<(), Error> {
3 let params: GetTicketsParams = GetTicketsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 user_id: Some("user-9876".to_owned()),
6 state: Some(1.0),
7 skip: Some(0.0),
8 limit: Some(25.0),
9 };
10 let tickets: GetTickets200Response = get_tickets(configuration, params).await?;
11 Ok(())
12}
13

Загрузить изображение Internal Link

Загрузить и изменить размер изображения

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
file std::path::PathBuf Да
size_preset models::SizePreset Нет
url_id String Нет

Ответ

Возвращает: UploadImageResponse


Получить прогресс значка пользователя по ID Internal Link


Параметры

Name Type Required Description
tenant_id String Да
id String Да

Ответ

Возвращает: GetUserBadgeProgressById200Response

Пример

get_user_badge_progress_by_id Пример
Copy Copy
1
2async fn example_get_badge_progress() -> Result<GetUserBadgeProgressById200Response, Error> {
3 let cfg: &configuration::Configuration = &configuration;
4 let params = GetUserBadgeProgressByIdParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 id: "badge-007-community-builder".to_string(),
7 };
8 let response: GetUserBadgeProgressById200Response = get_user_badge_progress_by_id(cfg, params).await?;
9 Ok(response)
10}
11

Получить прогресс значка пользователя по ID пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Yes
user_id String Yes

Ответ

Возвращает: GetUserBadgeProgressById200Response

Пример

Пример get_user_badge_progress_by_user_id
Copy Copy
1
2async fn example() -> Result<GetUserBadgeProgressById200Response, Error> {
3 let cfg: &configuration::Configuration = &configuration;
4 let params: GetUserBadgeProgressByUserIdParams = GetUserBadgeProgressByUserIdParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 user_id: "journalist-9876".to_string(),
7 include_inactive: Some(false),
8 locale: Some("en-US".to_string()),
9 };
10 let response: GetUserBadgeProgressById200Response =
11 get_user_badge_progress_by_user_id(cfg, params).await?;
12 Ok(response)
13}
14

Получить список прогресса значков пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Да
user_id String Нет
limit f64 Нет
skip f64 Нет

Ответ

Возвращает: GetUserBadgeProgressList200Response

Пример

get_user_badge_progress_list Пример
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetUserBadgeProgressListParams = GetUserBadgeProgressListParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user_98765".to_string()),
6 limit: Some(25.0),
7 skip: Some(0.0),
8 };
9 let response: GetUserBadgeProgressList200Response =
10 get_user_badge_progress_list(&configuration, params).await?;
11 let _response = response;
12 Ok(())
13}
14

Создать значок пользователя Internal Link


Параметры

Имя Тип Обязательный Описание
tenant_id String Да
create_user_badge_params models::CreateUserBadgeParams Да

Ответ

Возвращает: CreateUserBadge200Response

Пример

create_user_badge Пример
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateUserBadgeParams = CreateUserBadgeParams {
4 tenant_id: "acme-corp-tenant".into(),
5 create_user_badge_params: models::CreateUserBadgeParams {
6 name: "Top Contributor".into(),
7 description: Some("Awarded for sustained high-quality contributions".into()),
8 image_url: Some("https://cdn.acme.com/badges/top-contributor.png".into()),
9 criteria: Some("100 upvotes across articles and comments".into()),
10 is_active: Some(true),
11 tags: Some(vec!["community".into(), "milestone".into()]),
12 },
13 };
14 let response: CreateUserBadge200Response = create_user_badge(&configuration, params).await?;
15 Ok(())
16}
17

Удалить значок пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: UpdateUserBadge200Response

Пример

Пример delete_user_badge
Copy Copy
1
2async fn run_delete_badge() -> Result<UpdateUserBadge200Response, Error> {
3 let params: DeleteUserBadgeParams = DeleteUserBadgeParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "badge-7890".to_string(),
6 };
7 let response: UpdateUserBadge200Response = delete_user_badge(&configuration, params).await?;
8 Ok(response)
9}
10

Получить значок пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetUserBadge200Response

Пример

Пример get_user_badge
Copy Copy
1
2async fn fetch_user_badge() -> Result<GetUserBadge200Response, Error> {
3 let params = GetUserBadgeParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "verified-journalist-badge-001".to_string(),
6 locale: Some("en-US".to_string()),
7 };
8 let badge: GetUserBadge200Response = get_user_badge(&configuration, params).await?;
9 Ok(badge)
10}
11

Получить значки пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Да
user_id String Нет
badge_id String Нет
displayed_on_comments bool Нет
limit f64 Нет
skip f64 Нет

Ответ

Возвращает: GetUserBadges200Response

Пример

Пример get_user_badges
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetUserBadgesParams = GetUserBadgesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 user_id: Some(String::from("user-9876")),
6 badge_id: Some(String::from("top-reviewer")),
7 displayed_on_comments: Some(true),
8 limit: Some(50.0),
9 skip: Some(0.0),
10 };
11 let response: GetUserBadges200Response = get_user_badges(&configuration, params).await?;
12 Ok(())
13}
14

Обновить значок пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
update_user_badge_params models::UpdateUserBadgeParams Да

Ответ

Возвращает: UpdateUserBadge200Response

Пример

Пример update_user_badge
Copy Copy
1
2let params: UpdateUserBadgeParams = UpdateUserBadgeParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "badge-verified-001".to_string(),
5 update_user_badge_params: models::UpdateUserBadgeParams {
6 name: Some("Verified Contributor".to_string()),
7 description: Some("Awarded for consistent, high-quality contributions".to_string()),
8 icon_url: Some("https://assets.acme.com/badges/verified.png".to_string()),
9 color_hex: Some("#1E90FF".to_string()),
10 min_posts: Some(100u32),
11 active: Some(true),
12 },
13};
14let response: UpdateUserBadge200Response = update_user_badge(&configuration, params).await?;
15

Получить количество уведомлений пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Да
sso String Нет

Ответ

Возвращает: GetUserNotificationCount200Response

Пример

get_user_notification_count Пример
Copy Copy
1
2async fn example_user_notification_count() -> Result<(), Error> {
3 let params: GetUserNotificationCountParams = GetUserNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 sso: Some(String::from("sso-jwt-abc123")),
6 };
7 let _response: GetUserNotificationCount200Response =
8 get_user_notification_count(&configuration, params).await?;
9 Ok(())
10}
11

Получить уведомления пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
page_size i32 Нет
after_id String Нет
include_context bool Нет
after_created_at i64 Нет
unread_only bool Нет
dm_only bool Нет
no_dm bool Нет
include_translations bool Нет
sso String Нет

Ответ

Возвращает: GetUserNotifications200Response

Пример

Пример get_user_notifications
Copy Copy
1
2let params = GetUserNotificationsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 page_size: Some(25),
5 after_id: Some("notif_98765".to_string()),
6 include_context: Some(true),
7 after_created_at: Some(1_681_500_000i64),
8 unread_only: Some(true),
9 dm_only: Some(false),
10 no_dm: Some(false),
11 include_translations: Some(true),
12 sso: Some("sso_user_token_ab12".to_string()),
13};
14let notifications: GetUserNotifications200Response = get_user_notifications(&configuration, params).await?;
15

Сбросить счетчик уведомлений пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
sso String Нет

Ответ

Возвращает: ResetUserNotifications200Response

Пример

reset_user_notification_count Пример
Copy Copy
1
2async fn run_reset_user_notification_count() -> Result<ResetUserNotifications200Response, Error> {
3 let params: ResetUserNotificationCountParams = ResetUserNotificationCountParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 sso: Some("user-9876-token".to_string()),
6 };
7 let response: ResetUserNotifications200Response = reset_user_notification_count(&configuration, params).await?;
8 Ok(response)
9}
10

Сбросить уведомления пользователя Internal Link

Параметры

Name Type Required Description
tenant_id String Да
after_id String Нет
after_created_at i64 Нет
unread_only bool Нет
dm_only bool Нет
no_dm bool Нет
sso String Нет

Ответ

Возвращает: ResetUserNotifications200Response

Пример

Пример reset_user_notifications
Copy Copy
1
2async fn run_reset() -> Result<(), Error> {
3 let params: ResetUserNotificationsParams = ResetUserNotificationsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("notif_987654321".to_string()),
6 after_created_at: Some(1672531200),
7 unread_only: Some(true),
8 dm_only: Some(false),
9 no_dm: Some(false),
10 sso: Some("sso-enterprise".to_string()),
11 };
12 let resp: ResetUserNotifications200Response = reset_user_notifications(&configuration, params).await?;
13 let _ = resp;
14 Ok(())
15}
16

Обновить статус подписки пользователя на комментарии Internal Link

Включение или отключение уведомлений для конкретного комментария.

Параметры

Name Type Required Description
tenant_id String Да
notification_id String Да
opted_in_or_out String Да
comment_id String Да
sso String Нет

Ответ

Возвращает: UpdateUserNotificationStatus200Response

Пример

Пример update_user_notification_comment_subscription_status
Copy Copy
1
2async fn example_update_user_notification_comment_subscription_status() -> Result<(), Error> {
3 let params: UpdateUserNotificationCommentSubscriptionStatusParams = UpdateUserNotificationCommentSubscriptionStatusParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 notification_id: "notif-2026-03-25-4f2b".to_string(),
6 opted_in_or_out: "opted_out".to_string(),
7 comment_id: "cmt-98a7b6c5d4".to_string(),
8 sso: Some("sso-token-abc123".to_string()),
9 };
10 let response: UpdateUserNotificationStatus200Response =
11 update_user_notification_comment_subscription_status(&configuration, params).await?;
12 Ok(())
13}
14

Обновить статус подписки пользователя на страницу Internal Link


Включение или отключение уведомлений для страницы. Когда пользователи подписаны на страницу, уведомления создаются для новых корневых комментариев, а также

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да
url String Да
page_title String Да
subscribed_or_unsubscribed String Да
sso String Нет

Ответ

Возвращает: UpdateUserNotificationStatus200Response

Пример

update_user_notification_page_subscription_status Пример
Copy Copy
1
2async fn run() -> Result<UpdateUserNotificationStatus200Response, Error> {
3 let params = UpdateUserNotificationPageSubscriptionStatusParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("article-12345"),
6 url: String::from("https://news.acme.com/articles/2026/03/25/advances-in-ai"),
7 page_title: String::from("Advances in AI: What to Expect in 2026"),
8 subscribed_or_unsubscribed: String::from("subscribed"),
9 sso: Some(String::from("user-jwt-xyz123")),
10 };
11 let response = update_user_notification_page_subscription_status(&configuration, params).await?;
12 Ok(response)
13}
14

Обновить статус уведомления пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
notification_id String Да
new_status String Да
sso String Нет

Ответ

Возвращает: UpdateUserNotificationStatus200Response

Пример

Пример update_user_notification_status
Copy Copy
1
2async fn run() -> Result<UpdateUserNotificationStatus200Response, Error> {
3 let params: UpdateUserNotificationStatusParams = UpdateUserNotificationStatusParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 notification_id: "notif-2026-04-01-7f3b".to_string(),
6 new_status: "read".to_string(),
7 sso: Some("sso-session-abcdef123456".to_string()),
8 };
9 let resp: UpdateUserNotificationStatus200Response =
10 update_user_notification_status(&configuration, params).await?;
11 Ok(resp)
12}
13

Получить статусы присутствия пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id_ws String Да
user_ids String Да

Ответ

Возвращает: GetUserPresenceStatuses200Response

Пример

Пример get_user_presence_statuses
Copy Copy
1
2async fn run() -> Result<GetUserPresenceStatuses200Response, Error> {
3 let tenant_id: String = "acme-corp-tenant".to_string();
4 let url_id_ws: String = "news/article".to_string();
5 let user_ids_opt: Option<String> = Some("user123,user456,user789".to_string());
6 let params = GetUserPresenceStatusesParams {
7 tenant_id,
8 url_id_ws,
9 user_ids: user_ids_opt.unwrap(),
10 };
11 let presence: GetUserPresenceStatuses200Response = get_user_presence_statuses(&configuration, params).await?;
12 Ok(presence)
13}
14

Поиск пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да
username_starts_with String Нет
mention_group_ids Vec Нет
sso String Нет
search_section String Нет

Ответ

Возвращает: SearchUsers200Response

Пример

search_users Пример
Copy Copy
1
2async fn run_search() -> Result<SearchUsers200Response, Error> {
3 let params: SearchUsersParams = SearchUsersParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article-2026-03-25-launch"),
6 username_starts_with: Some(String::from("alex")),
7 mention_group_ids: Some(vec![String::from("team-marketing"), String::from("team-product")]),
8 sso: Some(String::from("okta")),
9 search_section: Some(String::from("comments")),
10 };
11 let search_result: SearchUsers200Response = search_users(&configuration, params).await?;
12 Ok(search_result)
13}
14

Получить пользователя Internal Link

Параметры

Имя Тип Обязательный Описание
tenant_id String Да
id String Да

Ответ

Возвращает: GetUser200Response

Пример

Пример get_user
Copy Copy
1
2pub async fn run_get_user_example() -> Result<(), Error> {
3 let tenant: Option<String> = Some("acme-corp-tenant".to_string());
4 let params: GetUserParams = GetUserParams {
5 tenant_id: tenant.unwrap(),
6 id: "user-9f8b3c".to_string(),
7 };
8 let user: GetUser200Response = get_user(&configuration, params).await?;
9 Ok(())
10}
11

Создать голос Internal Link

Параметры

Name Type Required Description
tenant_id String Да
comment_id String Да
direction String Да
user_id String Нет
anon_user_id String Нет

Ответ

Возвращает: VoteComment200Response

Пример

Пример create_vote
Copy Copy
1
2async fn example_create_vote() -> Result<(), Error> {
3 let params: CreateVoteParams = CreateVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/12345".to_string(),
6 direction: "up".to_string(),
7 user_id: Some("user-9876".to_string()),
8 anon_user_id: Some("anon-01-abcdef".to_string()),
9 };
10
11 let response: VoteComment200Response = create_vote(&configuration, params).await?;
12 println!("{:?}", response);
13 Ok(())
14}
15

Удалить голос Internal Link

Параметры

Name Type Required Description
tenant_id String Да
id String Да
edit_key String Нет

Ответ

Возвращает: DeleteCommentVote200Response

Пример

Пример delete_vote
Copy Copy
1
2async fn delete_vote_example() -> Result<DeleteCommentVote200Response, Error> {
3 let params: DeleteVoteParams = DeleteVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "comment-98765".to_string(),
6 edit_key: Some("edit-4f2b9c".to_string()),
7 };
8 let response: DeleteCommentVote200Response = delete_vote(&configuration, params).await?;
9 Ok(response)
10}
11

Получить голоса Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да

Ответ

Возвращает: GetVotes200Response

Пример

Пример get_votes
Copy Copy
1
2async fn fetch_votes() -> Result<GetVotes200Response, Error> {
3 let params: GetVotesParams = GetVotesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article/2026/03/25/breaking-story".to_string(),
6 include_replies: Some(true),
7 };
8 let votes: GetVotes200Response = get_votes(&configuration, params).await?;
9 Ok(votes)
10}
11

Получить голоса пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да
user_id String Нет
anon_user_id String Нет

Ответ

Возвращает: GetVotesForUser200Response

Пример

get_votes_for_user Пример
Copy Copy
1
2async fn example_get_votes_for_user() -> Result<(), Error> {
3 let params: GetVotesForUserParams = GetVotesForUserParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article-2026-03-fastcomments-launch"),
6 user_id: Some(String::from("user_12345")),
7 anon_user_id: Some(String::from("anon_9f2e7b")),
8 };
9 let votes: GetVotesForUser200Response = get_votes_for_user(&configuration, params).await?;
10 Ok(())
11}
12

Нужна помощь?

Если вы столкнулись с проблемами или у вас есть вопросы по Rust SDK, пожалуйста:

Как внести вклад

Мы приветствуем вклад! Пожалуйста, посетите репозиторий на GitHub для руководства по внесению вклада.