FastComments.com

FastComments SDK для Rust


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

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

Репозиторий

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


Установка Internal Link

cargo add fastcomments-sdk

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

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

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

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

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

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

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

Быстрый старт 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

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

  1. Проверьте ваш API-ключ: Убедитесь, что вы используете правильный API-ключ из вашей панели управления FastComments
  2. Проверьте tenant ID: Убедитесь, что tenant ID соответствует вашей учётной записи
  3. Формат API-ключа: API-ключ должен передаваться в 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-ключом для продакшена
  2. Только на сервере: Генерируйте SSO-токены на вашем сервере, никогда не раскрывайте ваш API-ключ клиентам
  3. Проверьте данные пользователя: Убедитесь, что предоставлены все обязательные поля (id, email, username)

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

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

  1. Добавьте tokio в ваши зависимости:
[dependencies]
tokio = { version = "1", features = ["full"] }
  1. Используйте runtime tokio:
#[tokio::main]
async fn main() {
    // Ваш асинхронный код здесь
}

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

Идентификаторы трансляции

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

aggregate Internal Link

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

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
aggregation_requestmodels::AggregationRequestДа
parent_tenant_idStringНет
include_statsboolНет

Ответ

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


get_audit_logs Internal Link

Parameters

ИмяТипОбязательноОписание
tenant_idStringДа
limitf64Нет
skipf64Нет
ordermodels::SortDirНет
afterf64Нет
beforef64Нет

Ответ

Возвращает: 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

block_from_comment_public Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
comment_idStringДа
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsДа
ssoStringНет

Ответ

Возвращает: 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

un_block_comment_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsДа
ssoStringНет

Ответ

Возвращает: 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

checked_comments_for_blocked Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringYes
comment_idsStringYes
ssoStringNo

Ответ

Возвращает: 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

block_user_from_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
block_from_comment_paramsmodels::BlockFromCommentParamsДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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

create_comment_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
url_idStringДа
broadcast_idStringДа
comment_datamodels::CommentDataДа
session_idStringНет
ssoStringНет

Ответ

Возвращает: 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

delete_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
context_user_idStringНет
is_liveboolНет

Ответ

Возвращает: 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

delete_comment_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
edit_keyStringНет
ssoStringНет

Ответ

Возвращает: 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

delete_comment_vote Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
vote_idStringДа
url_idStringДа
broadcast_idStringДа
edit_keyStringНет
ssoStringНет

Ответ

Возвращает: 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

flag_comment Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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

get_comment Internal Link

Параметры

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

Ответ

Возвращает: 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

get_comment_text Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
edit_keyStringНет
ssoStringНет

Ответ

Возвращает: 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

get_comment_vote_user_names Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
diri32Да
ssoStringНет

Ответ

Возвращает: 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

get_comments Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringДа
pagei32Нет
limiti32Нет
skipi32Нет
as_treeboolНет
skip_childreni32Нет
limit_childreni32Нет
max_tree_depthi32Нет
url_idStringНет
user_idStringНет
anon_user_idStringНет
context_user_idStringНет
hash_tagStringНет
parent_idStringНет
directionmodels::SortDirectionsНет

Response

Возвращает: 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

get_comments_public Internal Link

req tenantId urlId

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_idStringДа
pagei32Нет
directionmodels::SortDirectionsНет
ssoStringНет
skipi32Нет
skip_childreni32Нет
limiti32Нет
limit_childreni32Нет
count_childrenboolНет
fetch_page_for_comment_idStringНет
include_configboolНет
count_allboolНет
includei10nboolНет
localeStringНет
modulesStringНет
is_crawlerboolНет
include_notification_countboolНет
as_treeboolНет
max_tree_depthi32Нет
use_full_translation_idsboolНет
parent_idStringНет
search_textStringНет
hash_tagsVecНет
user_idStringНет
custom_config_strStringНет
after_comment_idStringНет
before_comment_idStringНет

Ответ

Возвращает: 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

lock_comment Internal Link


Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
ssoStringНет

