FastComments.com

FastComments Rust SDK

Questo è l'SDK ufficiale in Rust per FastComments.

SDK ufficiale in Rust per l'API di FastComments

Repository

Visualizza su GitHub

Installazione Internal Link

cargo add fastcomments-sdk

Lo SDK richiede l'edizione Rust 2021 o successiva.

Contenuto della libreria Internal Link

Lo SDK Rust di FastComments è composto da diversi moduli:

  • Client Module - Client API generato automaticamente per le REST APIs di FastComments

    • Definizioni di tipo complete per tutti i modelli API
    • Endpoint sia autenticati (DefaultApi) che pubblici (PublicApi)
    • Supporto completo per async/await con tokio
    • Vedi client/README.md per la documentazione dettagliata delle API
  • SSO Module - Utility Single Sign-On lato server

    • Generazione sicura di token per l'autenticazione degli utenti
    • Supporto per modalità SSO sia semplici che sicure
    • Firma dei token basata su HMAC-SHA256
  • Core Types - Definizioni di tipo condivise e utility

    • Modelli di commento e strutture di metadata
    • Configurazioni di utenti e tenant
    • Funzioni di aiuto per operazioni comuni

Avvio rapido Internal Link

Uso dell'API pubblica

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

#[tokio::main]
async fn main() {
    // Crea la configurazione API
    let config = Configuration::new();

    // Recupera i commenti per una pagina
    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),
    }
}

Uso dell'API autenticata

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

#[tokio::main]
async fn main() {
    // Crea la configurazione con la chiave API
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // Recupera i commenti usando l'API autenticata
    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),
    }
}

Uso di SSO per l'autenticazione

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

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

    // Crea i dati utente SSO sicuri (solo lato server!)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // ID utente
        "user@example.com".to_string(),   // Email
        "John Doe".to_string(),            // Nome utente
        "https://example.com/avatar.jpg".to_string(), // URL dell'avatar
    );

    // Genera il token SSO
    let sso = FastCommentsSSO::new_secure(api_key, &user_data).unwrap();
    let token = sso.create_token().unwrap();

    println!("SSO Token: {}", token);
    // Passa questo token al tuo frontend per l'autenticazione
}

Problemi comuni Internal Link

401 Errori Non Autorizzati

Se ricevi errori 401 quando usi l'API autenticata:

  1. Controlla la tua API key: Assicurati di usare la API key corretta dalla dashboard di FastComments
  2. Verifica il tenant ID: Assicurati che il tenant ID corrisponda al tuo account
  3. Formato della API key: La API key deve essere passata nella Configuration:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

Problemi con i token SSO

Se i token SSO non funzionano:

  1. Usa la modalità sicura in produzione: Usa sempre FastCommentsSSO::new_secure() con la tua API key per la produzione
  2. Solo lato server: Genera i token SSO sul tuo server, non esporre mai la tua API key ai client
  3. Controlla i dati dell'utente: Assicurati che tutti i campi obbligatori (id, email, username) siano forniti

Errori del runtime asincrono

Lo SDK usa tokio per operazioni asincrone. Assicurati di:

  1. Aggiungi tokio alle tue dipendenze:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
  2. Usa il runtime tokio:

    #[tokio::main]
    async fn main() {
     // Il tuo codice asincrono qui
    }

Note Internal Link

ID di broadcast

Vedrai che dovrai passare un broadcastId in alcune chiamate API. Quando ricevi eventi, riavrai questo ID, così saprai di ignorare l'evento se prevedi di applicare le modifiche in modo ottimistico sul client (cosa che probabilmente vorrai fare perché offre la migliore esperienza). Passa qui un UUID. L'ID dovrebbe essere abbastanza unico da non verificarsi due volte durante una sessione del browser.

Aggregare Internal Link

Aggrega documenti raggruppandoli (se viene fornito groupBy) e applicando più operazioni. Sono supportate diverse operazioni (es. sum, countDistinct, avg, ecc.).

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
aggregation_request models::AggregationRequest
parent_tenant_id String No
include_stats bool No

