FastComments.com

SDK FastComments pour Rust


Ceci est le SDK Rust officiel pour FastComments.

SDK Rust officiel pour l'API FastComments

Dépôt

Voir sur GitHub


Installation Internal Link


cargo add fastcomments-sdk

Le SDK nécessite l'édition Rust 2021 ou une version ultérieure.

Contenu de la bibliothèque Internal Link

Le SDK Rust de FastComments se compose de plusieurs modules :

  • Client Module - Client API généré automatiquement pour les API REST de FastComments

    • Définitions de types complètes pour tous les modèles d'API
    • Points de terminaison à la fois authentifiés (DefaultApi) et publics (PublicApi)
    • Prise en charge complète d'async/await avec tokio
    • Voir client/README.md pour la documentation détaillée de l'API
  • SSO Module - Utilitaires Single Sign-On côté serveur

    • Génération sécurisée de jetons pour l'authentification des utilisateurs
    • Prise en charge des modes SSO simple et sécurisé
    • Signature des jetons basée sur HMAC-SHA256
  • Core Types - Définitions de types partagées et utilitaires

    • Modèles de commentaires et structures de métadonnées
    • Configurations des utilisateurs et des locataires
    • Fonctions utilitaires pour les opérations courantes

Démarrage rapide Internal Link

Utilisation de l'API publique

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

#[tokio::main]
async fn main() {
    // Créer la configuration de l'API
    let config = Configuration::new();

    // Récupérer les commentaires d'une page
    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),
    }
}

Utilisation de l'API authentifiée

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

#[tokio::main]
async fn main() {
    // Créer la configuration avec la clé API
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // Récupérer les commentaires en utilisant l'API authentifiée
    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),
    }
}

Utilisation de SSO pour l'authentification

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

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

    // Créer les données utilisateur SSO sécurisées (côté serveur uniquement !)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // ID utilisateur
        "user@example.com".to_string(),   // Adresse e-mail
        "John Doe".to_string(),            // Nom d'utilisateur
        "https://example.com/avatar.jpg".to_string(), // URL de l'avatar
    );

    // Générer le token SSO
    let sso = FastCommentsSSO::new_secure(api_key, &user_data).unwrap();
    let token = sso.create_token().unwrap();

    println!("SSO Token: {}", token);
    // Transmettez ce token à votre frontend pour l'authentification
}

Problèmes courants Internal Link

401 Unauthorized Errors

Si vous obtenez des erreurs 401 lorsque vous utilisez l'API authentifiée :

  1. Vérifiez votre clé API : Assurez-vous d'utiliser la clé API correcte depuis votre tableau de bord FastComments
  2. Vérifiez le tenant ID : Assurez-vous que le tenant ID correspond à votre compte
  3. Format de la clé API : La clé API doit être passée dans la Configuration :
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

SSO Token Issues

Si les jetons SSO ne fonctionnent pas :

  1. Utilisez le mode sécurisé en production : Toujours utiliser FastCommentsSSO::new_secure() avec votre clé API pour la production
  2. Côté serveur uniquement : Générez les jetons SSO sur votre serveur, n'exposez jamais votre clé API aux clients
  3. Vérifiez les données utilisateur : Assurez-vous que tous les champs requis (id, email, username) sont fournis

Async Runtime Errors

Le SDK utilise tokio pour les opérations asynchrones. Assurez-vous de :

  1. Add tokio to your dependencies:
[dependencies]
tokio = { version = "1", features = ["full"] }
  1. Use the tokio runtime:
#[tokio::main]
async fn main() {
    // Votre code asynchrone ici
}

Notes Internal Link


Identifiants de diffusion

Vous verrez que vous devez passer un broadcastId dans certains appels d'API. Lorsque vous recevez des événements, vous récupérerez cet ID, ce qui vous permet d'ignorer l'événement si vous prévoyez d'appliquer les modifications de manière optimiste côté client (ce que vous souhaiterez probablement faire car cela offre la meilleure expérience). Passez un UUID ici. L'ID doit être suffisamment unique pour ne pas apparaître deux fois au cours d'une même session du navigateur.

agréger Internal Link

