FastComments.com

FastComments Rust SDK


Это официальный 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"] }
  2. Используйте runtime tokio:

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

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

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

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

агрегация Internal Link

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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметри

Назва Тип Обов'язково Опис
tenant_id String Так
comment_id String Так
public_block_from_comment_params models::PublicBlockFromCommentParams Так
sso String Ні

Відповідь

Повертає: BlockFromCommentPublic200Response


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
page i32 Нет
limit i32 Нет
skip i32 Нет
as_tree bool Нет
skip_children i32 Нет
limit_children i32 Нет
max_tree_depth i32 Нет
url_id String Нет
user_id String Нет
anon_user_id String Нет
context_user_id String Нет
hash_tag String Нет
parent_id String Нет
direction models::SortDirections Нет

Ответ

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


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

req tenantId urlId

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
url_id String Да
page i32 Нет
direction models::SortDirections Нет
sso String Нет
skip i32 Нет
skip_children i32 Нет
limit i32 Нет
limit_children i32 Нет
count_children bool Нет
fetch_page_for_comment_id String Нет
include_config bool Нет
count_all bool Нет
includei10n bool Нет
locale String Нет
modules String Нет
is_crawler bool Нет
include_notification_count bool Нет
as_tree bool Нет
max_tree_depth i32 Нет
use_full_translation_ids bool Нет
parent_id String Нет
search_text String Нет
hash_tags Vec Нет
user_id String Нет
custom_config_str String Нет
after_comment_id String Нет
before_comment_id String Нет

Ответ

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

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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


снять пометку с комментария Internal Link


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

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

Параметры

Name Type Required Description
tenant_id String Да
id String Да
body models::PickApiCommentPeriodUpdatableCommentFields Да
context_user_id String Нет
do_spam_check bool Нет
is_live bool Нет

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

Name Type Required Description
tenant_id String Да

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

Name Type Required Description
tenant_id String Да
domain_to_update String Да
update_domain_config_params models::UpdateDomainConfigParams Да

Ответ

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


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

Параметры

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

Ответ

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

Пример

Пример create_email_template
Copy Copy
1
2let params: CreateEmailTemplateParams = CreateEmailTemplateParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_email_template_body: models::CreateEmailTemplateBody {
5 name: "New Comment Notification".to_string(),
6 subject: "New comment on your article".to_string(),
7 html_body: "<p>A new comment was posted on <strong>{article_title}</strong>.</p>".to_string(),
8 text_body: Some("A new comment was posted on {article_title}.".to_string()),
9 from_email: Some("no-reply@acme-news.com".to_string()),
10 enabled: Some(true),
11 },
12};
13let response: CreateEmailTemplate200Response = create_email_template(&configuration, params).await?;
14

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример delete_email_template_render_error
Copy Copy
1
2async fn delete_email_template_render_error_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteEmailTemplateRenderErrorParams = DeleteEmailTemplateRenderErrorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "marketing/newsletter/welcome-email".to_string(),
6 error_id: "render-err-2026-01-12-01".to_string(),
7 };
8 let response: FlagCommentPublic200Response = delete_email_template_render_error(configuration, params).await?;
9 Ok(response)
10}
11

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

Параметры

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

Ответ

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

Пример

Пример get_email_template
Copy Copy
1
2async fn fetch_template() -> Result<GetEmailTemplate200Response, Error> {
3 let params: GetEmailTemplateParams = GetEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 };
7 let template: GetEmailTemplate200Response = get_email_template(&configuration, params).await?;
8 Ok(template)
9}
10

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


Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

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

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


Параметры

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

Ответ

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

Пример

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

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

Параметры

Имя Тип Обязательно Описание
tenant_id String Да
render_email_template_body models::RenderEmailTemplateBody Да
locale String Нет

Ответ

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

Пример

Пример render_email_template
Copy Copy
1
2let params: RenderEmailTemplateParams = RenderEmailTemplateParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 render_email_template_body: models::RenderEmailTemplateBody {
5 template_id: "comment-notification".to_string(),
6 subject: Some("New comment on your article".to_string()),
7 placeholders: std::collections::HashMap::from([
8 ("article_title".to_string(), "Rust Gains Momentum in 2026".to_string()),
9 ("comment_author".to_string(), "Jane Doe".to_string()),
10 ("comment_snippet".to_string(), "Great insights — thanks for sharing!".to_string()),
11 ]),
12 },
13 locale: Some("en-US".to_string()),
14};
15let rendered: RenderEmailTemplate200Response = render_email_template(&configuration, params).await?;
16

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