Ответ

Возвращает: 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

pin_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
ssoStringНет

Ответ

Возвращает: 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

save_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_comment_paramsmodels::CreateCommentParamsДа
is_liveboolНет
do_spam_checkboolНет
send_emailsboolНет
populate_notificationsboolНет

Ответ

Возвращает: 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

save_comments_bulk Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_comment_paramsVecmodels::CreateCommentParamsДа
is_liveboolНет
do_spam_checkboolНет
send_emailsboolНет
populate_notificationsboolНет

Ответ

Возвращает: 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

set_comment_text Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
comment_text_update_requestmodels::CommentTextUpdateRequestДа
edit_keyStringНет
ssoStringНет

Ответ

Возвращает: 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

un_block_user_from_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
un_block_from_comment_paramsmodels::UnBlockFromCommentParamsДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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

un_flag_comment Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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

un_lock_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
ssoStringНет

Ответ

Возвращает: 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

un_pin_comment Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
comment_idStringДа
broadcast_idStringДа
ssoStringНет

Ответ

Возвращает: 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

update_comment Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
updatable_comment_paramsmodels::UpdatableCommentParamsДа
context_user_idStringНет
do_spam_checkboolНет
is_liveboolНет

Ответ

Возвращает: 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

vote_comment Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
url_idStringДа
broadcast_idStringДа
vote_body_paramsmodels::VoteBodyParamsДа
session_idStringНет
ssoStringНет

Ответ

Возвращает: 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

add_domain_config Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
add_domain_config_paramsmodels::AddDomainConfigParamsДа

Ответ

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


delete_domain_config Internal Link

Параметры

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

Ответ

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


get_domain_config Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
domainStringДа

Ответ

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


get_domain_configs Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа

Ответ

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


patch_domain_config Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
domain_to_updateStringДа
patch_domain_config_paramsmodels::PatchDomainConfigParamsДа

Ответ

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


put_domain_config Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
domain_to_updateStringДа
update_domain_config_paramsmodels::UpdateDomainConfigParamsДа

Ответ

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


create_email_template Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_email_template_bodymodels::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

delete_email_template Internal Link

Параметры

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

Ответ

Возвращает: 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

delete_email_template_render_error Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
error_idStringДа

Ответ

Возвращает: 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

get_email_template Internal Link

Параметры

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

Ответ

Возвращает: 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

get_email_template_definitions Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringОбязательно

Ответ

Возвращает: 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

get_email_template_render_errors Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
idStringДа
skipf64Нет

Ответ

Возвращает: 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

get_email_templates Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
skipf64Нет

Ответ

Возвращает: 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

render_email_template Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
render_email_template_bodymodels::RenderEmailTemplateBodyДа
localeStringНет

Ответ

Возвращает: 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

update_email_template Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_email_template_bodymodels::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

get_event_log Internal Link

req tenantId urlId userIdWS

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
url_idStringДа
user_id_wsStringДа
start_timei64Да
end_timei64Да

Ответ

Возвращает: 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

get_global_event_log Internal Link

req tenantId urlId userIdWS

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_idStringДа
user_id_wsStringДа
start_timei64Да
end_timei64Да

Ответ

Возвращает: 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

create_feed_post Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_feed_post_paramsmodels::CreateFeedPostParamsДа
broadcast_idStringНет
is_liveboolНет
do_spam_checkboolНет
skip_dup_checkboolНет

Ответ

Возвращает: 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

create_feed_post_public Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
create_feed_post_paramsmodels::CreateFeedPostParamsДа
broadcast_idStringНет
ssoStringНет

Ответ

Возвращает: 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

delete_feed_post_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
post_idStringДа
broadcast_idStringНет
ssoStringНет

Ответ

Возвращает: 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

get_feed_posts Internal Link

req tenantId afterId

Параметры

NameTypeRequiredDescription
tenant_idStringДа
after_idStringНет
limiti32Нет
tagsVecНет

Ответ

Возвращает: 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

get_feed_posts_public Internal Link