Agrège les documents en les groupant (si groupBy est fourni) et en appliquant plusieurs opérations. Différentes opérations (p. ex. sum, countDistinct, avg, etc.) sont prises en charge.

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
aggregation_requestmodels::AggregationRequestOui
parent_tenant_idStringNon
include_statsboolNon

Réponse

Retourne : AggregationResponse


obtenir les journaux d'audit Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
limitf64Non
skipf64Non
ordermodels::SortDirNon
afterf64Non
beforef64Non

Réponse

Retourne : GetAuditLogs200Response

Exemple

Exemple de 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

bloquer depuis un commentaire (public) Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
comment_idStringOui
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsOui
ssoStringNon

Réponse

Renvoie : BlockFromCommentPublic200Response

Exemple

Exemple de 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

débloquer le commentaire (public) Internal Link


Paramètres

NameTypeRequisDescription
tenant_idStringOui
comment_idStringOui
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsOui
ssoStringNon

Réponse

Renvoie : UnBlockCommentPublic200Response

Exemple

Exemple de 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

vérifier les commentaires bloqués Internal Link


Paramètres

NameTypeRequisDescription
tenant_idStringOui
comment_idsStringOui
ssoStringNon

Réponse

Renvoie : CheckedCommentsForBlocked200Response

Exemple

Exemple de 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

bloquer l'utilisateur depuis un commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
block_from_comment_paramsmodels::BlockFromCommentParamsOui
user_idStringNon
anon_user_idStringNon

Réponse

Renvoie : BlockFromCommentPublic200Response

Exemple

Exemple de 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

créer un commentaire (public) Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
url_idStringOui
broadcast_idStringOui
comment_datamodels::CommentDataOui
session_idStringNon
ssoStringNon

Réponse

Renvoie : CreateCommentPublic200Response

Exemple

Exemple 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

supprimer un commentaire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
context_user_idStringNon
is_liveboolNon

Réponse

Renvoie : DeleteComment200Response

Exemple

Exemple de 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

supprimer un commentaire (public) Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
edit_keyStringNon
ssoStringNon

Réponse

Renvoie : DeleteCommentPublic200Response

Exemple

Exemple de 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

supprimer le vote sur un commentaire Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
comment_idStringOui
vote_idStringOui
url_idStringOui
broadcast_idStringOui
edit_keyStringNon
ssoStringNon

Réponse

Retourne : DeleteCommentVote200Response

Exemple

Exemple de 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

signaler un commentaire Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
idStringOui
user_idStringNon
anon_user_idStringNon

Réponse

Renvoie : FlagComment200Response

Exemple

Exemple de 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

obtenir un commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetComment200Response

Exemple

Exemple de 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

obtenir le texte du commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
comment_idStringOui
edit_keyStringNon
ssoStringNon

Réponse

Renvoie : GetCommentText200Response

Exemple

Exemple 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

obtenir les noms d'utilisateur des votes sur le commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
comment_idStringOui
diri32Oui
ssoStringNon

Réponse

Renvoie : GetCommentVoteUserNames200Response

Exemple

Exemple de 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

obtenir des commentaires Internal Link


Paramètres

NomTypeRequisDescription
tenant_idStringOui
pagei32Non
limiti32Non
skipi32Non
as_treeboolNon
skip_childreni32Non
limit_childreni32Non
max_tree_depthi32Non
url_idStringNon
user_idStringNon
anon_user_idStringNon
context_user_idStringNon
hash_tagStringNon
parent_idStringNon
directionmodels::SortDirectionsNon

Réponse

Renvoie : GetComments200Response

Exemple

Exemple de 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

obtenir des commentaires (publics) Internal Link

req tenantId urlId

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
url_idStringOui
pagei32Non
directionmodels::SortDirectionsNon
ssoStringNon
skipi32Non
skip_childreni32Non
limiti32Non
limit_childreni32Non
count_childrenboolNon
fetch_page_for_comment_idStringNon
include_configboolNon
count_allboolNon
includei10nboolNon
localeStringNon
modulesStringNon
is_crawlerboolNon
include_notification_countboolNon
as_treeboolNon
max_tree_depthi32Non
use_full_translation_idsboolNon
parent_idStringNon
search_textStringNon
hash_tagsVecNon
user_idStringNon
custom_config_strStringNon
after_comment_idStringNon
before_comment_idStringNon