Параметры

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

Ответ

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

Пример

Пример update_email_template
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UpdateEmailTemplateParams = UpdateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-template-001".to_string(),
6 update_email_template_body: models::UpdateEmailTemplateBody {
7 name: Some("Welcome Template".to_string()),
8 subject: Some("Welcome to Acme News".to_string()),
9 body_html: Some("<p>Hi , welcome to Acme News!</p>".to_string()),
10 from_address: Some("no-reply@acme-news.com".to_string()),
11 reply_to: Some("support@acme-news.com".to_string()),
12 enabled: Some(true),
13 language: Some("en-US".to_string()),
14 custom_config: Some(models::CustomConfigParameters {
15 tracking_pixel_url: Some("https://acme-news.com/pixel".to_string()),
16 }),
17 },
18 };
19
20 let response: FlagCommentPublic200Response = update_email_template(&configuration, params).await?;
21 let _ = response;
22 Ok(())
23}
24

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

req tenantId urlId userIdWS

Параметры

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

Ответ

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

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

req tenantId urlId userIdWS

Параметры

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

Ответ

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

создать запись ленты Internal Link

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


удалить публичную запись ленты Internal Link


Параметры

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

Ответ

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


получить записи ленты Internal Link

req tenantId afterId

Параметры

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

Ответ

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


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

req tenantId afterId

Параметры

Название Тип Обязательно Описание
tenant_id String Yes
after_id String No
limit i32 No
tags Vec No
sso String No
is_crawler bool No
include_user_info bool No

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

обновить запись ленты Internal Link


Параметры

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

Ответ

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


обновить публичную запись ленты Internal Link


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

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


Параметры

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

Ответ

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

Пример

Пример add_hash_tag
Copy Copy
1
2async fn run_add_hash_tag(configuration: &configuration::Configuration) -> Result<(), Error> {
3 let params: AddHashTagParams = AddHashTagParams {
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 create_hash_tag_body: Some(models::CreateHashTagBody {
6 tag: "breaking-news".to_string(),
7 label: Some("Breaking News".to_string()),
8 visible: Some(true),
9 }),
10 };
11
12 let created: AddHashTag200Response = add_hash_tag(configuration, params).await?;
13 println!("{:#?}", created);
14 Ok(())
15}
16

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

Параметры

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

Ответ

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

Пример

Пример add_hash_tags_bulk
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: AddHashTagsBulkParams = AddHashTagsBulkParams {
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 bulk_create_hash_tags_body: Some(models::BulkCreateHashTagsBody {
6 tags: vec![
7 models::BulkCreateHashTagsBodyTagsInner {
8 name: "news/article".to_string(),
9 path: "news/article".to_string(),
10 description: Some("Article tag for front page".to_string()),
11 enabled: Some(true),
12 },
13 ],
14 }),
15 };
16
17 let response: AddHashTagsBulk200Response = add_hash_tags_bulk(&configuration, params).await?;
18 Ok(())
19}
20

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

Параметры

Name Type Required Description
tag String Да
tenant_id String Нет
delete_hash_tag_request models::DeleteHashTagRequest Нет

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

Имя Тип Обязательно Описание
tag String Да
tenant_id String Нет
update_hash_tag_body models::UpdateHashTagBody Нет

Ответ

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

Пример

Пример patch_hash_tag
Copy Copy
1
2async fn run_patch_hash_tag() -> Result<PatchHashTag200Response, Error> {
3 let params: PatchHashTagParams = PatchHashTagParams {
4 tag: "breaking-news".to_string(),
5 tenant_id: Some("acme-corp-tenant".to_string()),
6 update_hash_tag_body: Some(models::UpdateHashTagBody {
7 name: "Breaking News".to_string(),
8 description: "Posts about breaking news and urgent updates".to_string(),
9 synonyms: vec!["breaking".to_string(), "urgent".to_string()],
10 is_active: true,
11 }),
12 };
13 let response: PatchHashTag200Response = patch_hash_tag(&configuration, params).await?;
14 Ok(response)
15}
16

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

Параметры