Risposta

Restituisce: AggregationResponse


Ottieni log di audit Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
limit f64 No
skip f64 No
order models::SortDir No
after f64 No
before f64 No

Risposta

Restituisce: GetAuditLogs200Response


Blocca da commento pubblico Internal Link

Parametri

Name Type Required Description
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String No

Risposta

Restituisce: BlockFromCommentPublic200Response

Sblocca commento pubblico Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String No

Risposta

Restituisce: UnBlockCommentPublic200Response


Controlla commenti bloccati Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_ids String
sso String No

Risposta

Restituisce: CheckedCommentsForBlocked200Response


Blocca utente dal commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
block_from_comment_params models::BlockFromCommentParams
user_id String No
anon_user_id String No

Risposta

Restituisce: BlockFromCommentPublic200Response

Crea commento pubblico Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
broadcast_id String
comment_data models::CommentData
session_id String No
sso String No

Risposta

Restituisce: CreateCommentPublic200Response


Elimina commento Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
context_user_id String No
is_live bool No

Risposta

Restituisce: DeleteComment200Response


Elimina commento pubblico Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
comment_id String
broadcast_id String
edit_key String No
sso String No

Risposta

Restituisce: DeleteCommentPublic200Response


Elimina voto del commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
vote_id String
url_id String
broadcast_id String
edit_key String No
sso String No

Risposta

Restituisce: DeleteCommentVote200Response

Segnala commento Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
id String
user_id String No
anon_user_id String No

Risposta

Restituisce: FlagComment200Response


Ottieni commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetComment200Response


Ottieni testo del commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
edit_key String No
sso String No

Risposta

Restituisce: GetCommentText200Response


Ottieni nomi utenti votanti del commento Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
comment_id String
dir i32
sso String No

Risposta

Restituisce: GetCommentVoteUserNames200Response


Ottieni commenti Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
page i32 No
limit i32 No
skip i32 No
as_tree bool No
skip_children i32 No
limit_children i32 No
max_tree_depth i32 No
url_id String No
user_id String No
anon_user_id String No
context_user_id String No
hash_tag String No
parent_id String No
direction models::SortDirections No

Risposta

Restituisce: GetComments200Response


Ottieni commenti pubblici Internal Link

req tenantId urlId

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
page i32 No
direction models::SortDirections No
sso String No
skip i32 No
skip_children i32 No
limit i32 No
limit_children i32 No
count_children bool No
fetch_page_for_comment_id String No
include_config bool No
count_all bool No
includei10n bool No
locale String No
modules String No
is_crawler bool No
include_notification_count bool No
as_tree bool No
max_tree_depth i32 No
use_full_translation_ids bool No
parent_id String No
search_text String No
hash_tags Vec No
user_id String No
custom_config_str String No
after_comment_id String No
before_comment_id String No

Risposta

Restituisce: GetCommentsPublic200Response

Blocca commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
broadcast_id String
sso String No

Risposta

Restituisce: LockComment200Response


Fissa commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
broadcast_id String
sso String No

Risposta

Restituisce: PinComment200Response


Salva commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_comment_params models::CreateCommentParams
is_live bool No
do_spam_check bool No
send_emails bool No
populate_notifications bool No

Risposta

Restituisce: SaveComment200Response


Salva commenti in blocco Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_comment_params Vecmodels::CreateCommentParams
is_live bool No
do_spam_check bool No
send_emails bool No
populate_notifications bool No

Risposta

Restituisce: Vec<models::SaveComment200Response>


Imposta testo del commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
broadcast_id String
comment_text_update_request models::CommentTextUpdateRequest
edit_key String No
sso String No

Risposta

Restituisce: SetCommentText200Response


Sblocca utente dal commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
un_block_from_comment_params models::UnBlockFromCommentParams
user_id String No
anon_user_id String No

Risposta

Restituisce: UnBlockCommentPublic200Response


Rimuovi segnalazione del commento Internal Link

Parametri