Réponse

Renvoie : GetCommentsPublic200Response

Exemple

Exemple de 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

verrouiller un commentaire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
ssoStringNon

Réponse

Retourne : LockComment200Response

Exemple

Exemple de 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

épingler un commentaire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
ssoStringNon

Réponse

Renvoie : PinComment200Response

Exemple

Exemple de 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

enregistrer un commentaire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_comment_paramsmodels::CreateCommentParamsOui
is_liveboolNon
do_spam_checkboolNon
send_emailsboolNon
populate_notificationsboolNon

Réponse

Renvoie : SaveComment200Response

Exemple

Exemple de 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

enregistrer des commentaires en lot Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
create_comment_paramsVecmodels::CreateCommentParamsOui
is_liveboolNon
do_spam_checkboolNon
send_emailsboolNon
populate_notificationsboolNon

Réponse

Retourne: Vec<models::SaveComment200Response>

Exemple

Exemple de 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

définir le texte du commentaire Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
comment_text_update_requestmodels::CommentTextUpdateRequestOui
edit_keyStringNon
ssoStringNon

Réponse

Retourne : SetCommentText200Response

Exemple

Exemple 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

débloquer l'utilisateur depuis un commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
un_block_from_comment_paramsmodels::UnBlockFromCommentParamsOui
user_idStringNon
anon_user_idStringNon

Réponse

Renvoie : UnBlockCommentPublic200Response

Exemple

Exemple de 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

annuler le signalement du commentaire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui
user_idStringNon
anon_user_idStringNon

Réponse

Renvoie : FlagComment200Response

Exemple

Exemple de 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

déverrouiller un commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
ssoStringNon

Réponse

Retourne : LockComment200Response

Exemple

Exemple de 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

désépingler un commentaire Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
comment_idStringOui
broadcast_idStringOui
ssoStringNon

Réponse

Retourne : PinComment200Response

Exemple

Exemple de 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

mettre à jour un commentaire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
updatable_comment_paramsmodels::UpdatableCommentParamsOui
context_user_idStringNon
do_spam_checkboolNon
is_liveboolNon

Réponse

Retourne: FlagCommentPublic200Response

Exemple

Exemple de 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

voter pour un commentaire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
comment_idStringOui
url_idStringOui
broadcast_idStringOui
vote_body_paramsmodels::VoteBodyParamsOui
session_idStringNon
ssoStringNon

Réponse

Renvoie : VoteComment200Response

Exemple

vote_comment Exemple
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

ajouter une configuration de domaine Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
add_domain_config_paramsmodels::AddDomainConfigParamsOui

Réponse

Renvoie : AddDomainConfig200Response


supprimer une configuration de domaine Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
domainStringOui

Réponse

Renvoie: DeleteDomainConfig200Response


obtenir la configuration de domaine Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
domainStringOui

Réponse

Renvoie : GetDomainConfig200Response


obtenir les configurations de domaine Internal Link


Paramètres

NomTypeRequisDescription
tenant_idStringOui

Réponse

Renvoie: GetDomainConfigs200Response


mettre à jour partiellement la configuration de domaine Internal Link


Paramètres

NomTypeRequisDescription
tenant_idStringOui
domain_to_updateStringOui
patch_domain_config_paramsmodels::PatchDomainConfigParamsOui

Réponse

Retourne: GetDomainConfig200Response


remplacer la configuration de domaine Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
domain_to_updateStringOui
update_domain_config_paramsmodels::UpdateDomainConfigParamsOui

Réponse

Renvoie : GetDomainConfig200Response

créer un modèle d'e-mail Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
create_email_template_bodymodels::CreateEmailTemplateBodyOui

Réponse

Renvoie : CreateEmailTemplate200Response

Exemple

Exemple de 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

supprimer un modèle d'e-mail Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: FlagCommentPublic200Response

Exemple

Exemple de 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

supprimer une erreur de rendu de modèle d'e-mail Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
error_idStringOui

Réponse