req tenantId afterId

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
after_idStringНет
limiti32Нет
tagsVecНет
ssoStringНет
is_crawlerboolНет
include_user_infoboolНет

Ответ

Возвращает: 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

get_feed_posts_stats Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
post_idsVecДа
ssoStringНет

Ответ

Возвращает: 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

get_user_reacts_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
post_idsVecНет
ssoStringНет

Ответ

Возвращает: 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

react_feed_post_public Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
post_idStringДа
react_body_paramsmodels::ReactBodyParamsДа
is_undoboolНет
broadcast_idStringНет
ssoStringНет

Ответ

Возвращает: 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

update_feed_post Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа
feed_postmodels::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

update_feed_post_public Internal Link

Параметры

NameTypeОбязательноОписание
tenant_idStringДа
post_idStringДа
update_feed_post_paramsmodels::UpdateFeedPostParamsДа
broadcast_idStringНет
ssoStringНет

Ответ

Возвращает: 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

flag_comment_public Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringДа
is_flaggedboolДа
ssoStringНет

Ответ

Возвращает: 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

add_hash_tag Internal Link

Parameters

ИмяТипОбязательноОписание
tenant_idStringНет
create_hash_tag_bodymodels::CreateHashTagBodyНет

Response

Возвращает: 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

add_hash_tags_bulk Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringНет
bulk_create_hash_tags_bodymodels::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

delete_hash_tag Internal Link

Параметры

NameTypeRequiredDescription
tagStringДа
tenant_idStringНет
delete_hash_tag_requestmodels::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

get_hash_tags Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
pagef64Нет

Ответ

Возвращает: 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

patch_hash_tag Internal Link

Параметры

ИмяТипОбязательноОписание
tagStringДа
tenant_idStringНет
update_hash_tag_bodymodels::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

create_moderator Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_moderator_bodymodels::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

delete_moderator Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
send_emailStringНет

Ответ

Возвращает: 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

get_moderator Internal Link


Параметры

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

Ответ

Возвращает: 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

get_moderators Internal Link

Параметры

ИмяTypeОбязательноОписание
tenant_idStringДа
skipf64Нет

Ответ

Возвращает: 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

send_invite Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
from_nameStringДа

Ответ

Возвращает: 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

update_moderator Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_moderator_bodymodels::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

delete_notification_count Internal Link

Параметры

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

Ответ

Возвращает: 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

get_cached_notification_count Internal Link


Параметры

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

Ответ

Возвращает: 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

get_notification_count Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
user_idStringНет
url_idStringНет
from_comment_idStringНет
viewedboolНет

Ответ

Возвращает: 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

get_notifications Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
user_idStringНет
url_idStringНет
from_comment_idStringНет
viewedboolНет
skipf64Нет

Ответ

Возвращает: 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

update_notification Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_notification_bodymodels::UpdateNotificationBodyДа
user_idStringНет

Ответ

Возвращает: 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

add_page Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_api_page_datamodels::CreateApiPageDataДа

Ответ

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


delete_page Internal Link


Параметры

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

Ответ

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


get_page_by_urlid Internal Link

Параметры

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

Ответ

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

get_pages Internal Link


Параметры

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

Ответ

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


patch_page Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_api_page_datamodels::UpdateApiPageDataДа

Ответ

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


delete_pending_webhook_event Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

get_pending_webhook_event_count Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
comment_idStringНет
external_idStringНет
event_typeStringНет
domainStringНет
attempt_count_gtf64Нет

Ответ

Возвращает: 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

get_pending_webhook_events Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
comment_idStringНет
external_idStringНет
event_typeStringНет
domainStringНет
attempt_count_gtf64Нет
skipf64Нет

Ответ

Возвращает: 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

create_question_config Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_question_config_bodymodels::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

delete_question_config Internal Link


Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

get_question_config Internal Link

Параметры

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

Ответ

Возвращает: 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

get_question_configs Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
skipf64Нет

Ответ

Возвращает: 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

update_question_config Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_question_config_bodymodels::UpdateQuestionConfigBodyДа