Name Type Required Description
tenant_id String
id String
user_id String No
anon_user_id String No

Risposta

Restituisce: FlagComment200Response


Sblocca commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
broadcast_id String
sso String No

Risposta

Restituisce: LockComment200Response


Rimuovi fissaggio del commento Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
broadcast_id String
sso String No

Risposta

Restituisce: PinComment200Response


Aggiorna commento Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String
body models::PickApiCommentPeriodUpdatableCommentFields
context_user_id String No
do_spam_check bool No
is_live bool No

Risposta

Restituisce: FlagCommentPublic200Response


Vota commento Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
url_id String
broadcast_id String
vote_body_params models::VoteBodyParams
session_id String No
sso String No

Risposta

Restituisce: VoteComment200Response


Aggiungi configurazione dominio Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
add_domain_config_params models::AddDomainConfigParams

Risposta

Restituisce: AddDomainConfig200Response


Elimina configurazione dominio Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
domain String

Risposta

Restituisce: DeleteDomainConfig200Response

Ottieni configurazione dominio Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
domain String

Risposta

Restituisce: GetDomainConfig200Response


Ottieni configurazioni dominio Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String

Risposta

Restituisce: GetDomainConfigs200Response

Modifica parziale configurazione dominio Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
domain_to_update String
patch_domain_config_params models::PatchDomainConfigParams

Risposta

Restituisce: GetDomainConfig200Response


Sostituisci configurazione dominio Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
domain_to_update String
update_domain_config_params models::UpdateDomainConfigParams

Risposta

Restituisce: GetDomainConfig200Response


Crea modello email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_email_template_body models::CreateEmailTemplateBody

Risposta

Restituisce: CreateEmailTemplate200Response

Esempio

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

Elimina modello email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Elimina errore di rendering del modello email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
error_id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni modello email Internal Link


Parametri

Name Type Required Description
tenant_id String
id String

Response

Restituisce: GetEmailTemplate200Response

Esempio

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

Ottieni definizioni modelli email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String

Risposta

Restituisce: GetEmailTemplateDefinitions200Response

Esempio

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

Ottieni errori di rendering dei modelli email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
skip f64 No

Risposta

Restituisce: GetEmailTemplateRenderErrors200Response

Esempio

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

Ottieni modelli email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
skip f64 No

Risposta

Restituisce: GetEmailTemplates200Response

Esempio

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

Renderizza modello email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
render_email_template_body models::RenderEmailTemplateBody
locale String No

Risposta

Restituisce: RenderEmailTemplate200Response

Esempio

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

Aggiorna modello email Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_email_template_body models::UpdateEmailTemplateBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni registro eventi Internal Link

req tenantId urlId userIdWS

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

Risposta

Restituisce: GetEventLog200Response


Ottieni registro eventi globale Internal Link

req tenantId urlId userIdWS

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

Risposta

Restituisce: GetEventLog200Response

Crea post del feed Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String No
is_live bool No
do_spam_check bool No
skip_dup_check bool No

Risposta

Restituisce: CreateFeedPost200Response


Crea post del feed pubblico Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String No
sso String No

Risposta

Restituisce: CreateFeedPostPublic200Response


Elimina post del feed pubblico Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
post_id String
broadcast_id String No
sso String No

Risposta

Restituisce: DeleteFeedPostPublic200Response


Ottieni post del feed Internal Link


req tenantId afterId

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
after_id String No
limit i32 No
tags Vec No

Risposta

Restituisce: GetFeedPosts200Response


Ottieni post del feed pubblici Internal Link

req tenantId afterId

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
after_id String No
limit i32 No
tags Vec No
sso String No
is_crawler bool No
include_user_info bool No

Risposta

Restituisce: GetFeedPostsPublic200Response

Ottieni statistiche dei post del feed Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
post_ids Vec
sso String No

Risposta

Restituisce: GetFeedPostsStats200Response

Ottieni reazioni utente pubbliche Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
post_ids Vec No
sso String No

Risposta

Restituisce: GetUserReactsPublic200Response