Retourne: FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir un modèle d'e-mail Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui

Réponse

Retourne : GetEmailTemplate200Response

Exemple

Exemple 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

obtenir les définitions de modèles d'e-mail Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui

Réponse

Renvoie : GetEmailTemplateDefinitions200Response

Exemple

Exemple de 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

obtenir les erreurs de rendu des modèles d'e-mail Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
skipf64Non

Réponse

Renvoie : GetEmailTemplateRenderErrors200Response

Exemple

Exemple 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

obtenir les modèles d'e-mail Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
skipf64Non

Réponse

Retourne: GetEmailTemplates200Response

Exemple

Exemple de 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

générer un modèle d'e-mail Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
render_email_template_bodymodels::RenderEmailTemplateBodyOui
localeStringNon

Réponse

Renvoie : RenderEmailTemplate200Response

Exemple

Exemple de 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

mettre à jour un modèle d'e-mail Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
update_email_template_bodymodels::UpdateEmailTemplateBodyOui

Réponse

Retourne : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir le journal d'événements Internal Link

req tenantId urlId userIdWS

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
url_idStringOui
user_id_wsStringOui
start_timei64Oui
end_timei64Oui

Réponse

Renvoie : GetEventLog200Response

Exemple

Exemple de 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

obtenir le journal d'événements global Internal Link

req tenantId urlId userIdWS

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
url_idStringOui
user_id_wsStringOui
start_timei64Oui
end_timei64Oui

Réponse

Renvoie: GetEventLog200Response

Exemple

get_global_event_log Exemple
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

créer une publication Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
create_feed_post_paramsmodels::CreateFeedPostParamsOui
broadcast_idStringNon
is_liveboolNon
do_spam_checkboolNon
skip_dup_checkboolNon

Réponse

Renvoie: CreateFeedPost200Response

Exemple

Exemple de 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

créer une publication (publique) Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_feed_post_paramsmodels::CreateFeedPostParamsOui
broadcast_idStringNon
ssoStringNon

Réponse

Retourne: CreateFeedPostPublic200Response

Exemple

Exemple de 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

supprimer une publication (publique) Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
post_idStringOui
broadcast_idStringNon
ssoStringNon

Réponse

Retourne: DeleteFeedPostPublic200Response

Exemple

Exemple 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

obtenir les publications Internal Link

req tenantId afterId

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
after_idStringNon
limiti32Non
tagsVecNon

Réponse

Renvoie: GetFeedPosts200Response

Exemple

Exemple de 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

obtenir les publications (publiques) Internal Link

req tenantId afterId

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
after_idStringNon
limiti32Non
tagsVecNon
ssoStringNon
is_crawlerboolNon
include_user_infoboolNon

Réponse

Renvoie : GetFeedPostsPublic200Response

Exemple

Exemple de 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

obtenir les statistiques des publications Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
post_idsVecOui
ssoStringNon

Réponse

Renvoie: GetFeedPostsStats200Response

Exemple

Exemple de 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

obtenir les réactions des utilisateurs (public) Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
post_idsVecNon
ssoStringNon

Réponse

Renvoie: GetUserReactsPublic200Response

Exemple

Exemple de 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

réagir à une publication (publique) Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
post_idStringOui
react_body_paramsmodels::ReactBodyParamsOui
is_undoboolNon
broadcast_idStringNon
ssoStringNon

Réponse

Renvoie: ReactFeedPostPublic200Response

Exemple

Exemple de 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

mettre à jour une publication Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
feed_postmodels::FeedPostOui

Réponse

Retourne: FlagCommentPublic200Response

Exemple

Exemple pour 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

mettre à jour une publication (publique) Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
post_idStringOui
update_feed_post_paramsmodels::UpdateFeedPostParamsOui
broadcast_idStringNon
ssoStringNon

Réponse

Retourne : CreateFeedPostPublic200Response

Exemple

Exemple de 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

signaler un commentaire (public) Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
comment_idStringOui
is_flaggedboolOui
ssoStringNon

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple 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

ajouter un hashtag Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringNon
create_hash_tag_bodymodels::CreateHashTagBodyNon

Réponse

Renvoie : AddHashTag200Response