Name Type Required Description
tenant_id String Да
create_moderator_body models::CreateModeratorBody Да

Ответ

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

Пример

Пример create_moderator
Copy Copy
1
2async fn run_create_moderator() -> Result<(), Error> {
3 let params: CreateModeratorParams = CreateModeratorParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 create_moderator_body: models::CreateModeratorBody {
6 email: "jane.doe@acme.com".to_owned(),
7 display_name: "Jane Doe".to_owned(),
8 role: Some("moderator".to_owned()),
9 active: Some(true),
10 notes: Some("Handles product and support forums".to_owned()),
11 permissions: Some(vec!["approve_comment".to_owned(), "delete_comment".to_owned()]),
12 },
13 };
14
15 let _response: CreateModerator200Response = create_moderator(&configuration, params).await?;
16 Ok(())
17}
18

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


Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример send_invite
Copy Copy
1
2let params: SendInviteParams = SendInviteParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "articles/2026/01/ai-news-12345".to_string(),
5 from_name: "Acme Newsroom".to_string(),
6 reply_to: Some("editorial@acme.com".to_string()),
7 message: Some("You have been invited to moderate comments on this article.".to_string()),
8};
9
10let invite_response: FlagCommentPublic200Response = send_invite(&configuration, params).await?;
11

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


Параметры

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

Ответ

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

Пример

Пример update_moderator
Copy Copy
1
2let params: UpdateModeratorParams = UpdateModeratorParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "moderator-12345".to_string(),
5 update_moderator_body: models::UpdateModeratorBody {
6 username: "jane.doe".to_string(),
7 display_name: Some("Jane Doe".to_string()),
8 email: Some("jane.doe@acme.com".to_string()),
9 is_active: Some(true),
10 permissions: Some(vec!["moderate_comments".to_string(), "view_reports".to_string()]),
11 },
12};
13let response: FlagCommentPublic200Response = update_moderator(&configuration, params).await?;
14

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

Параметры

Name Type Required Description
tenant_id String Yes
id String Yes

Ответ

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

Пример

Пример delete_notification_count
Copy Copy
1
2async fn run_delete_notification_count(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteNotificationCountParams = DeleteNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "notification-9f8b7a6".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_notification_count(configuration, params).await?;
8 Ok(response)
9}
10

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример get_notification_count
Copy Copy
1
2async fn example_get_notification_count() -> Result<GetNotificationCount200Response, Error> {
3 let params: GetNotificationCountParams = GetNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 user_id: Some(String::from("user-12345")),
6 url_id: Some(String::from("news/article/2026/product-launch")),
7 from_comment_id: Some(String::from("cmt-000987")),
8 viewed: Some(false),
9 };
10 let response: GetNotificationCount200Response = get_notification_count(&configuration, params).await?;
11 Ok(response)
12}
13

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

Параметры

Name Type Required Description
tenant_id String Да
user_id String Нет
url_id String Нет
from_comment_id String Нет
viewed bool Нет
skip f64 Нет

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример update_notification
Copy Copy
1
2pub async fn run_update_notification(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateNotificationParams = UpdateNotificationParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "notification-67890".to_string(),
6 update_notification_body: models::UpdateNotificationBody {
7 title: Some("Flag Review Complete".to_string()),
8 message: Some("A moderator reviewed the flagged comment and marked it resolved.".to_string()),
9 resolved: Some(true),
10 channels: Some(vec!["email".to_string(), "in_app".to_string()]),
11 },
12 user_id: Some("moderator-007".to_string()),
13 };
14 let response: FlagCommentPublic200Response = update_notification(configuration, params).await?;
15 Ok(response)
16}
17

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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


получить страницу по URLID Internal Link

Параметры

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

Ответ

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

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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

Пример

Пример delete_pending_webhook_event
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let event_id_opt: Option<String> = Some("webhook-event/news-article-2026-01-10-1234".to_string());
4 let event_id: String = event_id_opt.unwrap();
5 let params: DeletePendingWebhookEventParams = DeletePendingWebhookEventParams {
6 tenant_id: "acme-corp-tenant".to_string(),
7 id: event_id,
8 };
9 let response: FlagCommentPublic200Response = delete_pending_webhook_event(&configuration, params).await?;
10 Ok(response)
11}
12

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

Параметры

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

Ответ

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

Пример