Reagisci a post del feed pubblico Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
post_id String
react_body_params models::ReactBodyParams
is_undo bool No
broadcast_id String No
sso String No

Risposta

Restituisce: ReactFeedPostPublic200Response


Aggiorna post del feed Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
feed_post models::FeedPost

Risposta

Restituisce: FlagCommentPublic200Response


Aggiorna post del feed pubblico Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
post_id String
update_feed_post_params models::UpdateFeedPostParams
broadcast_id String No
sso String No

Risposta

Restituisce: CreateFeedPostPublic200Response


Segnala commento pubblico Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
is_flagged bool
sso String No

Risposta

Restituisce: FlagCommentPublic200Response


Aggiungi hashtag Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String No
create_hash_tag_body models::CreateHashTagBody No

Risposta

Restituisce: AddHashTag200Response

Esempio

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

Aggiungi hashtag in blocco Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String No
bulk_create_hash_tags_body models::BulkCreateHashTagsBody No

Risposta

Restituisce: AddHashTagsBulk200Response

Esempio

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

Elimina hashtag Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tag String
tenant_id String No
delete_hash_tag_request models::DeleteHashTagRequest No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni hashtag Internal Link

Parametri

Name Type Required Description
tenant_id String
page f64 No

Risposta

Restituisce: GetHashTags200Response

Esempio

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

Modifica parziale hashtag Internal Link

Parametri

Name Type Required Description
tag String
tenant_id String No
update_hash_tag_body models::UpdateHashTagBody No

Risposta

Restituisce: PatchHashTag200Response

Esempio

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

Crea moderatore Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_moderator_body models::CreateModeratorBody

Risposta

Restituisce: CreateModerator200Response

Esempio

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

Elimina moderatore Internal Link

Parametri

Name Type Required Description
tenant_id String
id String
send_email String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni moderatore Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetModerator200Response

Esempio

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

Ottieni moderatori Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
skip f64 No

Risposta

Restituisce: GetModerators200Response

Esempio

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

Invia invito Internal Link

Parametri

Name Type Required Description
tenant_id String
id String
from_name String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Aggiorna moderatore Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_moderator_body models::UpdateModeratorBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Elimina conteggio notifiche Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni conteggio notifiche memorizzato Internal Link

Parametri

Name Type Required Description
tenant_id String
id String

Risposta

Restituisce: GetCachedNotificationCount200Response

Esempio

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

Ottieni conteggio notifiche Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
user_id String No
url_id String No
from_comment_id String No
viewed bool No

Risposta

Restituisce: GetNotificationCount200Response

Esempio

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

Ottieni notifiche Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
user_id String No
url_id String No
from_comment_id String No
viewed bool No
skip f64 No

Risposta

Restituisce: GetNotifications200Response

Esempio

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

Aggiorna notifica Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_notification_body models::UpdateNotificationBody
user_id String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Aggiungi pagina Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_api_page_data models::CreateApiPageData

Risposta

Restituisce: AddPageApiResponse


Elimina pagina Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: DeletePageApiResponse


Ottieni pagina per URL id Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String

Risposta

Restituisce: GetPageByUrlidApiResponse


Ottieni pagine Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String

Risposta

Restituisce: GetPagesApiResponse


Modifica parziale pagina Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_api_page_data models::UpdateApiPageData

Risposta

Restituisce: PatchPageApiResponse


Elimina evento webhook in sospeso Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni conteggio eventi webhook in sospeso Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String No
external_id String No
event_type String No
domain String No
attempt_count_gt f64 No

Risposta

Restituisce: GetPendingWebhookEventCount200Response

Esempio

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

Ottieni eventi webhook in sospeso Internal Link

Parametri

Name Type Required Description
tenant_id String
comment_id String No
external_id String No
event_type String No
domain String No
attempt_count_gt f64 No
skip f64 No

Risposta

Restituisce: GetPendingWebhookEvents200Response

Esempio

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

Crea configurazione domanda Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_question_config_body models::CreateQuestionConfigBody

Risposta

Restituisce: CreateQuestionConfig200Response

Esempio

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

Elimina configurazione domanda Internal Link