Exemple

Exemple 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

ajouter des hashtags en masse Internal Link


Paramètres

NameTypeObligatoireDescription
tenant_idStringNon
bulk_create_hash_tags_bodymodels::BulkCreateHashTagsBodyNon

Réponse

Renvoie : AddHashTagsBulk200Response

Exemple

Exemple 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

supprimer un hashtag Internal Link

Paramètres

NomTypeRequisDescription
tagStringOui
tenant_idStringNon
delete_hash_tag_requestmodels::DeleteHashTagRequestNon

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir les hashtags Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
pagef64Non

Réponse

Renvoie : GetHashTags200Response

Exemple

Exemple de 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

mettre à jour partiellement un hashtag Internal Link


Paramètres

NomTypeObligatoireDescription
tagStringOui
tenant_idStringNon
update_hash_tag_bodymodels::UpdateHashTagBodyNon

Réponse

Renvoie : PatchHashTag200Response

Exemple

Exemple de 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

créer un modérateur Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
create_moderator_bodymodels::CreateModeratorBodyOui

Réponse

Renvoie : CreateModerator200Response

Exemple

Exemple de 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

supprimer un modérateur Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
idStringOui
send_emailStringNon

Réponse

Retourne: FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir un modérateur Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: GetModerator200Response

Exemple

Exemple pour 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

obtenir les modérateurs Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
skipf64Non

Réponse

Renvoie : GetModerators200Response

Exemple

Exemple 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

envoyer une invitation Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
from_nameStringOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

mettre à jour un modérateur Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_moderator_bodymodels::UpdateModeratorBodyOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

supprimer le nombre de notifications Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir le nombre de notifications mis en cache Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: GetCachedNotificationCount200Response

Exemple

Exemple de 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

obtenir le nombre de notifications Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
user_idStringNon
url_idStringNon
from_comment_idStringNon
viewedboolNon

Réponse

Renvoie : GetNotificationCount200Response

Exemple

Exemple de 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

obtenir les notifications Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
user_idStringNon
url_idStringNon
from_comment_idStringNon
viewedboolNon
skipf64Non

Réponse

Renvoie : GetNotifications200Response

Exemple

Exemple de 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

mettre à jour une notification Internal Link


Paramètres

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_notification_bodymodels::UpdateNotificationBodyYes
user_idStringNo

Réponse

Renvoie: FlagCommentPublic200Response

Exemple

Exemple de 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

ajouter une page Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_api_page_datamodels::CreateApiPageDataOui

Réponse

Renvoie: AddPageApiResponse

supprimer une page Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : DeletePageApiResponse


obtenir la page par URLID Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
url_idStringOui

Réponse

Retourne: GetPageByUrlidApiResponse


obtenir les pages Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui

Réponse

Renvoie: GetPagesApiResponse


mettre à jour partiellement une page Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_api_page_datamodels::UpdateApiPageDataOui

Réponse

Retourne : PatchPageApiResponse


supprimer un événement webhook en attente Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir le nombre d'événements webhook en attente Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
comment_idStringNon
external_idStringNon
event_typeStringNon
domainStringNon
attempt_count_gtf64Non

Réponse

Renvoie : GetPendingWebhookEventCount200Response

Exemple

Exemple de 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

obtenir les événements webhook en attente Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
comment_idStringNon
external_idStringNon
event_typeStringNon
domainStringNon
attempt_count_gtf64Non
skipf64Non

Réponse

Renvoie : GetPendingWebhookEvents200Response

Exemple

Exemple de 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

créer une configuration de question Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
create_question_config_bodymodels::CreateQuestionConfigBodyOui

Réponse

Retourne: CreateQuestionConfig200Response

Exemple

Exemple de 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

supprimer une configuration de question Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir la configuration de question Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetQuestionConfig200Response

Exemple

Exemple de 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

obtenir les configurations de questions Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
skipf64Non

Réponse

Renvoie : GetQuestionConfigs200Response

Exemple

Exemple de 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

mettre à jour la configuration de question Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_question_config_bodymodels::UpdateQuestionConfigBodyOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

créer un résultat de question Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
create_question_result_bodymodels::CreateQuestionResultBodyOui

Réponse