get_pending_webhook_event_count Пример
Copy Copy
1
2async fn example() -> Result<GetPendingWebhookEventCount200Response, Error> {
3 let params: GetPendingWebhookEventCountParams = GetPendingWebhookEventCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: Some("cmt-12345".to_string()),
6 external_id: Some("news/article-98765".to_string()),
7 event_type: Some("comment.created".to_string()),
8 domain: Some("news.example.com".to_string()),
9 attempt_count_gt: Some(2.0),
10 };
11 let response: GetPendingWebhookEventCount200Response =
12 get_pending_webhook_event_count(&configuration, params).await?;
13 Ok(response)
14}
15

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

Параметры

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

Ответ

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

Пример

Пример get_pending_webhook_events
Copy Copy
1
2let params: GetPendingWebhookEventsParams = GetPendingWebhookEventsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 comment_id: Some("cmt-12345".to_string()),
5 external_id: Some("article-98765".to_string()),
6 event_type: Some("comment.create".to_string()),
7 domain: Some("news.example.com".to_string()),
8 attempt_count_gt: Some(1.0),
9 skip: Some(0.0),
10};
11
12let pending: GetPendingWebhookEvents200Response = get_pending_webhook_events(&configuration, params).await?;
13

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


Параметры

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

Ответ

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

Пример

create_question_config Пример
Copy Copy
1
2let params: CreateQuestionConfigParams = CreateQuestionConfigParams {
3 tenant_id: String::from("acme-corp-tenant"),
4 create_question_config_body: models::CreateQuestionConfigBody {
5 key: String::from("article-usefulness"),
6 label: Some(String::from("Was this article useful?")),
7 description: Some(String::from("Help us improve by rating this article.")),
8 required: Some(true),
9 rendering_type: Some(models::QuestionRenderingType::MultipleChoice),
10 custom_options: Some(vec![
11 models::QuestionConfigCustomOptionsInner { value: String::from("1"), label: Some(String::from("Not useful")) },
12 models::QuestionConfigCustomOptionsInner { value: String::from("3"), label: Some(String::from("Somewhat useful")) },
13 models::QuestionConfigCustomOptionsInner { value: String::from("5"), label: Some(String::from("Very useful")) },
14 ]),
15 enabled: Some(true),
16 },
17};
18let response: CreateQuestionConfig200Response = create_question_config(configuration, params).await?;
19

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

Параметры

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

Ответ

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

Пример

Пример delete_question_config
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteQuestionConfigParams = DeleteQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-comments-config-2025".to_string(),
6 force: Some(true),
7 };
8 let response: FlagCommentPublic200Response = delete_question_config(&configuration, params).await?;
9 Ok(())
10}
11

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

Параметры

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

Ответ

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

Пример

Пример get_question_config
Copy Copy
1
2async fn fetch_question_config() -> Result<(), Error> {
3 let tenant_env: Option<&str> = Some("prod");
4 let tenant_id: String = match tenant_env {
5 Some(env) => format!("acme-corp-tenant-{}", env),
6 None => "acme-corp-tenant".to_string(),
7 };
8 let params: GetQuestionConfigParams = GetQuestionConfigParams {
9 tenant_id,
10 id: "news/article/2026/01/12-politics".to_string(),
11 };
12 let response: GetQuestionConfig200Response = get_question_config(&configuration, params).await?;
13 let _status: ApiStatus = response.0;
14 Ok(())
15}
16

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

Параметры

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

Ответ

Возвращает: 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 let _cfgs: GetQuestionConfigs200Response = response;
9 Ok(())
10}
11

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

Параметры

Name Type Required Description
tenant_id String Да
id String Да
update_question_config_body models::UpdateQuestionConfigBody Да

Ответ

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

Пример

Пример update_question_config
Copy Copy
1
2async fn run_update() -> Result<(), Error> {
3 let params: UpdateQuestionConfigParams = UpdateQuestionConfigParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article-2026-01-12"),
6 update_question_config_body: models::UpdateQuestionConfigBody {
7 question_text: String::from("Did you find this reporting accurate?"),
8 required: Some(true),
9 rendering_type: Some(models::QuestionRenderingType::Inline),
10 options: Some(vec![
11 models::QuestionConfigCustomOptionsInner { id: String::from("opt-yes"), label: String::from("Yes"), value: String::from("yes") },
12 models::QuestionConfigCustomOptionsInner { id: String::from("opt-no"), label: String::from("No"), value: String::from("no") },
13 ]),
14 when_save: Some(models::QuestionWhenSave::OnSubmit),
15 },
16 };
17 let response: FlagCommentPublic200Response = update_question_config(&configuration, params).await?;
18 Ok(())
19}
20

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