Parametri

Nome Tipo Required Description
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni configurazione domanda Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String Yes
id String Yes

Risposta

Restituisce: GetQuestionConfig200Response

Esempio

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

Ottieni configurazioni domande Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
skip f64 No

Risposta

Restituisce: GetQuestionConfigs200Response

Esempio

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

Aggiorna configurazione domanda Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_question_config_body models::UpdateQuestionConfigBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Crea risultato domanda Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_question_result_body models::CreateQuestionResultBody

Risposta

Restituisce: CreateQuestionResult200Response

Esempio

Esempio create_question_result
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateQuestionResultParams = CreateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_result_body: models::CreateQuestionResultBody {
6 question_id: "feedback-article-2026".to_string(),
7 comment_id: Some("cmt-2026-001".to_string()),
8 user_id: Some("reader-007".to_string()),
9 answer: "yes".to_string(),
10 score: Some(4),
11 metadata: Some(std::collections::HashMap::from([(
12 "path".to_string(),
13 "news/politics/2026-election".to_string(),
14 )])),
15 anonymous: Some(false),
16 submitted_at: Some("2026-01-12T09:15:00Z".to_string()),
17 },
18 };
19
20 let created: CreateQuestionResult200Response = create_question_result(&configuration, params).await?;
21 Ok(())
22}
23

Elimina risultato domanda Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni risultato domanda Internal Link

Parametri

Name Type Required Description
tenant_id String Yes
id String Yes

Risposta

Restituisce: GetQuestionResult200Response

Esempio

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

Ottieni risultati domande Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String No
user_id String No
start_date String No
question_id String No
question_ids String No
skip f64 No

Risposta

Restituisce: GetQuestionResults200Response

Esempio

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

Aggiorna risultato domanda Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String Yes
id String Yes
update_question_result_body models::UpdateQuestionResultBody Yes

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Aggrega risultati domande Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
question_id String No
question_ids Vec No
url_id String No
time_bucket models::AggregateTimeBucket No
start_date String No
force_recalculate bool No

Risposta

Restituisce: AggregateQuestionResults200Response


Aggrega risultati domande in blocco Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
bulk_aggregate_question_results_request models::BulkAggregateQuestionResultsRequest
force_recalculate bool No

Risposta

Restituisce: BulkAggregateQuestionResults200Response


Combina commenti con risultati delle domande Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
question_id String No
question_ids Vec No
url_id String No
start_date String No
force_recalculate bool No
min_value f64 No
max_value f64 No
limit f64 No

Risposta

Restituisce: CombineCommentsWithQuestionResults200Response


Aggiungi utente SSO Internal Link


Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
create_apisso_user_data models::CreateApissoUserData

Risposta

Restituisce: AddSsoUserApiResponse


Elimina utente SSO Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
delete_comments bool No
comment_delete_mode String No

Risposta

Restituisce: DeleteSsoUserApiResponse


Ottieni utente SSO per email Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
email String

Risposta

Restituisce: GetSsoUserByEmailApiResponse


Ottieni utente SSO per ID Internal Link


Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String

Risposta

Restituisce: GetSsoUserByIdApiResponse


Ottieni utenti SSO Internal Link

Parametri

Name Tipo Obbligatorio Descrizione
tenant_id String
skip i32 No

Risposta

Restituisce: GetSsoUsers200Response


Modifica parziale utente SSO Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool No

Risposta

Restituisce: PatchSsoUserApiResponse


Sostituisci utente SSO Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool No

Risposta

Restituisce: PutSsoUserApiResponse

Crea sottoscrizione Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
create_api_user_subscription_data models::CreateApiUserSubscriptionData

Risposta

Restituisce: CreateSubscriptionApiResponse


Elimina sottoscrizione Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
user_id String No

Risposta

Restituisce: DeleteSubscriptionApiResponse


Ottieni sottoscrizioni Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
user_id String No

Risposta

Restituisce: GetSubscriptionsApiResponse


Ottieni utilizzi giornalieri del tenant Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String Yes
year_number f64 No
month_number f64 No
day_number f64 No
skip f64 No