Ответ

Возвращает: 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

create_question_result Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_question_result_bodymodels::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

delete_question_result Internal Link


Параметры

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

Ответ

Возвращает: 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

get_question_result Internal Link

Параметры

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

Ответ

Возвращает: 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

get_question_results Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
url_idStringНет
user_idStringНет
start_dateStringНет
question_idStringНет
question_idsStringНет
skipf64Нет

Ответ

Возвращает: 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

update_question_result Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_question_result_bodymodels::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

aggregate_question_results Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
question_idStringНет
question_idsVecНет
url_idStringНет
time_bucketmodels::AggregateTimeBucketНет
start_dateStringНет
force_recalculateboolНет

Ответ

Возвращает: 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

bulk_aggregate_question_results Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
bulk_aggregate_question_results_requestmodels::BulkAggregateQuestionResultsRequestДа
force_recalculateboolНет

Ответ

Возвращает: 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

combine_comments_with_question_results Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
question_idStringНет
question_idsVecНет
url_idStringНет
start_dateStringНет
force_recalculateboolНет
min_valuef64Нет
max_valuef64Нет
limitf64Нет

Ответ

Возвращает: 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

add_sso_user Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_apisso_user_datamodels::CreateApissoUserDataДа

Ответ

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


delete_sso_user Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringYes
idStringYes
delete_commentsboolNo
comment_delete_modeStringNo

Ответ

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


get_sso_user_by_email Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
emailStringДа

Ответ

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


get_sso_user_by_id Internal Link

Параметры

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

Ответ

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


get_sso_users Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
skipi32Нет

Ответ

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

patch_sso_user Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_apisso_user_datamodels::UpdateApissoUserDataДа
update_commentsboolНет

Ответ

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


put_sso_user Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_apisso_user_datamodels::UpdateApissoUserDataДа
update_commentsboolНет

Ответ

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


create_subscription Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
create_api_user_subscription_datamodels::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

delete_subscription Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
user_idStringНет

Ответ

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


get_subscriptions Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
user_idStringНет

Ответ

Возвращает: 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

update_subscription Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_api_user_subscription_datamodels::UpdateApiUserSubscriptionDataДа
user_idStringНет

Ответ

Возвращает: 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

get_tenant_daily_usages Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
year_numberf64Нет
month_numberf64Нет
day_numberf64Нет
skipf64Нет

Ответ

Возвращает: 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

create_tenant_package Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
create_tenant_package_bodymodels::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

delete_tenant_package Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

get_tenant_package Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Возвращает: 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

get_tenant_packages Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
skipf64Нет

Ответ

Возвращает: 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

replace_tenant_package Internal Link


Параметры

НазваниеТипОбязательноОписание
tenant_idStringДа
idStringДа
replace_tenant_package_bodymodels::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

update_tenant_package Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_tenant_package_bodymodels::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

create_tenant_user Internal Link


Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
create_tenant_user_bodymodels::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

delete_tenant_user Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа
delete_commentsStringНет
comment_delete_modeStringНет

Ответ

Возвращает: 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

get_tenant_user Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringYes
idStringYes

Ответ

Возвращает: 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

get_tenant_users Internal Link

Параметры

NameТипОбязательноОписание
tenant_idStringДа
skipf64Нет

Ответ

Возвращает: 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

replace_tenant_user Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
idStringДа
replace_tenant_user_bodymodels::ReplaceTenantUserBodyДа
update_commentsStringНет

Ответ

Возвращает: 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

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа
redirect_urlStringНет

Ответ

Возвращает: 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

update_tenant_user Internal Link

Параметры

NameTypeОбязательноDescription
tenant_idStringДа
idStringДа
update_tenant_user_bodymodels::UpdateTenantUserBodyДа
update_commentsStringНет

Ответ

Возвращает: 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

create_tenant Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringYes
create_tenant_bodymodels::CreateTenantBodyYes

Ответ

Возвращает: 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

delete_tenant Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
sureStringНет

Ответ

Возвращает: 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

get_tenant Internal Link

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