Параметры

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

Ответ

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

Пример

Пример create_question_result
Copy Copy
1
2async fn run() -> 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: "feedback-article-2026".to_string(),
7 comment_id: Some("cmt-2026-001".to_string()),
8 user_id: Some("reader-007".to_string()),
9 answer: "yes".to_string(),
10 score: Some(4),
11 metadata: Some(std::collections::HashMap::from([(
12 "path".to_string(),
13 "news/politics/2026-election".to_string(),
14 )])),
15 anonymous: Some(false),
16 submitted_at: Some("2026-01-12T09:15:00Z".to_string()),
17 },
18 };
19
20 let created: CreateQuestionResult200Response = create_question_result(&configuration, params).await?;
21 Ok(())
22}
23

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

Параметры

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

Ответ

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

Пример

Пример delete_question_result
Copy Copy
1
2async fn run_delete() -> Result<(), Error> {
3 let params: DeleteQuestionResultParams = DeleteQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article/12345/question/67890".to_string(),
6 dry_run: Some(false),
7 request_id: Some("req-20260112-7a3b".to_string()),
8 };
9 let response: FlagCommentPublic200Response = delete_question_result(&configuration, params).await?;
10 Ok(())
11}
12

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример get_question_results
Copy Copy
1
2async fn example_get_question_results() -> Result<(), Error> {
3 let params = GetQuestionResultsParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: Some(String::from("news/article/2026/01/12/breaking")),
6 user_id: Some(String::from("user-98765")),
7 start_date: Some(String::from("2025-12-01")),
8 question_id: Some(String::from("q-42")),
9 question_ids: Some(String::from("q-42,q-43")),
10 skip: Some(10.0),
11 };
12 let results: GetQuestionResults200Response = get_question_results(&configuration, params).await?;
13 Ok(())
14}
15

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

Параметры

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

Ответ

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

Пример

Пример update_question_result
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let body: models::UpdateQuestionResultBody = models::UpdateQuestionResultBody {
4 question_id: "q-12345".to_string(),
5 result: true,
6 comment: Some("Marked by moderator after review".to_string()),
7 };
8
9 let params: UpdateQuestionResultParams = UpdateQuestionResultParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 id: "news/article/98765".to_string(),
12 update_question_result_body: body,
13 };
14
15 let response: FlagCommentPublic200Response = update_question_result(&configuration, params).await?;
16 println!("{:#?}", response);
17 Ok(())
18}
19

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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

Имя Тип Обязательный Описание
tenant_id String Yes
id String Yes
delete_comments bool No
comment_delete_mode String No

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример create_tenant_package
Copy Copy
1
2async fn run_create_package() -> 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 News Package".to_string(),
7 description: Some("Moderated comments for Acme News articles".to_string()),
8 plan: Some("standard".to_string()),
9 allow_gifs: Some(true),
10 gif_rating: Some(GifRating::GeneralAudience),
11 image_content_profanity_level: Some(ImageContentProfanityLevel::Moderate),
12 sso_security_level: Some(SsoSecurityLevel::Strict),
13 custom_config: Some(CustomConfigParameters {
14 max_comment_length: Some(1000),
15 require_moderation: Some(true),
16 }),
17 },
18 };
19 let response: CreateTenantPackage200Response = create_tenant_package(&configuration, params).await?;
20 let _package: TenantPackage = response.0;
21 Ok(())
22}
23

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

Параметры

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

Ответ

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

Пример

Пример delete_tenant_package
Copy Copy
1
2let params: DeleteTenantPackageParams = DeleteTenantPackageParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "pkg-news-comments-2025-01".to_string(),
5 cascade: Some(true),
6};
7let response: FlagCommentPublic200Response = delete_tenant_package(&configuration, params).await?;
8

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

Имя Тип Обязательный Описание
tenant_id String Yes
id String Yes
replace_tenant_package_body models::ReplaceTenantPackageBody Yes