Risposta

Restituisce: GetTenantDailyUsages200Response

Esempio

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

Crea pacchetto tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_tenant_package_body models::CreateTenantPackageBody

Risposta

Restituisce: CreateTenantPackage200Response

Esempio

Esempio di create_tenant_package
Copy Copy
1
2async fn run_create_package() -> Result<(), Error> {
3 let params: CreateTenantPackageParams = CreateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_package_body: models::CreateTenantPackageBody {
6 name: "Acme News Package".to_string(),
7 description: Some("Moderated comments for Acme News articles".to_string()),
8 plan: Some("standard".to_string()),
9 allow_gifs: Some(true),
10 gif_rating: Some(GifRating::GeneralAudience),
11 image_content_profanity_level: Some(ImageContentProfanityLevel::Moderate),
12 sso_security_level: Some(SsoSecurityLevel::Strict),
13 custom_config: Some(CustomConfigParameters {
14 max_comment_length: Some(1000),
15 require_moderation: Some(true),
16 }),
17 },
18 };
19 let response: CreateTenantPackage200Response = create_tenant_package(&configuration, params).await?;
20 let _package: TenantPackage = response.0;
21 Ok(())
22}
23

Elimina pacchetto tenant Internal Link


Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni pacchetto tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetTenantPackage200Response

Esempio

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

Ottieni pacchetti tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
skip f64 No

Risposta

Restituisce: GetTenantPackages200Response

Esempio

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

Sostituisci pacchetto tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
replace_tenant_package_body models::ReplaceTenantPackageBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

Esempio di replace_tenant_package
Copy Copy
1
2async fn run_replace_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: ReplaceTenantPackageParams = ReplaceTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "package-basic-2026".to_string(),
6 replace_tenant_package_body: models::ReplaceTenantPackageBody {
7 name: "Moderation Basic".to_string(),
8 description: Some("Standard moderation package for news sites".to_string()),
9 enabled: Some(true),
10 plan: Some("standard".to_string()),
11 custom_config_parameters: Some(models::CustomConfigParameters {
12 max_comment_length: Some(1000),
13 allow_images: Some(true),
14 }),
15 vote_style: Some(models::VoteStyle::Thumbs),
16 },
17 };
18 let response = replace_tenant_package(&configuration, params).await?;
19 Ok(response)
20}
21

Aggiorna pacchetto tenant Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_tenant_package_body models::UpdateTenantPackageBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Crea utente tenant Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_tenant_user_body models::CreateTenantUserBody

Risposta

Restituisce: CreateTenantUser200Response

Esempio

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

Elimina utente tenant Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
delete_comments String No
comment_delete_mode String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni utente tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetTenantUser200Response

Esempio

get_tenant_user Esempio
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantUserParams = GetTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-7a3f2b".to_string(),
6 };
7 let include_related: Option<String> = Some("roles,preferences".to_string());
8 let response: GetTenantUser200Response = get_tenant_user(&configuration, params).await?;
9 Ok(())
10}
11

Ottieni utenti tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
skip f64 No

Risposta

Restituisce: GetTenantUsers200Response

Esempio

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

Sostituisci utente tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
replace_tenant_user_body models::ReplaceTenantUserBody
update_comments String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
redirect_url String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Aggiorna utente tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_tenant_user_body models::UpdateTenantUserBody
update_comments String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Crea tenant Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
create_tenant_body models::CreateTenantBody

Risposta

Restituisce: CreateTenant200Response

Esempio

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

Elimina tenant Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
id String
sure String No

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Ottieni tenant Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetTenant200Response

Esempio

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

Ottieni tenant Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
meta String No
skip f64 No

Risposta

Restituisce: GetTenants200Response

Esempio

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

Aggiorna tenant Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_tenant_body models::UpdateTenantBody

Risposta

Restituisce: FlagCommentPublic200Response

Esempio

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

Carica immagine Internal Link


Carica e ridimensiona un'immagine

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
file std::path::PathBuf
size_preset models::SizePreset No
url_id String No