Renvoie : CreateQuestionResult200Response

Exemple

Exemple de 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

supprimer un résultat de question Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir un résultat de question Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetQuestionResult200Response

Exemple

Exemple 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

obtenir les résultats des questions Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
url_idStringNon
user_idStringNon
start_dateStringNon
question_idStringNon
question_idsStringNon
skipf64Non

Réponse

Renvoie : GetQuestionResults200Response

Exemple

Exemple de 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

mettre à jour un résultat de question Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_question_result_bodymodels::UpdateQuestionResultBodyOui

Réponse

Renvoie: FlagCommentPublic200Response

Exemple

Exemple de 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

agréger les résultats des questions Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
question_idStringNon
question_idsVecNon
url_idStringNon
time_bucketmodels::AggregateTimeBucketNon
start_dateStringNon
force_recalculateboolNon

Réponse

Renvoie : AggregateQuestionResults200Response

Exemple

Exemple de 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

agrégation en masse des résultats des questions Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
bulk_aggregate_question_results_requestmodels::BulkAggregateQuestionResultsRequestOui
force_recalculateboolNon

Réponse

Renvoie : BulkAggregateQuestionResults200Response

Exemple

Exemple de 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

combiner les commentaires avec les résultats des questions Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
question_idStringNon
question_idsVecNon
url_idStringNon
start_dateStringNon
force_recalculateboolNon
min_valuef64Non
max_valuef64Non
limitf64Non

Réponse

Retourne: CombineCommentsWithQuestionResults200Response

Exemple

Exemple de 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

ajouter un utilisateur SSO Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_apisso_user_datamodels::CreateApissoUserDataOui

Réponse

Renvoie: AddSsoUserApiResponse

supprimer un utilisateur SSO Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
delete_commentsboolNon
comment_delete_modeStringNon

Réponse

Renvoie: DeleteSsoUserApiResponse


obtenir l'utilisateur SSO par e-mail Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
emailStringOui

Réponse

Renvoie : GetSsoUserByEmailApiResponse


obtenir l'utilisateur SSO par ID Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: GetSsoUserByIdApiResponse


obtenir les utilisateurs SSO Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
skipi32Non

Réponse

Renvoie : GetSsoUsers200Response


mettre à jour partiellement un utilisateur SSO Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_apisso_user_datamodels::UpdateApissoUserDataOui
update_commentsboolNon

Réponse

Renvoie : PatchSsoUserApiResponse


remplacer un utilisateur SSO Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
update_apisso_user_datamodels::UpdateApissoUserDataOui
update_commentsboolNon

Réponse

Renvoie: PutSsoUserApiResponse


créer un abonnement Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
create_api_user_subscription_datamodels::CreateApiUserSubscriptionDataOui

Réponse

Retourne : CreateSubscriptionApiResponse

Exemple

Exemple de 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

supprimer un abonnement Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
idStringOui
user_idStringNon

Réponse

Retourne: DeleteSubscriptionApiResponse


obtenir les abonnements Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
user_idStringNon

Réponse

Renvoie : GetSubscriptionsApiResponse

Exemple

Exemple de 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

mettre à jour un abonnement Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_api_user_subscription_datamodels::UpdateApiUserSubscriptionDataOui
user_idStringNon

Réponse

Renvoie : UpdateSubscriptionApiResponse

Exemple

Exemple de 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

obtenir les utilisations quotidiennes du locataire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
year_numberf64Non
month_numberf64Non
day_numberf64Non
skipf64Non

Réponse

Renvoie : GetTenantDailyUsages200Response

Exemple

Exemple de 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

créer un forfait pour le locataire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
create_tenant_package_bodymodels::CreateTenantPackageBodyOui

Réponse

Renvoie : CreateTenantPackage200Response

Exemple

Exemple de 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

supprimer un forfait du locataire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Retourne : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir le forfait du locataire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetTenantPackage200Response

Exemple

Exemple de 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

obtenir les forfaits du locataire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
skipf64Non

Réponse

Renvoie : GetTenantPackages200Response

Exemple

Exemple de 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

remplacer le forfait du locataire Internal Link


Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
replace_tenant_package_bodymodels::ReplaceTenantPackageBodyOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