Ответ

Возвращает: 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: "package-basic-2026".to_string(),
6 replace_tenant_package_body: models::ReplaceTenantPackageBody {
7 name: "Moderation Basic".to_string(),
8 description: Some("Standard moderation package for news sites".to_string()),
9 enabled: Some(true),
10 plan: Some("standard".to_string()),
11 custom_config_parameters: Some(models::CustomConfigParameters {
12 max_comment_length: Some(1000),
13 allow_images: Some(true),
14 }),
15 vote_style: Some(models::VoteStyle::Thumbs),
16 },
17 };
18 let response = replace_tenant_package(&configuration, params).await?;
19 Ok(response)
20}
21

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


Параметры

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

Ответ

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

Пример

Пример update_tenant_package
Copy Copy
1
2async fn example_update_tenant_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantPackageParams = UpdateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "pro-plan-2026".to_string(),
6 update_tenant_package_body: models::UpdateTenantPackageBody {
7 name: Some("Pro Plan".to_string()),
8 description: Some("Priority support, custom branding, and advanced moderation tools".to_string()),
9 enabled: Some(true),
10 monthly_price_cents: Some(1999),
11 features: Some(vec![
12 "priority_support".to_string(),
13 "custom_branding".to_string(),
14 "advanced_moderation".to_string(),
15 ]),
16 },
17 };
18
19 let response: FlagCommentPublic200Response = update_tenant_package(&configuration, params).await?;
20 Ok(response)
21}
22

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

Параметры

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

Ответ

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

Пример

Пример create_tenant_user
Copy Copy
1
2let create_tenant_user_body: models::CreateTenantUserBody = models::CreateTenantUserBody {
3 email: "jane.doe@acme.com".to_string(),
4 display_name: Some("Jane Doe".to_string()),
5 role: Some("moderator".to_string()),
6 external_id: Some("acme-12345".to_string()),
7 subscribed_to_digest: Some(false),
8};
9let params: CreateTenantUserParams = CreateTenantUserParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 create_tenant_user_body,
12};
13let response: CreateTenantUser200Response = create_tenant_user(&configuration, params).await?;
14

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

Возвращает: 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-7a3f2b".to_string(),
6 };
7 let include_related: Option<String> = Some("roles,preferences".to_string());
8 let response: GetTenantUser200Response = get_tenant_user(&configuration, params).await?;
9 Ok(())
10}
11

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

Параметры

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

Ответ

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

Пример

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

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


Параметры

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

Ответ

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

Пример

Пример replace_tenant_user
Copy Copy
1
2let cfg: &configuration::Configuration = &configuration;
3let replace_tenant_user_body: models::ReplaceTenantUserBody = models::ReplaceTenantUserBody {
4 external_id: Some("acct-834".to_string()),
5 email: Some("jane.doe@acme-news.com".to_string()),
6 display_name: Some("Jane Doe".to_string()),
7 role: Some("moderator".to_string()),
8};
9let params: ReplaceTenantUserParams = ReplaceTenantUserParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 id: "user-834".to_string(),
12 replace_tenant_user_body,
13 update_comments: Some("true".to_string()),
14};
15let resp: FlagCommentPublic200Response = replace_tenant_user(cfg, params).await?;
16

Параметры

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

Ответ

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

Пример

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

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

Параметры

Name Type Required Description
tenant_id String Да
id String Да
update_tenant_user_body models::UpdateTenantUserBody Да
update_comments String Нет

Ответ

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

Пример

Пример update_tenant_user
Copy Copy
1
2async fn update_user_example(configuration: &configuration::Configuration) -> Result<(), Error> {
3 let params: UpdateTenantUserParams = UpdateTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-78b2".to_string(),
6 update_tenant_user_body: models::UpdateTenantUserBody {
7 username: "jdoe".to_string(),
8 display_name: "John Doe".to_string(),
9 email: "john.doe@acme.com".to_string(),
10 roles: vec!["moderator".to_string()],
11 suspended: false,
12 },
13 update_comments: Some("Promoted to moderator for community moderation".to_string()),
14 };
15 let response: FlagCommentPublic200Response = update_tenant_user(configuration, params).await?;
16 println!("updated user response status: {:?}", response);
17 Ok(())
18}
19

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

Параметры

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

Ответ

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

Пример