get_tenants Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringYes
metaStringNo
skipf64No

Ответ

Возвращает: 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

update_tenant Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
update_tenant_bodymodels::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

change_ticket_state Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
user_idStringДа
idStringДа
change_ticket_state_bodymodels::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

create_ticket Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
user_idStringДа
create_ticket_bodymodels::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

get_ticket Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
idStringДа
user_idStringНет

Ответ

Возвращает: 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

get_tickets Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
user_idStringНет
statef64Нет
skipf64Нет
limitf64Нет

Ответ

Возвращает: 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

upload_image Internal Link

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

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
filestd::path::PathBufДа
size_presetmodels::SizePresetНет
url_idStringНет

Ответ

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

get_user_badge_progress_by_id Internal Link

Параметры

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

Ответ

Возвращает: 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

get_user_badge_progress_by_user_id Internal Link


Параметры

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

Ответ

Возвращает: 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

get_user_badge_progress_list Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
user_idStringНет
limitf64Нет
skipf64Нет

Ответ

Возвращает: 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

create_user_badge Internal Link


Параметры

NameTypeRequiredDescription
tenant_idStringДа
create_user_badge_paramsmodels::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

delete_user_badge Internal Link

Параметры

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

Ответ

Возвращает: 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

get_user_badge Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

get_user_badges Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
user_idStringНет
badge_idStringНет
displayed_on_commentsboolНет
limitf64Нет
skipf64Нет

Ответ

Возвращает: 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

update_user_badge Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа
update_user_badge_paramsmodels::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

get_user_notification_count Internal Link

Параметры

NameTypeОбязательныйОписание
tenant_idStringДа
ssoStringНет

Ответ

Возвращает: 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

get_user_notifications Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringYes
page_sizei32No
after_idStringNo
include_contextboolNo
after_created_ati64No
unread_onlyboolNo
dm_onlyboolNo
no_dmboolNo
include_translationsboolNo
ssoStringNo

Ответ

Возвращает: 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

reset_user_notification_count Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringДа
ssoStringНет

Ответ

Возвращает: 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

reset_user_notifications Internal Link


Параметры

NameТипОбязательноОписание
tenant_idStringДа
after_idStringНет
after_created_ati64Нет
unread_onlyboolНет
dm_onlyboolНет
no_dmboolНет
ssoStringНет

Ответ

Возвращает: 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

update_user_notification_comment_subscription_status Internal Link


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

Параметры

ИмяТипОбязательныйОписание
tenant_idStringДа
notification_idStringДа
opted_in_or_outStringДа
comment_idStringДа
ssoStringНет

Ответ

Возвращает: 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

update_user_notification_page_subscription_status Internal Link

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

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_idStringДа
urlStringДа
page_titleStringДа
subscribed_or_unsubscribedStringДа
ssoStringНет

Ответ

Возвращает: 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

update_user_notification_status Internal Link

Параметры

NameTypeОбязательноОписание
tenant_idStringДа
notification_idStringДа
new_statusStringДа
ssoStringНет

Ответ

Возвращает: 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

get_user_presence_statuses Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_id_wsStringДа
user_idsStringДа

Ответ

Возвращает: 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

search_users Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_idStringДа
username_starts_withStringНет
mention_group_idsVecНет
ssoStringНет
search_sectionStringНет

Ответ

Возвращает: 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

get_user Internal Link


Параметры

NameTypeRequiredDescription
tenant_idStringДа
idStringДа

Ответ

Возвращает: 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

create_vote Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
comment_idStringДа
directionStringДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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

delete_vote Internal Link

Параметры

ИмяТипОбязательноОписание
tenant_idStringYes
idStringYes
edit_keyStringNo

Ответ

Возвращает: 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

get_votes Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes

Ответ

Возвращает: 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

get_votes_for_user Internal Link

Параметры

NameTypeRequiredDescription
tenant_idStringДа
url_idStringДа
user_idStringНет
anon_user_idStringНет

Ответ

Возвращает: 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 для инструкций по участию.