mettre à jour le forfait du locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_tenant_package_bodymodels::UpdateTenantPackageBodyOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

créer un utilisateur du locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_tenant_user_bodymodels::CreateTenantUserBodyOui

Réponse

Renvoie: CreateTenantUser200Response

Exemple

Exemple de 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

supprimer un utilisateur du locataire Internal Link

Paramètres

NameTypeObligatoireDescription
tenant_idStringOui
idStringOui
delete_commentsStringNon
comment_delete_modeStringNon

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir l'utilisateur du locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetTenantUser200Response

Exemple

Exemple de 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

obtenir les utilisateurs du locataire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
skipf64Non

Réponse

Retourne : GetTenantUsers200Response

Exemple

Exemple de 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

remplacer l'utilisateur du locataire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui
replace_tenant_user_bodymodels::ReplaceTenantUserBodyOui
update_commentsStringNon

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple pour 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

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
redirect_urlStringNon

Réponse

Renvoie: FlagCommentPublic200Response

Exemple

Exemple de 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

mettre à jour l'utilisateur du locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
update_tenant_user_bodymodels::UpdateTenantUserBodyOui
update_commentsStringNon

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

créer un locataire Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
create_tenant_bodymodels::CreateTenantBodyOui

Réponse

Renvoie : CreateTenant200Response

Exemple

Exemple de 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

supprimer un locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
sureStringNon

Réponse

Retourne: FlagCommentPublic200Response

Exemple

Exemple de 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

obtenir le locataire Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetTenant200Response

Exemple

Exemple pour 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

obtenir les locataires Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
metaStringNon
skipf64Non

Réponse

Renvoie : GetTenants200Response

Exemple

Exemple de 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

mettre à jour le locataire Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
update_tenant_bodymodels::UpdateTenantBodyOui

Réponse

Renvoie : FlagCommentPublic200Response

Exemple

Exemple de 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

changer l'état du ticket Internal Link

Paramètres

NameTypeRequisDescription
tenant_idStringOui
user_idStringOui
idStringOui
change_ticket_state_bodymodels::ChangeTicketStateBodyOui

Réponse

Renvoie : ChangeTicketState200Response

Exemple

Exemple de 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

créer un ticket Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
user_idStringOui
create_ticket_bodymodels::CreateTicketBodyOui

Réponse

Retourne : CreateTicket200Response

Exemple

Exemple de 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

obtenir un ticket Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui
user_idStringNon

Réponse

Renvoie : GetTicket200Response

Exemple

Exemple 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

obtenir les tickets Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
user_idStringNon
statef64Non
skipf64Non
limitf64Non

Réponse

Renvoie : GetTickets200Response

Exemple

Exemple de 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

téléverser une image Internal Link

Téléverser et redimensionner une image

Paramètres

NomTypeRequisDescription
tenant_idStringOui
filestd::path::PathBufOui
size_presetmodels::SizePresetNon
url_idStringNon

Réponse

Renvoie: UploadImageResponse


obtenir la progression du badge utilisateur par ID Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
idStringOui

Réponse

Retourne: GetUserBadgeProgressById200Response

Exemple

Exemple de 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

obtenir la progression du badge utilisateur par ID utilisateur Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
user_idStringOui

Réponse

Renvoie: GetUserBadgeProgressById200Response

Exemple

Exemple de 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

obtenir la liste de progression des badges utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
user_idStringNon
limitf64Non
skipf64Non

Réponse

Renvoie: GetUserBadgeProgressList200Response

Exemple

Exemple 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

créer un badge utilisateur Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
create_user_badge_paramsmodels::CreateUserBadgeParamsOui

Réponse

Renvoie: CreateUserBadge200Response

Exemple

Exemple de 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

supprimer un badge utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie: UpdateUserBadge200Response

Exemple

Exemple de 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

obtenir un badge utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Retourne: GetUserBadge200Response

Exemple

get_user_badge Exemple
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

obtenir les badges utilisateur Internal Link


Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
user_idStringNon
badge_idStringNon
displayed_on_commentsboolNon
limitf64Non
skipf64Non

Réponse