Risposta

Restituisce: UploadImageResponse


Ottieni progresso badge utente per id Internal Link

Parametri

Name Type Required Description
tenant_id String
id String

Risposta

Restituisce: GetUserBadgeProgressById200Response


Ottieni progresso badge utente per ID utente Internal Link

Parametri

Name Type Obbligatorio Descrizione
tenant_id String
user_id String

Risposta

Restituisce: GetUserBadgeProgressById200Response


Ottieni elenco progresso badge utente Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
user_id String No
limit f64 No
skip f64 No

Risposta

Restituisce: GetUserBadgeProgressList200Response


Crea badge utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
create_user_badge_params models::CreateUserBadgeParams

Risposta

Restituisce: CreateUserBadge200Response


Elimina badge utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: UpdateUserBadge200Response


Ottieni badge utente Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetUserBadge200Response


Ottieni badge utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
user_id String No
badge_id String No
displayed_on_comments bool No
limit f64 No
skip f64 No

Risposta

Restituisce: GetUserBadges200Response


Aggiorna badge utente Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
update_user_badge_params models::UpdateUserBadgeParams

Risposta

Restituisce: UpdateUserBadge200Response


Ottieni conteggio notifiche utente Internal Link


Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
sso String No

Risposta

Restituisce: GetUserNotificationCount200Response


Ottieni notifiche utente Internal Link

Parametri

Nome Tipo Richiesto Descrizione
tenant_id String
page_size i32 No
after_id String No
include_context bool No
after_created_at i64 No
unread_only bool No
dm_only bool No
no_dm bool No
include_translations bool No
sso String No

Risposta

Restituisce: GetUserNotifications200Response


Reimposta conteggio notifiche utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
sso String No

Risposta

Restituisce: ResetUserNotifications200Response

Reimposta notifiche utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
after_id String No
after_created_at i64 No
unread_only bool No
dm_only bool No
no_dm bool No
sso String No

Risposta

Restituisce: ResetUserNotifications200Response


Aggiorna stato sottoscrizione notifiche commenti utente Internal Link

Abilita o disabilita le notifiche per un commento specifico.

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
notification_id String
opted_in_or_out String
comment_id String
sso String No

Risposta

Restituisce: UpdateUserNotificationStatus200Response


Aggiorna stato sottoscrizione notifiche per pagina utente Internal Link

Abilita o disabilita le notifiche per una pagina. Quando gli utenti sono iscritti a una pagina, vengono create notifiche per nuovi commenti di livello principale, e anche

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
url String
page_title String
subscribed_or_unsubscribed String
sso String No

Risposta

Restituisce: UpdateUserNotificationStatus200Response

Aggiorna stato notifica utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
notification_id String
new_status String
sso String No

Risposta

Restituisce: UpdateUserNotificationStatus200Response


Ottieni stati presenza utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id_ws String
user_ids String

Risposta

Restituisce: GetUserPresenceStatuses200Response

Cerca utenti Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
username_starts_with String
mention_group_ids Vec No
sso String No

Risposta

Restituisce: SearchUsers200Response


Ottieni utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String

Risposta

Restituisce: GetUser200Response

Esempio

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

Crea voto Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
comment_id String
direction String
user_id String No
anon_user_id String No

Risposta

Restituisce: VoteComment200Response

Esempio

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

Elimina voto Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
id String
edit_key String No

Risposta

Restituisce: DeleteCommentVote200Response

Esempio

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

Ottieni voti Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String

Risposta

Restituisce: GetVotes200Response

Esempio

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

Ottieni voti per utente Internal Link

Parametri

Nome Tipo Obbligatorio Descrizione
tenant_id String
url_id String
user_id String No
anon_user_id String No

Risposta

Restituisce: GetVotesForUser200Response

Esempio

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

Hai bisogno di aiuto?

Se riscontri problemi o hai domande sul SDK Rust, per favore:

Contribuire

I contributi sono benvenuti! Visita il repository GitHub per le linee guida sui contributi.