Пример create_tenant
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantParams = CreateTenantParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 create_tenant_body: models::CreateTenantBody {
6 name: "Acme News".to_string(),
7 domain: Some("news.acme.com".to_string()),
8 api_domain_configuration: Some(models::ApiDomainConfiguration {
9 domain: "api.news.acme.com".to_string(),
10 enforce_https: true,
11 }),
12 billing_info: Some(models::BillingInfo {
13 contact_email: "billing@acme.com".to_string(),
14 plan_id: "pro_monthly".to_string(),
15 }),
16 imported_site_type: Some(models::ImportedSiteType::Articles),
17 ..Default::default()
18 },
19 };
20
21 let created: CreateTenant200Response = create_tenant(&configuration, params).await?;
22 Ok(())
23}
24

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

Параметры

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

Ответ

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

Пример

delete_tenant Пример
Copy Copy
1
2async fn example_delete_tenant() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantParams = DeleteTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345".to_string(),
6 sure: Some("confirm".to_string()),
7 };
8 let response: FlagCommentPublic200Response = delete_tenant(&configuration, params).await?;
9 Ok(response)
10}
11

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

Параметры

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

Ответ

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

Пример

get_tenant Пример
Copy Copy
1
2async fn run_get_tenant() -> Result<(), Error> {
3 let params: GetTenantParams = GetTenantParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article"),
6 };
7 let include_metadata: Option<bool> = Some(true);
8 let tenant_response: GetTenant200Response = get_tenant(&configuration, params).await?;
9 Ok(())
10}
11

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


Параметры

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

Ответ

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

Пример

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

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

Parameters

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

Response

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

Пример

update_tenant Пример
Copy Copy
1
2async fn run_update_tenant() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantParams = UpdateTenantParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 id: "site-42".to_owned(),
6 update_tenant_body: models::UpdateTenantBody {
7 name: Some("Acme Corporation".to_string()),
8 default_site: Some("news/article".to_string()),
9 allowed_origins: Some(vec![
10 "https://www.acme.com".to_string(),
11 "https://blog.acme.com".to_string(),
12 ]),
13 invite_only: Some(false),
14 api_domain_configuration: Some(ApiDomainConfiguration {
15 domain: "comments.acme.com".to_string(),
16 secure: Some(true),
17 ..Default::default()
18 }),
19 ..Default::default()
20 },
21 };
22 let response: FlagCommentPublic200Response = update_tenant(&configuration, params).await?;
23 Ok(response)
24}
25

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

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

Параметры

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

Ответ

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

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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

Name Type Required Description
tenant_id String Да
create_user_badge_params models::CreateUserBadgeParams Да

Ответ

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


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

Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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


Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

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

Параметры

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

Ответ

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


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

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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

Name Type Required Description
tenant_id String Да
url_id_ws String Да
user_ids String Да

Ответ

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


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

Параметры

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

Ответ

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


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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример create_vote
Copy Copy
1
2async fn run_vote() -> Result<VoteComment200Response, Error> {
3 let params: CreateVoteParams = CreateVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/2026/01/12/local-election-12345".to_string(),
6 direction: "up".to_string(),
7 user_id: Some("user_9876".to_string()),
8 anon_user_id: None,
9 };
10 let response: VoteComment200Response = create_vote(&configuration, params).await?;
11 Ok(response)
12}
13

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

Параметры

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

Ответ

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

Пример

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

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

Параметры

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

Ответ

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

Пример

Пример get_votes
Copy Copy
1
2async fn fetch_votes_example() -> Result<(), Error> {
3 let params: GetVotesParams = GetVotesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article/2026-01-12/housing-market"),
6 };
7 let votes: GetVotes200Response = get_votes(&configuration, params).await?;
8 let _ = votes;
9 Ok(())
10}
11

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

Параметры

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

Ответ

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

Пример

Пример get_votes_for_user
Copy Copy
1
2async fn fetch_votes() -> Result<GetVotesForUser200Response, Error> {
3 let params = GetVotesForUserParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/2026/01/12/breaking-tech"),
6 user_id: Some(String::from("user-78a3")),
7 anon_user_id: Some(String::from("anon-4f2b")),
8 };
9 let response: GetVotesForUser200Response = get_votes_for_user(&configuration, params).await?;
10 Ok(response)
11}
12

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

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

Участие

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