Renvoie : GetUserBadges200Response

Exemple

Exemple de 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

mettre à jour un badge utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui
update_user_badge_paramsmodels::UpdateUserBadgeParamsOui

Réponse

Retourne: UpdateUserBadge200Response

Exemple

Exemple de 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

obtenir le nombre de notifications utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
ssoStringNon

Réponse

Renvoie : GetUserNotificationCount200Response

Exemple

Exemple de 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

obtenir les notifications utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
page_sizei32Non
after_idStringNon
include_contextboolNon
after_created_ati64Non
unread_onlyboolNon
dm_onlyboolNon
no_dmboolNon
include_translationsboolNon
ssoStringNon

Réponse

Renvoie : GetUserNotifications200Response

Exemple

Exemple de 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

réinitialiser le nombre de notifications utilisateur Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
ssoStringNon

Réponse

Renvoie : ResetUserNotifications200Response

Exemple

Exemple de 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

réinitialiser les notifications utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
after_idStringNon
after_created_ati64Non
unread_onlyboolNon
dm_onlyboolNon
no_dmboolNon
ssoStringNon

Réponse

Renvoie : ResetUserNotifications200Response

Exemple

Exemple 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

mettre à jour le statut d'abonnement aux commentaires de notification utilisateur Internal Link

Activer ou désactiver les notifications pour un commentaire spécifique.

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
notification_idStringOui
opted_in_or_outStringOui
comment_idStringOui
ssoStringNon

Réponse

Renvoie : UpdateUserNotificationStatus200Response

Exemple

Exemple de 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

mettre à jour le statut d'abonnement aux pages de notification utilisateur Internal Link

Activer ou désactiver les notifications pour une page. Lorsque les utilisateurs sont abonnés à une page, des notifications sont créées pour les nouveaux commentaires racines, et aussi

Paramètres

NomTypeRequisDescription
tenant_idStringOui
url_idStringOui
urlStringOui
page_titleStringOui
subscribed_or_unsubscribedStringOui
ssoStringNon

Réponse

Renvoie : UpdateUserNotificationStatus200Response

Exemple

Exemple de 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

mettre à jour le statut de notification utilisateur Internal Link


Paramètres

NomTypeRequisDescription
tenant_idStringOui
notification_idStringOui
new_statusStringOui
ssoStringNon

Réponse

Renvoie : UpdateUserNotificationStatus200Response

Exemple

Exemple de 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

obtenir les statuts de présence utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
url_id_wsStringOui
user_idsStringOui

Réponse

Renvoie : GetUserPresenceStatuses200Response

Exemple

Exemple de 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

rechercher des utilisateurs Internal Link

Paramètres

NomTypeObligatoireDescription
tenant_idStringOui
url_idStringOui
username_starts_withStringNon
mention_group_idsVecNon
ssoStringNon
search_sectionStringNon

Réponse

Renvoie : SearchUsers200Response

Exemple

Exemple de 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

obtenir un utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
idStringOui

Réponse

Renvoie : GetUser200Response

Exemple

Exemple de 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

créer un vote Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
comment_idStringOui
directionStringOui
user_idStringNon
anon_user_idStringNon

Réponse

Renvoie : VoteComment200Response

Exemple

Exemple de 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

supprimer un vote Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
idStringOui
edit_keyStringNon

Réponse

Renvoie : DeleteCommentVote200Response

Exemple

Exemple de 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

obtenir les votes Internal Link

Paramètres

NameTypeRequiredDescription
tenant_idStringOui
url_idStringOui

Réponse

Renvoie : GetVotes200Response

Exemple

Exemple de 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

obtenir les votes pour un utilisateur Internal Link

Paramètres

NomTypeRequisDescription
tenant_idStringOui
url_idStringOui
user_idStringNon
anon_user_idStringNon

Réponse

Retourne : GetVotesForUser200Response

Exemple

get_votes_for_user Exemple
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


Besoin d'aide ?

Si vous rencontrez des problèmes ou avez des questions concernant le Rust SDK, veuillez :

Contribuer

Les contributions sont les bienvenues ! Veuillez visiter le dépôt GitHub pour les consignes de contribution.