FastComments.com

FastComments SDK per Nim

Questo è l'SDK Nim ufficiale per FastComments.

SDK Nim ufficiale per l'API di FastComments

Repository

Visualizza su GitHub


Requisiti Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

Installazione Internal Link

Utilizzo di Nimble

nimble install fastcomments

Compilazione dal sorgente

nimble build

Contenuto della libreria

Questa libreria contiene il client API generato e le utilità SSO per semplificare il lavoro con l'API.

API pubbliche vs protette

Per il client API, ci sono tre moduli API, api_default, api_public, e api_moderation. api_default contiene i metodi che richiedono la tua API key, e api_public contiene chiamate API che possono essere effettuate direttamente da un browser/dispositivo mobile/etc senza autenticazione. Il modulo api_moderation contiene i metodi per la dashboard dei moderatori.

I metodi di api_moderation coprono elenchi, conteggi, ricerche ed esportazioni di commenti e dei loro log; azioni di moderazione come rimozione/restore dei commenti, segnalazione, impostazione dello stato di revisione/spam/approvazione, modifica dei voti e riapertura/chiusura dei thread; ban (bandire un utente da un commento, annullare un ban, riepiloghi pre-ban, stato e preferenze del ban e conteggi degli utenti bannati); e badge e fiducia (assegnazione/rimozione di un badge, elenco dei badge manuali, ottenere/impostare il fattore di fiducia di un utente e recuperare il profilo interno di un utente). Ogni metodo di api_moderation accetta un parametro sso in modo che la chiamata sia autenticata come moderatore SSO.

Guida rapida Internal Link

Utilizzo delle API autenticate (DefaultAPI)

Importante: Gli endpoint autenticati richiedono che la tua chiave API sia impostata nell'header x-api-key.

import httpclient
import fastcomments
import fastcomments/apis/api_default
import fastcomments/models/model_comment_data

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

# Effettua chiamate API autenticate
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  direction = SortDirections.DESC
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

Utilizzo delle API pubbliche (PublicAPI)

Gli endpoint pubblici non richiedono autenticazione:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Effettua chiamate API pubbliche
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  page = 0,
  direction = SortDirections.DESC,
  sso = "",
  skip = 0,
  skipChildren = 0,
  limit = 0,
  limitChildren = 0,
  countChildren = false,
  fetchPageForCommentId = "",
  includeConfig = false,
  countAll = false,
  includei10n = false,
  locale = "",
  modules = "",
  isCrawler = false,
  includeNotificationCount = false,
  asTree = false,
  maxTreeDepth = 0,
  useFullTranslationIds = false,
  parentId = "",
  searchText = "",
  hashTags = @[],
  userId = "",
  customConfigStr = "",
  afterCommentId = "",
  beforeCommentId = ""
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

Utilizzo delle API di moderazione (ModerationAPI)

Gli endpoint di moderazione alimentano la dashboard dei moderatori e sono autenticati con un token SSO per il moderatore che agisce:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# Elenca i commenti nella dashboard di moderazione
let (response, httpResponse) = getApiComments(
  httpClient = client,
  page = 0,
  count = 30,
  textSearch = "",
  byIPFromComment = "",
  filters = "",
  searchFilters = "",
  sorts = "",
  demo = false,
  sso = "your-sso-token"
)

if response.isSome:
  let resp = response.get()
  echo "Found ", resp.comments.len, " comments"

Problemi comuni

  1. 401 authentication error: Assicurati di impostare l'header x-api-key sul tuo HttpClient prima di effettuare richieste a DefaultAPI: client.headers["x-api-key"] = "your-api-key"
  2. Wrong API class: Usa api_default per le richieste autenticate lato server, api_public per le richieste lato client/pubbliche e api_moderation per le richieste della dashboard dei moderatori.

Effettuare chiamate API Internal Link

Tutti i metodi API in questo SDK restituiscono tuple di (Option[ResponseType], Response). Il primo elemento contiene la risposta analizzata se ha successo, e il secondo elemento è la risposta HTTP grezza.

Esempio: Recupero dei commenti

import httpclient
import options
import fastcomments
import fastcomments/apis/api_default

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  direction = SortDirections.DESC
)

if httpResponse.code == Http200:
  if response.isSome:
    let resp = response.get()
    if resp.comments.isSome:
      echo "Found ", resp.comments.get().len, " comments"

Note Internal Link


ID di broadcast

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

SSO (Single Sign-On)

Per esempi di SSO, vedi sotto.

Utilizzo SSO Internal Link


SSO Semplice

import fastcomments/sso

let user = newSimpleSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  avatar = "https://example.com/avatar.jpg"
)
let sso = newSimple(simpleUserData = user)
let token = sso.createToken()

echo "SSO Token: ", token

SSO Sicuro

import fastcomments/sso

let user = newSecureSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  username = "johndoe",
  avatar = "https://example.com/avatar.jpg"
)

let apiKey = "your-api-key"
let sso = newSecure(apiKey = apiKey, secureUserData = user)
let token = sso.createToken()

echo "Secure SSO Token: ", token

aggregate Internal Link

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
aggregationRequestAggregationRequestNo
parentTenantIdstringNo
includeStatsboolNo

Risposta

Restituisce: Option[AggregateResponse]

Esempio

Esempio di aggregate
Copy Copy
1
2let (response, httpResponse) = client.aggregate(
3 tenantId = "my-tenant-123",
4 aggregationRequest = AggregationRequest(groupBy = @["articleId"], metrics = @["commentCount"], filters = @[], limit = 0),
5 parentTenantId = "",
6 includeStats = false
7)
8
9if response.isSome:
10 let agg = response.get()
11 discard agg
12

getAuditLogs Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
limitfloat64No
skipfloat64No
orderSORTDIRNo
afterfloat64No
beforefloat64No

Risposta

Restituisce: Option[GetAuditLogsResponse]

Esempio

Esempio di getAuditLogs
Copy Copy
1
2let (response, httpResponse) = client.getAuditLogs(
3 tenantId = "my-tenant-123",
4 limit = 50.0,
5 skip = 0.0,
6 order = SORTDIR.DESC,
7 after = 1622505600.0,
8 before = 1625097600.0
9)
10
11if response.isSome:
12 let logs = response.get()
13 echo logs
14else:
15 echo "No audit logs returned"
16

logoutPublic Internal Link

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di logoutPublic
Copy Copy
1
2let (response, httpResponse) = client.logoutPublic(tenantId = "my-tenant-123", sessionId = "sess-9a8b7c6d", userId = "editor-87", revokeAll = false, ipAddress = "")
3if response.isSome:
4 let emptyResp = response.get()
5 echo "Logout successful for user: ", "editor-87"
6else:
7 echo "Logout failed"
8

blockFromCommentPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostringNo

Risposta

Restituisce: Option[BlockSuccess]

Esempio

Esempio di blockFromCommentPublic
Copy Copy
1
2let publicParams = PublicBlockFromCommentParams(
3 reason = "Repeated spam links",
4 durationMinutes = 1440,
5 blockAll = true,
6 notifyUser = false,
7 tags = @["spam", "auto-block"]
8)
9
10let (response, httpResponse) = client.blockFromCommentPublic(
11 tenantId = "my-tenant-123",
12 commentId = "comment-98765",
13 publicBlockFromCommentParams = publicParams,
14 sso = ""
15)
16
17if response.isSome:
18 let blockResult = response.get()
19 echo "Block succeeded: ", $blockResult
20else:
21 echo "Block failed, HTTP status: ", $httpResponse.status
22

unBlockCommentPublic Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostringNo

Risposta

Restituisce: Option[UnblockSuccess]

Esempio

Esempio di unBlockCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.unBlockCommentPublic(tenantId = "my-tenant-123", commentId = "cmt-987654321", publicBlockFromCommentParams = PublicBlockFromCommentParams(), sso = "")
3if response.isSome:
4 let unblockResult = response.get()
5 discard unblockResult
6else:
7 discard httpResponse
8

checkedCommentsForBlocked Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdsstringNo
ssostringNo

Risposta

Restituisce: Option[CheckBlockedCommentsResponse]

Esempio

Esempio di checkedCommentsForBlocked
Copy Copy
1
2let (response, httpResponse) = client.checkedCommentsForBlocked(
3 tenantId = "my-tenant-123",
4 commentIds = "",
5 sso = ""
6)
7if response.isSome:
8 let blockedResp = response.get()
9 echo "Received blocked comments response: ", blockedResp
10else:
11 echo "No response body; HTTP status: ", $httpResponse.status
12

blockUserFromComment Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
blockFromCommentParamsBlockFromCommentParamsNo
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[BlockSuccess]

Esempio

Esempio blockUserFromComment
Copy Copy
1
2let (response, httpResponse) = client.blockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "cmt-7890",
5 blockFromCommentParams = BlockFromCommentParams(
6 reason = "Repeated abusive language",
7 durationMinutes = 1440,
8 notifyUser = true,
9 tags = @["abuse", "automated"]
10 ),
11 userId = "user-456",
12 anonUserId = ""
13)
14
15if response.isSome:
16 let result = response.get()
17 discard result
18else:
19 discard httpResponse
20

createCommentPublic Internal Link

Parametri

NameTypeObbligatorioDescrizione
tenantIdstring
urlIdstring
broadcastIdstringNo
commentDataCommentDataNo
sessionIdstringNo
ssostringNo

Risposta

Restituisce: Option[SaveCommentsResponseWithPresence]

Esempio

Esempio di createCommentPublic
Copy Copy
1
2let commentPayload = CommentData(
3 text = "Great write-up on serverless architectures.",
4 authorName = "Jane Doe",
5 authorEmail = "jane.doe@example.com",
6 isPublic = true,
7 tags = @["tech", "serverless"]
8)
9let (response, httpResponse) = client.createCommentPublic(
10 tenantId = "my-tenant-123",
11 urlId = "news/2026/06/fastcomments-sdk-update",
12 broadcastId = "broadcast-2026-06-19",
13 commentData = commentPayload,
14 sessionId = "sess-8a7b6c",
15 sso = "sso-jwt-abc123"
16)
17if response.isSome:
18 let saved = response.get()
19 discard saved
20

deleteComment Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
idstringNo
contextUserIdstringNo
isLiveboolNo

Risposta

Restituisce: Option[DeleteCommentResult]

Esempio

Esempio di deleteComment
Copy Copy
1
2let (response, httpResponse) = client.deleteComment(tenantId = "my-tenant-123", id = "cmt-98765", contextUserId = "user-456", isLive = true)
3if response.isSome:
4 let result = response.get()
5 echo "DeleteCommentResult received"
6else:
7 echo "No result, HTTP status: ", httpResponse.status
8

deleteCommentPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
broadcastIdstringNo
editKeystringNo
ssostringNo

Risposta

Restituisce: Option[PublicAPIDeleteCommentResponse]

Esempio

Esempio di deleteCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentPublic(tenantId = "my-tenant-123", commentId = "cmt-987654321", broadcastId = "", editKey = "", sso = "")
3if response.isSome:
4 let deleted = response.get()
5 echo "Delete acknowledged, HTTP status: ", httpResponse.status
6

deleteCommentVote Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
voteIdstringNo
urlIdstring
broadcastIdstringNo
editKeystringNo
ssostringNo

Risposta

Restituisce: Option[VoteDeleteResponse]

Esempio

Esempio di deleteCommentVote
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 voteId = "vote-789",
6 urlId = "news/article-title",
7 broadcastId = "",
8 editKey = "",
9 sso = ""
10)
11if response.isSome:
12 let voteResp = response.get()
13 echo "Vote delete response:", voteResp
14else:
15 echo "No response body, HTTP response:", httpResponse
16

flagComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[FlagCommentResponse]

Esempio

Esempio flagComment
Copy Copy
1
2let (response, httpResponse) = client.flagComment(
3 tenantId = "my-tenant-123",
4 id = "cmt-98765",
5 userId = "user-12345",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let flagResp = response.get()
11 echo "Flag response received"
12else:
13 echo "No flag response returned"
14

getComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIGetCommentResponse]

Esempio

Esempio getComment
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-7890")
3if response.isSome:
4 let comment = response.get()
5 discard comment
6else:
7 echo "Comment not found"
8

getComments Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
pageintNo
limitintNo
skipintNo
asTreeboolNo
skipChildrenintNo
limitChildrenintNo
maxTreeDepthintNo
urlIdstring
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo
fromDateint64No
toDateint64No

Risposta

Restituisce: Option[APIGetCommentsResponse]

Esempio

Esempio getComments
Copy Copy
1
2let (response, httpResponse) = client.getComments(
3 tenantId = "my-tenant-123",
4 page = 1,
5 limit = 25,
6 skip = 0,
7 asTree = true,
8 skipChildren = 0,
9 limitChildren = 5,
10 maxTreeDepth = 3,
11 urlId = "news/2026-global-economy",
12 userId = "user-789",
13 anonUserId = "",
14 contextUserId = "",
15 hashTag = "economy",
16 parentId = "",
17 direction = SortDirections.Desc,
18 fromDate = 1710000000000'i64,
19 toDate = 1710100000000'i64
20)
21if response.isSome:
22 let commentsResp = response.get()
23 discard commentsResp
24

getCommentsPublic Internal Link

req tenantId urlId

Parametri

NameTypeObbligatorioDescrizione
tenantIdstring
urlIdstring
pageintNo
directionSortDirectionsNo
ssostringNo
skipintNo
skipChildrenintNo
limitintNo
limitChildrenintNo
countChildrenboolNo
fetchPageForCommentIdstringNo
includeConfigboolNo
countAllboolNo
includei10nboolNo
localestringNo
modulesstringNo
isCrawlerboolNo
includeNotificationCountboolNo
asTreeboolNo
maxTreeDepthintNo
useFullTranslationIdsboolNo
parentIdstringNo
searchTextstringNo
hashTagsseq[string]No
userIdstringNo
customConfigStrstringNo
afterCommentIdstringNo
beforeCommentIdstringNo

Risposta

Restituisce: Option[GetCommentsResponseWithPresencePublicComment]

Esempio

Esempio di getCommentsPublic
Copy Copy
1
2let (response, httpResponse) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 page = 2,
6 direction = SortDirections.Descending,
7 sso = "",
8 skip = 0,
9 skipChildren = 0,
10 limit = 25,
11 limitChildren = 5,
12 countChildren = false,
13 fetchPageForCommentId = "",
14 includeConfig = true,
15 countAll = false,
16 includei10n = true,
17 locale = "en-US",
18 modules = "reactions,moderation",
19 isCrawler = false,
20 includeNotificationCount = true,
21 asTree = true,
22 maxTreeDepth = 3,
23 useFullTranslationIds = false,
24 parentId = "",
25 searchText = "climate change",
26 hashTags = @["climate", "research"],
27 userId = "user-789",
28 customConfigStr = "",
29 afterCommentId = "",
30 beforeCommentId = ""
31)
32
33if response.isSome:
34 let commentsResp = response.get()
35 echo "Received comments response:"
36 echo commentsResp
37else:
38 echo "No comments returned. HTTP status:", httpResponse.status
39

getCommentText Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
editKeystringNo
ssostringNo

Risposta

Restituisce: Option[PublicAPIGetCommentTextResponse]

Esempio

Esempio di getCommentText
Copy Copy
1
2let (response, httpResponse) = client.getCommentText(tenantId = "my-tenant-123", commentId = "cmt-987654321", editKey = "", sso = "")
3
4if response.isSome:
5 let commentTextResp = response.get()
6 echo commentTextResp
7else:
8 echo "No comment text returned"
9

getCommentVoteUserNames Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
dirintNo
ssostringNo

Risposta

Restituisce: Option[GetCommentVoteUserNamesSuccessResponse]

Esempio

Esempio getCommentVoteUserNames
Copy Copy
1
2let (response, httpResponse) = client.getCommentVoteUserNames(tenantId = "my-tenant-123", commentId = "cmt-987654", dir = 0, sso = "")
3if response.isSome:
4 let success: GetCommentVoteUserNamesSuccessResponse = response.get()
5 discard success
6

lockComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di lockComment
Copy Copy
1
2let (response, httpResponse) = client.lockComment(tenantId = "news-tenant-42", commentId = "cmt-8f3a2b9d", broadcastId = "", sso = "")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Locked comment successfully for tenant news-tenant-42"
6else:
7 echo "Failed to lock comment, HTTP status: ", $httpResponse.status
8

pinComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[ChangeCommentPinStatusResponse]

Esempio

Esempio di pinComment
Copy Copy
1
2let (response, httpResponse) = client.pinComment(tenantId = "my-tenant-123", commentId = "cmt-98765", broadcastId = "", sso = "")
3if response.isSome:
4 let pinnedResp = response.get()
5 echo "Pin status updated for comment cmt-98765"
6else:
7 echo "No response received"
8

saveComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
createCommentParamsCreateCommentParamsNo
isLiveboolNo
doSpamCheckboolNo
sendEmailsboolNo
populateNotificationsboolNo

Response

Restituisce: Option[APISaveCommentResponse]

Esempio

Esempio di saveComment
Copy Copy
1
2let createCommentParams = CreateCommentParams(
3 urlId = "news/2026/major-policy-change",
4 content = "This is a thoughtful comment on the policy change and its potential impacts.",
5 authorName = "Morgan Lee",
6 authorEmail = "morgan.lee@example.org",
7 tags = @["policy","analysis"],
8 extraData = @[])
9
10let (response, httpResponse) = client.saveComment(
11 tenantId = "my-tenant-123",
12 createCommentParams = createCommentParams,
13 isLive = true,
14 doSpamCheck = true,
15 sendEmails = false,
16 populateNotifications = true)
17
18if response.isSome:
19 let saved = response.get()
20 discard saved
21

saveCommentsBulk Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createCommentParamsseq[CreateCommentParams]No
isLiveboolNo
doSpamCheckboolNo
sendEmailsboolNo
populateNotificationsbool): (Option[seq[SaveCommentsBulkResponse]]No
idstringNo
fromNamestringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di saveCommentsBulk
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 isLive = false,
6 doSpamCheck = false,
7 sendEmails = false,
8 populateNotifications = false,
9 id = "",
10 fromName = ""
11)
12
13if response.isSome:
14 let apiResp = response.get()
15 echo "Bulk save succeeded, tenant:", " my-tenant-123"
16else:
17 echo "Bulk save returned no API response"
18

setCommentText Internal Link

Parametri

NameTypeObbligatorioDescrizione
tenantIdstring
commentIdstring
broadcastIdstringNo
commentTextUpdateRequestCommentTextUpdateRequestNo
editKeystringNo
ssostringNo

Risposta

Restituisce: Option[PublicAPISetCommentTextResponse]

Esempio

Esempio di setCommentText
Copy Copy
1
2let (response, httpResponse) = client.setCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "",
6 commentTextUpdateRequest = CommentTextUpdateRequest(text: "Updated comment text to fix a typo and clarify meaning."),
7 editKey = "",
8 sso = ""
9)
10if response.isSome:
11 let result = response.get()
12 discard result
13

unBlockUserFromComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
unBlockFromCommentParamsUnBlockFromCommentParamsNo
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[UnblockSuccess]

Esempio

Esempio di unBlockUserFromComment
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-9f3b2a",
5 unBlockFromCommentParams = UnBlockFromCommentParams(),
6 userId = "user-1024",
7 anonUserId = "anon-77b"
8)
9
10if response.isSome:
11 let unblockResult = response.get()
12 echo unblockResult
13else:
14 echo "Unblock failed"
15

unFlagComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[FlagCommentResponse]

Esempio

Esempio di unFlagComment
Copy Copy
1
2let (response, httpResponse) = client.unFlagComment(tenantId = "my-tenant-123",
3 id = "comment-98765",
4 userId = "user-12345",
5 anonUserId = "")
6
7if response.isSome:
8 let flagResp = response.get()
9 echo "Unflagged comment response:", flagResp
10else:
11 echo "Unflag failed, HTTP status:", httpResponse.status
12

unLockComment Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di unLockComment
Copy Copy
1
2let tenantId = "my-tenant-123"
3let commentId = "cmt-987654321"
4let (response, httpResponse) = client.unLockComment(
5 tenantId = tenantId,
6 commentId = commentId,
7 broadcastId = "",
8 sso = ""
9)
10if response.isSome:
11 let apiResp = response.get()
12 echo "Unlocked comment ", commentId, " for tenant ", tenantId
13else:
14 echo "Unlock failed, HTTP status: ", $httpResponse.status
15

unPinComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[ChangeCommentPinStatusResponse]

Esempio

Esempio di unPinComment
Copy Copy
1
2let (response, httpResponse) = client.unPinComment(tenantId = "my-tenant-123", commentId = "cmt-987654321", broadcastId = "", sso = "")
3if response.isSome:
4 let result = response.get()
5 echo "Unpinned comment:", $result
6else:
7 echo "Unpin failed, HTTP status:", $httpResponse.status
8

updateComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updatableCommentParamsUpdatableCommentParamsNo
contextUserIdstringNo
doSpamCheckboolNo
isLiveboolNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateComment
Copy Copy
1
2let (response, httpResponse) = client.updateComment(
3 tenantId = "my-tenant-123",
4 id = "cmt-987654",
5 updatableCommentParams = UpdatableCommentParams(
6 text = "Updated comment: corrected facts and clarified wording.",
7 isApproved = true,
8 tags = @["news", "update"]
9 ),
10 contextUserId = "user-456",
11 doSpamCheck = true,
12 isLive = true
13)
14
15if response.isSome:
16 let apiResp = response.get()
17 discard apiResp
18

voteComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
urlIdstring
broadcastIdstringNo
voteBodyParamsVoteBodyParamsNo
sessionIdstringNo
ssostringNo

Risposta

Restituisce: Option[VoteResponse]

Esempio

Esempio di voteComment
Copy Copy
1
2let (response, httpResponse) = client.voteComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 urlId = "news/article-2026-inflation",
6 broadcastId = "",
7 voteBodyParams = VoteBodyParams(),
8 sessionId = "",
9 sso = ""
10)
11
12if response.isSome:
13 let voteResp = response.get()
14 discard voteResp
15else:
16 discard httpResponse
17

getCommentsForUser Internal Link

Parametri

NameTypeRequiredDescription
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagefloat64No
includei10nboolNo
localestringNo
isCrawlerboolNo

Risposta

Restituisce: Option[GetCommentsForUserResponse]

Esempio

Esempio di getCommentsForUser
Copy Copy
1
2let (response, httpResponse) = client.getCommentsForUser(
3 userId = "user-8421",
4 direction = SortDirections.Newest,
5 repliesToUserId = "",
6 page = 1.0,
7 includei10n = true,
8 locale = "en-US",
9 isCrawler = false
10)
11
12if response.isSome:
13 let comments = response.get()
14 discard comments
15

addDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
addDomainConfigParamsAddDomainConfigParamsNo

Risposta

Restituisce: Option[AddDomainConfigResponse]

Esempio

Esempio di addDomainConfig
Copy Copy
1
2let config = AddDomainConfigParams(
3 domain: "comments.example-news.com",
4 enabled: true,
5 allowedOrigins: @["https://www.example-news.com", "https://m.example-news.com"],
6 commentsPath: "/news/world/election-coverage",
7 priority: 5
8)
9let (response, httpResponse) = client.addDomainConfig(tenantId = "my-tenant-123", addDomainConfigParams = config)
10if response.isSome:
11 let created = response.get()
12 echo "Created domain config:", created
13else:
14 echo "Failed to create domain config, HTTP status:", httpResponse.status.code
15

deleteDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
domainstringNo

Risposta

Restituisce: Option[DeleteDomainConfigResponse]

Esempio

Esempio di deleteDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let deleted = response.get()
5 echo "DeleteDomainConfig succeeded for tenant ", "my-tenant-123"
6else:
7 echo "DeleteDomainConfig failed. HTTP status: ", $httpResponse.status
8

getDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
domainstringNo

Risposta

Restituisce: Option[GetDomainConfigResponse]

Esempio

Esempio di getDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news/top-story-2026")
3if response.isSome:
4 let cfg = response.get()
5 discard cfg
6else:
7 discard httpResponse
8

getDomainConfigs Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring

Risposta

Restituisce: Option[GetDomainConfigsResponse]

Esempio

Esempio di getDomainConfigs
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if response.isSome:
4 let domainConfigs = response.get()
5 echo "Received domain configs for tenant my-tenant-123"
6 echo domainConfigs
7else:
8 echo "No domain configs returned"
9

patchDomainConfig Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
domainToUpdatestringNo
patchDomainConfigParamsPatchDomainConfigParamsNo

Risposta

Restituisce: Option[PatchDomainConfigResponse]

Esempio

Esempio di patchDomainConfig
Copy Copy
1
2let patchParams: PatchDomainConfigParams = PatchDomainConfigParams(
3 allowedOrigins = @["https://news.example.com", "https://cdn.news.com"],
4 enableComments = true,
5 moderationRequired = false,
6 maxCommentLength = 2000,
7 primaryDomain = "comments.news-site.com"
8)
9let (response, httpResponse) = client.patchDomainConfig(
10 tenantId = "my-tenant-123",
11 domainToUpdate = "comments.news-site.com",
12 patchDomainConfigParams = patchParams
13)
14if response.isSome:
15 let cfg = response.get()
16 echo "Patched domain config received:", cfg
17else:
18 echo "No response body, HTTP status:", httpResponse.statusCode
19

putDomainConfig Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
domainToUpdatestringNo
updateDomainConfigParamsUpdateDomainConfigParamsNo

Risposta

Restituisce: Option[PutDomainConfigResponse]

Esempio

Esempio di putDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.putDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "blog.example.com",
5 updateDomainConfigParams = UpdateDomainConfigParams(
6 allowAnonymous = false,
7 moderationEnabled = true,
8 maxCommentLength = 800,
9 allowedOrigins = @["https://blog.example.com", "https://cdn.blog.example.com"],
10 enableThreadedComments = true
11 )
12)
13
14if response.isSome:
15 let cfg = response.get()
16 echo cfg
17else:
18 echo "Failed to update domain config, HTTP status: ", httpResponse.status
19

createEmailTemplate Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createEmailTemplateBodyCreateEmailTemplateBodyNo

Risposta

Restituisce: Option[CreateEmailTemplateResponse]

Esempio

Esempio di createEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.createEmailTemplate(tenantId = "my-tenant-123",
3 createEmailTemplateBody = CreateEmailTemplateBody(
4 name = "Weekly Newsletter",
5 subject = "This Week on NewsSite",
6 html = "<h1>Latest updates</h1><p>Read our latest article.</p>",
7 fromAddress = "no-reply@newssite.com",
8 isDefault = false,
9 tags = @["news", "weekly"]
10 )
11)
12
13if response.isSome:
14 let template = response.get()
15 echo "Created email template id: ", template.id
16

deleteEmailTemplate Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplate(
3 tenantId = "my-tenant-123",
4 id = "welcome-email-template-001"
5)
6
7if response.isSome:
8 let apiEmpty = response.get()
9 discard apiEmpty
10 echo "Email template deleted successfully"
11else:
12 echo "No response body"
13

deleteEmailTemplateRenderError Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo
errorIdstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteEmailTemplateRenderError
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplateRenderError(tenantId = "my-tenant-123", id = "welcome-email-template", errorId = "err-20250615-01")
3if response.isSome:
4 let emptyResp = response.get()
5 echo "Deleted render error, tenant:", "my-tenant-123"
6 echo "HTTP status:", httpResponse.status
7else:
8 echo "No body returned, HTTP status:", httpResponse.status
9

getEmailTemplate Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetEmailTemplateResponse]

Esempio

Esempio getEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email-01")
3if response.isSome:
4 let template = response.get()
5 discard template
6

getEmailTemplateDefinitions Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring

Risposta

Restituisce: Option[GetEmailTemplateDefinitionsResponse]

Esempio

Esempio di getEmailTemplateDefinitions
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if response.isSome:
4 let definitions = response.get()
5 echo "Email template definitions for my-tenant-123: ", definitions
6else:
7 echo "Failed to retrieve templates, HTTP status: ", httpResponse.status
8

getEmailTemplateRenderErrors Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
idstringNo
skipfloat64No

Risposta

Restituisce: Option[GetEmailTemplateRenderErrorsResponse]

Esempio

Esempio di getEmailTemplateRenderErrors
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateRenderErrors(tenantId = "my-tenant-123", id = "", skip = 0.0)
3if response.isSome:
4 let templateErrors = response.get()
5 discard templateErrors
6else:
7 discard httpResponse
8

getEmailTemplates Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
skipfloat64No

Risposta

Restituisce: Option[GetEmailTemplatesResponse]

Esempio

Esempio di getEmailTemplates
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let templates = response.get()
5 echo templates
6else:
7 echo "No email templates available"
8

renderEmailTemplate Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
renderEmailTemplateBodyRenderEmailTemplateBodyNo
localestringNo

Risposta

Restituisce: Option[RenderEmailTemplateResponse]

Esempio

Esempio di renderEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.renderEmailTemplate(
3 tenantId = "my-tenant-123",
4 renderEmailTemplateBody = RenderEmailTemplateBody(),
5 locale = "en-US"
6)
7
8if response.isSome:
9 let rendered = response.get()
10 echo rendered
11

updateEmailTemplate Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateEmailTemplateBodyUpdateEmailTemplateBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateEmailTemplate
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 subject = "Welcome to Newsly",
4 html = "<p>Thanks for joining Newsly! Visit https://newsly.example to get started.</p>",
5 fromAddress = "no-reply@newsly.example",
6 fromName = "Newsly Team",
7 enabled = true
8)
9let (response, httpResponse) = client.updateEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email", updateEmailTemplateBody = updateBody)
10if response.isSome:
11 let result = response.get()
12 discard result
13else:
14 discard httpResponse.statusCode
15

getEventLog Internal Link


req tenantId urlId userIdWS

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
urlIdstring
userIdWSstringNo
startTimeint64No
endTimeint64No

Risposta

Restituisce: Option[GetEventLogResponse]

Esempio

Esempio di getEventLog
Copy Copy
1
2let (response, httpResponse) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-2026-solar-panels",
5 userIdWS = "user-456",
6 startTime = 1688000000'i64,
7 endTime = 1688086400'i64
8)
9if response.isSome:
10 let eventLog = response.get()
11 discard eventLog
12

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametri

NameTypeRequiredDescription
tenantIdstring
urlIdstring
userIdWSstringNo
startTimeint64No
endTimeint64No

Risposta

Restituisce: Option[GetEventLogResponse]

Esempio

Esempio di getGlobalEventLog
Copy Copy
1
2let (response, httpResponse) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-2026-06-19",
5 userIdWS = "user-987",
6 startTime = int64(1622505600),
7 endTime = int64(1625097600)
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo eventLog, httpResponse.statusCode
12

createFeedPost Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createFeedPostParamsCreateFeedPostParamsNo
broadcastIdstringNo
isLiveboolNo
doSpamCheckboolNo
skipDupCheckboolNo

Risposta

Restituisce: Option[CreateFeedPostsResponse]

Esempio

Esempio di createFeedPost
Copy Copy
1
2let postParams = CreateFeedPostParams(
3 title = "Major Acquisition by TechCorp",
4 content = "TechCorp has acquired SoftWorks in a deal valued at $1.2B, creating a new market leader.",
5 url = "news/tech/major-acquisition",
6 tags = @["business", "technology"],
7 authorId = "journalist-321"
8)
9
10let (response, httpResponse) = client.createFeedPost(
11 tenantId = "my-tenant-123",
12 createFeedPostParams = postParams,
13 broadcastId = "",
14 isLive = false,
15 doSpamCheck = false,
16 skipDupCheck = false
17)
18
19if response.isSome:
20 let created = response.get()
21 discard created
22

createFeedPostPublic Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createFeedPostParamsCreateFeedPostParamsNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[CreateFeedPostResponse]

Esempio

Esempio di createFeedPostPublic
Copy Copy
1
2let params = CreateFeedPostParams(
3 title = "Breaking: Major Update on Product X",
4 content = "Today we released Product X v2.0 with performance improvements and bug fixes.",
5 author = "jane.doe",
6 tags = @["product", "release", "v2"],
7 isPinned = false
8)
9
10let (response, httpResponse) = client.createFeedPostPublic(tenantId = "my-tenant-123", createFeedPostParams = params, broadcastId = "", sso = "")
11
12if response.isSome:
13 let created = response.get()
14 echo "Created feed post:", created
15else:
16 echo "Failed to create feed post; HTTP status:", httpResponse.status
17

deleteFeedPostPublic Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
postIdstringNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[DeleteFeedPostPublicResponse]

Esempio

Esempio di deleteFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(tenantId = "my-tenant-123", postId = "", broadcastId = "", sso = "")
3if response.isSome:
4 let deleted = response.get()
5 echo "Delete successful"
6else:
7 echo "Delete failed"
8

getFeedPosts Internal Link

req tenantId afterId

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
afterIdstringNo
limitintNo
tagsseq[string]No

Risposta

Restituisce: Option[GetFeedPostsResponse]

Esempio

Esempio getFeedPosts
Copy Copy
1
2let (response, httpResponse) = client.getFeedPosts(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 limit = 0,
6 tags = @[]
7)
8if response.isSome:
9 let feed = response.get()
10 echo "Feed retrieved for tenant my-tenant-123"
11

getFeedPostsPublic Internal Link


req tenantId afterId

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
afterIdstringNo
limitintNo
tagsseq[string]No
ssostringNo
isCrawlerboolNo
includeUserInfoboolNo

Risposta

Restituisce: Option[PublicFeedPostsResponse]

Esempio

Esempio getFeedPostsPublic
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsPublic(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 limit = 0,
6 tags = @[],
7 sso = "",
8 isCrawler = false,
9 includeUserInfo = false
10)
11if response.isSome:
12 let feed = response.get()
13 discard feed
14

getFeedPostsStats Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
postIdsseq[string]No
ssostringNo

Risposta

Restituisce: Option[FeedPostsStatsResponse]

Esempio

Esempio di getFeedPostsStats
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsStats(tenantId = "my-tenant-123", postIds = @["news/article-2026", "opinion/market-trends"], sso = "")
3if response.isSome:
4 let stats = response.get()
5 echo "Received feed posts stats for tenant:", " my-tenant-123"
6 discard stats
7

getUserReactsPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
postIdsseq[string]No
ssostringNo

Risposta

Restituisce: Option[UserReactsResponse]

Esempio

getUserReactsPublic Esempio
Copy Copy
1
2let (response, httpResponse) = client.getUserReactsPublic(
3 tenantId = "my-tenant-123",
4 postIds = @["news/article-2026", "blog/opinion-987"],
5 sso = ""
6)
7if response.isSome:
8 let reacts = response.get()
9 echo "Received user reacts for tenant: ", "my-tenant-123"
10

reactFeedPostPublic Internal Link

Parametri

NameTypeObbligatorioDescription
tenantIdstring
postIdstringNo
reactBodyParamsReactBodyParamsNo
isUndoboolNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[ReactFeedPostResponse]

Esempio

Esempio di reactFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.reactFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-2026-06-19",
5 reactBodyParams = ReactBodyParams(reactType = "heart", tags = @["breaking", "editorial"]),
6 isUndo = false,
7 broadcastId = "broadcast-789",
8 sso = "sso-token-abc123"
9)
10if response.isSome:
11 let react = response.get()
12 echo react
13else:
14 echo "No response from reactFeedPostPublic, HTTP status:", httpResponse.statusCode
15

updateFeedPost Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
feedPostFeedPostNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateFeedPost
Copy Copy
1
2let feedPost: FeedPost = FeedPost(title: "City Council Approves New Waterfront Park",
3 content: "The council voted 5-2 to approve funding and a timeline for construction.",
4 tags: @["local", "parks", "city"],
5 published: true)
6
7let (response, httpResponse) = client.updateFeedPost(tenantId = "my-tenant-123", id = "post-456", feedPost = feedPost)
8
9if response.isSome:
10 let apiResp = response.get()
11 echo "Feed post updated successfully"
12 echo apiResp
13else:
14 echo "Failed to update feed post"
15 echo httpResponse
16

updateFeedPostPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
postIdstringNo
updateFeedPostParamsUpdateFeedPostParamsNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[CreateFeedPostResponse]

Esempio

Esempio di updateFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.updateFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-456",
5 updateFeedPostParams = UpdateFeedPostParams(title = "Weekly Product Update", content = "Released bug fixes and performance improvements in v2.1.", tags = @["release", "product"], pinned = false),
6 broadcastId = "",
7 sso = ""
8)
9if response.isSome:
10 let created = response.get()
11 echo "Updated feed post id: ", created.postId
12else:
13 echo "Update failed with HTTP status: ", httpResponse.status
14

flagCommentPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
isFlaggedboolNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio flagCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 isFlagged = true,
6 sso = ""
7)
8
9if response.isSome:
10 let apiResp = response.get()
11 discard apiResp
12else:
13 discard httpResponse
14

getGifLarge Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
largeInternalURLSanitizedstringNo

Risposta

Restituisce: Option[GifGetLargeResponse]

Esempio

Esempio di getGifLarge
Copy Copy
1
2let (response, httpResponse) = client.getGifLarge(tenantId = "news-tenant-42", largeInternalURLSanitized = "")
3if response.isSome:
4 let gif = response.get()
5 echo "Received GifGetLargeResponse"
6 discard gif
7else:
8 echo "No gif returned, HTTP status: " & $httpResponse.status
9

getGifsSearch Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
searchstringNo
localestringNo
ratingstringNo
pagefloat64No

Risposta

Restituisce: Option[GetGifsSearchResponse]

Esempio

Esempio di getGifsSearch
Copy Copy
1
2let (response, httpResponse) = client.getGifsSearch(
3 tenantId = "my-tenant-123",
4 search = "funny cat",
5 locale = "en-US",
6 rating = "PG",
7 page = 1.0
8)
9
10if response.isSome:
11 let gifs = response.get()
12 echo "Fetched GIFs response:", gifs
13

getGifsTrending Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
localestringNo
ratingstringNo
pagefloat64No

Risposta

Restituisce: Option[GetGifsTrendingResponse]

Esempio

Esempio di getGifsTrending
Copy Copy
1
2let (response, httpResponse) = client.getGifsTrending(tenantId = "my-tenant-123",
3 locale = "en-US",
4 rating = "pg-13",
5 page = 1.0)
6if response.isSome:
7 let trending = response.get()
8

addHashTag Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createHashTagBodyCreateHashTagBodyNo

Risposta

Restituisce: Option[CreateHashTagResponse]

Esempio

Esempio di addHashTag
Copy Copy
1
2let (response, httpResponse) = client.addHashTag(tenantId = "my-tenant-123",
3 createHashTagBody = CreateHashTagBody(name = "Breaking News",
4 slug = "breaking-news",
5 description = "Major breaking news items",
6 color = "#ff0000",
7 isTrending = true,
8 aliases = @["breaking", "news"]))
9if response.isSome:
10 let created = response.get()
11 echo created
12

addHashTagsBulk Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

Risposta

Restituisce: Option[BulkCreateHashTagsResponse]

Esempio

Esempio di addHashTagsBulk
Copy Copy
1
2let (response, httpResponse) = client.addHashTagsBulk(tenantId = "my-tenant-123", bulkCreateHashTagsBody = BulkCreateHashTagsBody(hashTags = @["news", "breaking", "politics"], replaceExisting = false))
3if response.isSome:
4 let result = response.get()
5 echo "Bulk tags response:", result
6else:
7 echo "No response body, HTTP status:", httpResponse.statusCode
8

deleteHashTag Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tagstringNo
tenantIdstring
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteHashTag
Copy Copy
1
2let (response, httpResponse) = client.deleteHashTag(
3 tag = "",
4 tenantId = "my-tenant-123",
5 deleteHashTagRequestBody = DeleteHashTagRequestBody()
6)
7
8if response.isSome:
9 let emptyResp = response.get()
10 echo "Deleted hashtag for tenant my-tenant-123; response:", $emptyResp, " status:", $httpResponse.status
11else:
12 echo "No response body; status:", $httpResponse.status
13

getHashTags Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
pagefloat64No

Risposta

Restituisce: Option[GetHashTagsResponse]

Esempio

Esempio di getHashTags
Copy Copy
1
2let (response, httpResponse) = client.getHashTags(tenantId = "news-portal-987", page = 2.0)
3if response.isSome:
4 let tagsResp = response.get()
5 echo "Received hashtags response"
6else:
7 echo "No hashtags returned"
8

patchHashTag Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tagstringNo
tenantIdstring
updateHashTagBodyUpdateHashTagBodyNo

Risposta

Restituisce: Option[UpdateHashTagResponse]

Esempio

Esempio di patchHashTag
Copy Copy
1
2let (response, httpResponse) = client.patchHashTag(tag = "breaking-news", tenantId = "my-tenant-123", updateHashTagBody = UpdateHashTagBody())
3if response.isSome:
4 let updatedHashTag = response.get()
5 echo updatedHashTag
6

deleteModerationVote Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
voteIdstringNo
ssostringNo

Risposta

Restituisce: Option[VoteDeleteResponse]

Esempio

Esempio di deleteModerationVote
Copy Copy
1
2let (response, httpResponse) = client.deleteModerationVote(commentId = "my-tenant-123/news/article-title/comment-987", voteId = "vote-456", sso = "sso-token-abc")
3if response.isSome:
4 let voteResp = response.get()
5 echo "Vote deleted:", voteResp
6else:
7 echo "Delete failed:", httpResponse
8

getApiComments Internal Link

Parametri

NomeTipoObbligatorioDescrizione
pagefloat64No
countfloat64No
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
demoboolNo
ssostringNo

Risposta

Restituisce: Option[ModerationAPIGetCommentsResponse]

Esempio

Esempio di getApiComments
Copy Copy
1
2let (response, httpResponse) = client.getApiComments(
3 page = 1.0,
4 count = 25.0,
5 textSearch = "opinion on climate summit",
6 byIPFromComment = "198.51.100.23",
7 filters = "status:approved",
8 searchFilters = "section:world",
9 sorts = "-createdAt",
10 demo = false,
11 sso = "sso-user-982bf"
12)
13
14if response.isSome:
15 let commentsResp = response.get()
16 echo "Retrieved comments response"
17else:
18 echo "No comments returned, HTTP status: ", httpResponse.status
19

getApiExportStatus Internal Link

Parametri

NomeTipoObbligatorioDescrizione
batchJobIdstringNo
ssostringNo

Risposta

Restituisce: Option[ModerationExportStatusResponse]

Esempio

Esempio di getApiExportStatus
Copy Copy
1
2let (response, httpResponse) = client.getApiExportStatus(batchJobId = "export-job-2026-06-01", sso = "sso-abc123token")
3if response.isSome:
4 let exportStatus = response.get()
5 echo repr(exportStatus)
6else:
7 echo "No export status available, HTTP code: ", httpResponse.statusCode
8

getApiIds Internal Link

Parametri

NomeTipoObbligatorioDescrizione
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demoboolNo
ssostringNo

Risposta

Restituisce: Option[ModerationAPIGetCommentIdsResponse]

Esempio

Esempio di getApiIds
Copy Copy
1
2let (response, httpResponse) = client.getApiIds(
3 textSearch = "urgent moderation review",
4 byIPFromComment = "203.0.113.45",
5 filters = "status:pending,flagged",
6 searchFilters = "author:jane.doe@example.com",
7 afterId = "cmt_9f8e7d6a",
8 demo = false,
9 sso = "sso-token-6b7f9a"
10)
11
12if response.isSome:
13 let idsResp = response.get()
14 echo idsResp
15

getBanUsersFromComment Internal Link

Parametri

NomeTipoRichiestoDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[GetBannedUsersFromCommentResponse]

Esempio

Esempio di getBanUsersFromComment
Copy Copy
1
2let (response, httpResponse) = client.getBanUsersFromComment(commentId = "comment-98765", sso = "")
3if response.isSome:
4 let bannedResp = response.get()
5 discard bannedResp
6else:
7 echo "No banned users found or request failed"
8

getCommentBanStatus Internal Link

Parametri

NameTypeRequiredDescription
commentIdstring
ssostringNo

Risposta

Restituisce: Option[GetCommentBanStatusResponse]

Esempio

Esempio di getCommentBanStatus
Copy Copy
1
2let (response, httpResponse) = client.getCommentBanStatus(commentId = "cmt-987654321", sso = "")
3
4if response.isSome:
5 let banStatus = response.get()
6 echo "Ban status for comment cmt-987654321: ", banStatus
7else:
8 echo "No ban status returned for comment cmt-987654321"
9

getCommentChildren Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[ModerationAPIChildCommentsResponse]

Esempio

Esempio di getCommentChildren
Copy Copy
1
2let (response, httpResponse) = client.getCommentChildren(commentId = "comment-98765", sso = "")
3if response.isSome:
4 let childResp = response.get()
5 discard childResp
6

getCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demoboolNo
ssostringNo

Risposta

Restituisce: Option[ModerationAPICountCommentsResponse]

Esempio

Esempio di getCount
Copy Copy
1
2let (response, httpResponse) = client.getCount(
3 textSearch = "climate change",
4 byIPFromComment = "203.0.113.5",
5 filter = "status:approved",
6 searchFilters = "author:john.doe@example.com;tag:opinion",
7 demo = false,
8 sso = "sso_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
9)
10if response.isSome:
11 let countResp = response.get()
12 discard countResp
13 echo "Count response received"
14else:
15 echo "No count data returned"
16

getCounts Internal Link

Parametri

NomeTipoObbligatorioDescrizione
ssostringNo

Risposta

Restituisce: Option[GetBannedUsersCountResponse]

Esempio

Esempio di getCounts
Copy Copy
1
2let (response, httpResponse) = client.getCounts(sso = "sso_my-tenant-123_token_AbCdEf123456")
3if response.isSome:
4 let counts = response.get()
5 echo counts
6else:
7 echo "Request failed with status:", httpResponse.status
8

getLogs Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[ModerationAPIGetLogsResponse]

Esempio

Esempio di getLogs
Copy Copy
1
2let (response, httpResponse) = client.getLogs(commentId = "cmt-8471f2d3", sso = "")
3if response.isSome:
4 let logs = response.get()
5 echo "Fetched logs:", logs
6

getManualBadges Internal Link

Parametri

NameTypeRequiredDescription
ssostringNo

Risposta

Restituisce: Option[GetTenantManualBadgesResponse]

Esempio

Esempio getManualBadges
Copy Copy
1
2let (response, httpResponse) = client.getManualBadges(sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")
3if response.isSome:
4 let badges = response.get()
5 echo "Manual badges received:"
6 echo badges
7else:
8 echo "No manual badges returned."
9 echo httpResponse
10

getManualBadgesForUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
badgesUserIdstringNo
commentIdstringYes
ssostringNo

Risposta

Restituisce: Option[GetUserManualBadgesResponse]

Esempio

Esempio di getManualBadgesForUser
Copy Copy
1
2let (response, httpResponse) = client.getManualBadgesForUser(
3 badgesUserId = "user-98765",
4 commentId = "comment-0a1b2c3d",
5 sso = "sso-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
6)
7if response.isSome:
8 let badges = response.get()
9 echo "Received manual badges for user"
10 echo "HTTP status: ", httpResponse.status
11

getModerationComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
includeEmailboolNo
includeIPboolNo
ssostringNo

Risposta

Restituisce: Option[ModerationAPICommentResponse]

Esempio

Esempio di getModerationComment
Copy Copy
1
2let (response, httpResponse) = client.getModerationComment(commentId = "cmt-8f3b2a9d", includeEmail = false, includeIP = false, sso = "")
3if response.isSome:
4 let comment = response.get()
5 discard comment
6else:
7 echo "No moderation comment returned"
8

getModerationCommentText Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[GetCommentTextResponse]

Esempio

getModerationCommentText Example
Copy Copy
1
2let (response, httpResponse) = client.getModerationCommentText(commentId = "comment-9f8b7a6c", sso = "")
3if response.isSome:
4 let commentData = response.get()
5 echo "Moderation comment text retrieved"
6else:
7 echo "No moderation comment text available"
8

getPreBanSummary Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
includeByUserIdAndEmailboolNo
includeByIPboolNo
includeByEmailDomainboolNo
ssostringNo

Risposta

Restituisce: Option[PreBanSummary]

Esempio

Esempio getPreBanSummary
Copy Copy
1
2let commentId = "cmt-7423"
3let (response, httpResponse) = client.getPreBanSummary(
4 commentId = commentId,
5 includeByUserIdAndEmail = false,
6 includeByIP = false,
7 includeByEmailDomain = false,
8 sso = ""
9)
10if response.isSome:
11 let preBanSummary = response.get()
12 discard preBanSummary
13else:
14 discard httpResponse
15

getSearchCommentsSummary Internal Link

Parametri

NomeTipoObbligatorioDescrizione
valuestringNo
filtersstringNo
searchFiltersstringNo
ssostringNo

Risposta

Restituisce: Option[ModerationCommentSearchResponse]

Esempio

Esempio di getSearchCommentsSummary
Copy Copy
1
2let (response, httpResponse) = client.getSearchCommentsSummary(
3 value = "news/climate-change-2026",
4 filters = "{\"tenantId\":\"my-tenant-123\",\"siteId\":\"main-site\",\"status\":\"approved\"}",
5 searchFilters = "author:journalist@news.com OR content:climate",
6 sso = "sso-xyz-7890"
7)
8if response.isSome:
9 let summary = response.get()
10 echo "Received summary: ", $summary
11else:
12 echo "No summary returned, HTTP response: ", $httpResponse
13

getSearchPages Internal Link


Parametri

NomeTipoRichiestoDescrizione
valuestringNo
ssostringNo

Risposta

Restituisce: Option[ModerationPageSearchResponse]

Esempio

Esempio di getSearchPages
Copy Copy
1
2let (response, httpResponse) = client.getSearchPages(value = "news/politics/election-2024", sso = "sso-user-7f3b9c")
3if response.isSome:
4 let pageSearch = response.get()
5 echo "Moderation page search returned"
6else:
7 echo "No moderation pages found"
8

getSearchSites Internal Link

Parametri

NameTypeRequiredDescription
valuestringNo
ssostringNo

Risposta

Restituisce: Option[ModerationSiteSearchResponse]

Esempio

Esempio di getSearchSites
Copy Copy
1
2let (response, httpResponse) = client.getSearchSites(value = "news/2026-olympics", sso = "sso-user-9876-token")
3if response.isSome:
4 let searchResponse: ModerationSiteSearchResponse = response.get()
5 echo "Found sites for search:", searchResponse
6

getSearchSuggest Internal Link

Parametri

NameTypeRequiredDescription
textSearchstringNo
ssostringNo

Risposta

Restituisce: Option[ModerationSuggestResponse]

Esempio

Esempio di getSearchSuggest
Copy Copy
1
2let (response, httpResponse) = client.getSearchSuggest(textSearch = "suspicious comment with spammy links", sso = "sso-user-789")
3if response.isSome:
4 let suggest = response.get()
5 echo "ModerationSuggestResponse:"
6 echo suggest
7else:
8 echo "No moderation suggestions returned. HTTP status: ", httpResponse.status
9

getSearchUsers Internal Link

Parametri

NomeTipoObbligatorioDescrizione
valuestringNo
ssostringNo

Risposta

Restituisce: Option[ModerationUserSearchResponse]

Esempio

Esempio di getSearchUsers
Copy Copy
1
2let (response, httpResponse) = client.getSearchUsers(value = "john.doe@example.com", sso = "sso-acme-789")
3if response.isSome:
4 let searchRes = response.get()
5 echo "Search result:", searchRes
6else:
7 echo "No users found"
8

getTrustFactor Internal Link

Parametri

NomeTipoObbligatorioDescrizione
userIdstringNo
ssostringNo

Risposta

Restituisce: Option[GetUserTrustFactorResponse]

Esempio

Esempio getTrustFactor
Copy Copy
1
2let (response, httpResponse) = client.getTrustFactor(userId = "user-1001", sso = "sso-token-6f7d9c")
3if response.isSome:
4 let trust = response.get()
5 echo "Received trust factor for user-1001"
6else:
7 echo "No trust factor returned, HTTP status: ", $httpResponse.status
8

getUserBanPreference Internal Link

Parametri

NomeTipoObbligatorioDescrizione
ssostringNo

Risposta

Restituisce: Option[APIModerateGetUserBanPreferencesResponse]

Esempio

Esempio di getUserBanPreference
Copy Copy
1
2let (response, httpResponse) = client.getUserBanPreference(sso = "sso-jwt-7f3a9b")
3if response.isSome:
4 let prefs = response.get()
5 echo "User ban preferences:", prefs
6else:
7 echo "No ban preference found"
8

getUserInternalProfile Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[GetUserInternalProfileResponse]

Esempio

Esempio di getUserInternalProfile
Copy Copy
1
2let (response, httpResponse) = client.getUserInternalProfile(commentId = "cmt-2026-00042", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoibXl1c2VyIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c")
3if response.isSome:
4 let profile = response.get()
5 discard profile
6

postAdjustCommentVotes Internal Link

Parametri

NameTypeRequiredDescription
commentIdstring
adjustCommentVotesParamsAdjustCommentVotesParamsNo
ssostringNo

Risposta

Restituisce: Option[AdjustVotesResponse]

Esempio

Esempio di postAdjustCommentVotes
Copy Copy
1
2let (response, httpResponse) = client.postAdjustCommentVotes(commentId = "cmt-987654", adjustCommentVotesParams = nil, sso = "sso-token-abc123")
3if response.isSome:
4 let adjusted = response.get()
5 discard adjusted
6

postApiExport Internal Link

Parametri

NomeTipoObbligatorioDescrizione
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
ssostringNo

Risposta

Restituisce: Option[ModerationExportResponse]

Esempio

Esempio postApiExport
Copy Copy
1
2let (response, httpResponse) = client.postApiExport(
3 textSearch = "offensive language and spam",
4 byIPFromComment = "203.0.113.45",
5 filters = "{\"status\":\"pending\",\"severity\":\"high\"}",
6 searchFilters = "authorEmail:editor@news-site.com",
7 sorts = "-createdAt",
8 sso = "sso-session-token-9f8b7c"
9)
10if response.isSome:
11 let exportResp = response.get()
12 echo "Moderation export received:", exportResp
13else:
14 echo "No export returned, HTTP status:", httpResponse.status.code
15

postBanUserFromComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
banEmailboolNo
banEmailDomainboolNo
banIPboolNo
deleteAllUsersCommentsboolNo
bannedUntilstringNo
isShadowBanboolNo
updateIdstringNo
banReasonstringNo
ssostringNo

Risposta

Restituisce: Option[BanUserFromCommentResult]

Esempio

Esempio di postBanUserFromComment
Copy Copy
1
2let (response, httpResponse) = client.postBanUserFromComment(
3 commentId = "cmt-8f3a1b",
4 banEmail = false,
5 banEmailDomain = false,
6 banIP = false,
7 deleteAllUsersComments = false,
8 bannedUntil = "",
9 isShadowBan = false,
10 updateId = "",
11 banReason = "",
12 sso = ""
13)
14if response.isSome:
15 let banResult = response.get()
16 discard banResult
17else:
18 echo "No ban result returned"
19

postBanUserUndo Internal Link

Parametri

NomeTipoObbligatorioDescrizione
banUserUndoParamsBanUserUndoParamsNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di postBanUserUndo
Copy Copy
1
2let banParams = BanUserUndoParams(
3 tenantId = "my-tenant-123",
4 userId = "user-987",
5 undoneBy = "moderator-42",
6 reason = "Reinstated after manual review"
7)
8let (response, httpResponse) = client.postBanUserUndo(banUserUndoParams = banParams, sso = "sso-jwt-abc123")
9if response.isSome:
10 let apiResp = response.get()
11 echo "Ban undo succeeded, http status: " & $httpResponse.status
12else:
13 echo "Ban undo failed, http status: " & $httpResponse.status
14

postBulkPreBanSummary Internal Link

Parametri

NomeTipoObbligatorioDescrizione
bulkPreBanParamsBulkPreBanParamsNo
includeByUserIdAndEmailboolNo
includeByIPboolNo
includeByEmailDomainboolNo
ssostringNo

Risposta

Restituisce: Option[BulkPreBanSummary]

Esempio

Esempio di postBulkPreBanSummary
Copy Copy
1
2let bulkParams = BulkPreBanParams(
3 tenantId = "my-tenant-123",
4 userIds = @["user-456", "user-789"],
5 emails = @["spammer@example.com", "bot@malicious.org"],
6 ipAddresses = @["203.0.113.5", "198.51.100.42"],
7 emailDomains = @["malicious.org"]
8)
9
10let (response, httpResponse) = client.postBulkPreBanSummary(
11 bulkPreBanParams = bulkParams,
12 includeByUserIdAndEmail = true,
13 includeByIP = true,
14 includeByEmailDomain = false,
15 sso = "sso-token-abc123"
16)
17
18if response.isSome:
19 let summary = response.get()
20 echo "Pre-ban summary:", summary
21

postCommentsByIds Internal Link

Parametri

NomeTipoRichiestoDescrizione
commentsByIdsParamsCommentsByIdsParamsNo
ssostringNo

Risposta

Restituisce: Option[ModerationAPIChildCommentsResponse]

Esempio

Esempio di postCommentsByIds
Copy Copy
1
2let commentsParams = CommentsByIdsParams(ids = @["cmt-1001", "cmt-1002"], includeReplies = true, maxDepth = 2)
3let (response, httpResponse) = client.postCommentsByIds(commentsByIdsParams = commentsParams, sso = "sso-user-7f3a9b")
4if response.isSome:
5 let result = response.get()
6 echo "Received child comments response: ", result
7

postFlagComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di postFlagComment
Copy Copy
1
2let (response, httpResponse) = client.postFlagComment(commentId = "comment-742", sso = "")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Comment flagged successfully"
6else:
7 echo "Failed to flag comment"
8

postRemoveComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[PostRemoveCommentResponse]

Esempio

Esempio di postRemoveComment
Copy Copy
1
2let (response, httpResponse) = client.postRemoveComment(commentId = "cmt-987654321", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.abc123.signature")
3if response.isSome:
4 let removed = response.get()
5 echo "Comment removed:", removed
6else:
7 echo "Failed to remove comment, HTTP response:", httpResponse
8

postRestoreDeletedComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di postRestoreDeletedComment
Copy Copy
1
2let (response, httpResponse) = client.postRestoreDeletedComment(commentId = "comment-8a7b6c5d", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SAMPLE_SIGNATURE")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Comment restored:", apiResp
6else:
7 echo "Restore request failed"
8

postSetCommentApprovalStatus Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
approvedboolNo
ssostringNo

Risposta

Restituisce: Option[SetCommentApprovedResponse]

Esempio

Esempio di postSetCommentApprovalStatus
Copy Copy
1
2let (response, httpResponse) = client.postSetCommentApprovalStatus(commentId = "cmt-7890", approved = false, sso = "")
3if response.isSome:
4 let setResp = response.get()
5 discard setResp
6

postSetCommentReviewStatus Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
reviewedboolNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di postSetCommentReviewStatus
Copy Copy
1
2let (response, httpResponse) = client.postSetCommentReviewStatus(
3 commentId = "cmt-98765-news-article",
4 reviewed = false,
5 sso = ""
6)
7if response.isSome:
8 let apiResp = response.get()
9 echo "Review status updated"
10else:
11 echo "Failed to update review status: " & $httpResponse.status
12

postSetCommentSpamStatus Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
spamboolNo
permNotSpamboolNo
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di postSetCommentSpamStatus
Copy Copy
1
2let (response, httpResponse) = client.postSetCommentSpamStatus(
3 commentId = "cmt-20250619-842",
4 spam = false,
5 permNotSpam = false,
6 sso = ""
7)
8if response.isSome:
9 let apiEmpty = response.get()
10 discard apiEmpty
11

postSetCommentText Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
setCommentTextParamsSetCommentTextParamsNo
ssostringNo

Risposta

Restituisce: Option[SetCommentTextResponse]

Esempio

Esempio di postSetCommentText
Copy Copy
1
2let (response, httpResponse) = client.postSetCommentText(commentId = "comment-4821",
3 setCommentTextParams = SetCommentTextParams(text = "Updated comment to clarify the main point and fix a typo."),
4 sso = "sso-user-8f3b9c")
5
6if response.isSome:
7 let setCommentResp = response.get()
8 echo "Received SetCommentTextResponse"
9

postUnFlagComment Internal Link


Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio postUnFlagComment
Copy Copy
1
2let (response, httpResponse) = client.postUnFlagComment(commentId = "comment-8f3a2b4e", sso = "")
3if response.isSome:
4 let apiEmpty = response.get()
5 echo "Comment unflagged successfully, response: ", apiEmpty
6else:
7 echo "Failed to unflag comment. HTTP response: ", httpResponse
8

postVote Internal Link

Parametri

NomeTipoObbligatorioDescrizione
commentIdstring
directionstringNo
ssostringNo

Risposta

Restituisce: Option[VoteResponse]

Esempio

Esempio postVote
Copy Copy
1
2let (response, httpResponse) = client.postVote(commentId = "comment-4f3a9e", direction = "up", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoidXNlci0xMjMifQ.signedPart")
3if response.isSome:
4 let vote = response.get()
5 echo "Vote recorded:", vote
6else:
7 echo "No vote returned"
8

putAwardBadge Internal Link

Parametri

NomeTipoRichiestoDescrizione
badgeIdstringNo
userIdstringNo
commentIdstring
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[AwardUserBadgeResponse]

Esempio

Esempio di putAwardBadge
Copy Copy
1
2let (response, httpResponse) = client.putAwardBadge(
3 badgeId = "gold-contributor",
4 userId = "user-8723",
5 commentId = "cmt-54a3b2",
6 broadcastId = "",
7 sso = ""
8)
9if response.isSome:
10 let award = response.get()
11 echo "Awarded badge received"
12else:
13 echo "No award response"
14

putCloseThread Internal Link

Parametri

NomeTipoObbligatorioDescrizione
urlIdstring
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di putCloseThread
Copy Copy
1
2let (response, httpResponse) = client.putCloseThread(urlId = "news/article-title", sso = "")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Thread closed successfully:", $apiResp
6else:
7 echo "Failed to close thread, HTTP response:", $httpResponse
8

putRemoveBadge Internal Link

Parametri

NameTypeRequiredDescription
badgeIdstringNo
userIdstringNo
commentIdstring
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: Option[RemoveUserBadgeResponse]

Esempio

Esempio di putRemoveBadge
Copy Copy
1
2let (response, httpResponse) = client.putRemoveBadge(badgeId = "verified-journalist",
3 userId = "user-7890",
4 commentId = "comment-98765",
5 broadcastId = "",
6 sso = "")
7
8if response.isSome:
9 let removeResp = response.get()
10 discard removeResp
11else:
12 discard httpResponse
13

putReopenThread Internal Link

Parametri

NomeTipoObbligatorioDescrizione
urlIdstring
ssostringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio putReopenThread
Copy Copy
1
2let (response, httpResponse) = client.putReopenThread(urlId = "news/2026-election-analysis", sso = "")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Reopen succeeded, response: ", apiResp
6else:
7 echo "Reopen failed, HTTP status: ", httpResponse.status
8

setTrustFactor Internal Link

Parametri

NomeTipoObbligatorioDescrizione
userIdstringNo
trustFactorstringNo
ssostringNo

Risposta

Restituisce: Option[SetUserTrustFactorResponse]

Esempio

Esempio di setTrustFactor
Copy Copy
1
2let (response, httpResponse) = client.setTrustFactor(userId = "user-9876", trustFactor = "high", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTk4NzYiLCJpYXQiOjE2MjQwMDAwMDB9.signature")
3if response.isSome:
4 let resultObj = response.get()
5 echo resultObj
6else:
7 echo "No response received"
8

createModerator Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createModeratorBodyCreateModeratorBodyNo

Risposta

Restituisce: Option[CreateModeratorResponse]

Esempio

Esempio di createModerator
Copy Copy
1
2var body: CreateModeratorBody
3body.username = "alice.moderator"
4body.displayName = "Alice Moderator"
5body.email = "alice@news-site.com"
6body.enabled = true
7body.roles = @["moderator"]
8body.notes = ""
9
10let (response, httpResponse) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = body)
11if response.isSome:
12 let created = response.get()
13 echo "Created moderator ID: ", created.id
14

deleteModerator Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
sendEmailstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteModerator
Copy Copy
1
2let (response, httpResponse) = client.deleteModerator(tenantId = "my-tenant-123", id = "", sendEmail = "")
3if response.isSome:
4 let apiEmpty = response.get()
5 echo "Moderator deleted successfully for tenant my-tenant-123"
6else:
7 echo "No response returned; inspect httpResponse"
8

getModerator Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetModeratorResponse]

Esempio

Esempio di getModerator
Copy Copy
1
2let (response, httpResponse) = client.getModerator(tenantId = "my-tenant-123", id = "mod-456")
3if response.isSome:
4 let moderator = response.get()
5 echo moderator
6else:
7 echo "Moderator not found, HTTP status: ", $httpResponse.status
8

getModerators Internal Link


Parametri

NameTypeRequiredDescription
tenantIdstring
skipfloat64No

Risposta

Restituisce: Option[GetModeratorsResponse]

Esempio

Esempio getModerators
Copy Copy
1
2let (response, httpResponse) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let moderators = response.get()
5 echo "Received moderators response:", moderators
6else:
7 echo "No moderators returned"
8

updateModerator Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateModeratorBodyUpdateModeratorBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateModerator
Copy Copy
1
2let modBody: UpdateModeratorBody = UpdateModeratorBody(
3 displayName = "Alice Moderator",
4 email = "alice@newsdaily.com",
5 isActive = true,
6 permissions = @["delete_comments", "ban_users"]
7)
8
9let (response, httpResponse) = client.updateModerator(tenantId = "news-tenant-456", id = "moderator-789", updateModeratorBody = modBody)
10
11if response.isSome:
12 let apiEmpty = response.get()
13 echo "Moderator updated successfully. HTTP status: ", httpResponse.status
14else:
15 echo "Failed to update moderator. HTTP status: ", httpResponse.status
16

deleteNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notification-789")
3if response.isSome:
4 let emptyResp = response.get()
5 echo "Notification count deleted for tenant: ", "my-tenant-123"
6else:
7 echo "Failed to delete notification count, status: ", $httpResponse.statusCode
8

getCachedNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetCachedNotificationCountResponse]

Esempio

Esempio di getCachedNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "notification-789")
3if response.isSome:
4 let cached = response.get()
5 echo "Cached notification count: ", $cached
6else:
7 echo "No cached notification count"
8

getNotificationCount Internal Link


Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
userIdstringNo
urlIdstring
fromCommentIdstringNo
viewedboolNo

Risposta

Restituisce: Option[GetNotificationCountResponse]

Esempio

Esempio di getNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getNotificationCount(tenantId = "my-tenant-123", userId = "user-987", urlId = "news/2026/06/election-results", fromCommentId = "", viewed = false)
3if response.isSome:
4 let notifyData = response.get()
5 echo notifyData
6

getNotifications Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
userIdstringNo
urlIdstring
fromCommentIdstringNo
viewedboolNo
skipfloat64No

Risposta

Restituisce: Option[GetNotificationsResponse]

Esempio

Esempio di getNotifications
Copy Copy
1
2let (response, httpResponse) = client.getNotifications(tenantId = "my-tenant-123", userId = "user-456", urlId = "news/article-title", fromCommentId = "cmt-789", viewed = false, skip = 0.0)
3if response.isSome:
4 let notifications = response.get()
5 echo notifications
6

updateNotification Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateNotificationBodyUpdateNotificationBodyNo
userIdstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateNotification
Copy Copy
1
2let (response, httpResponse) = client.updateNotification(
3 tenantId = "my-tenant-123",
4 id = "notif-456",
5 updateNotificationBody = UpdateNotificationBody(
6 enabled = true,
7 channels = @["email", "push"],
8 frequency = "immediate"
9 ),
10 userId = "user-789"
11)
12
13if response.isSome:
14 let apiEmpty = response.get()
15 discard apiEmpty
16

createV1PageReact Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
titlestringNo

Risposta

Restituisce: Option[CreateV1PageReact]

Esempio

Esempio di createV1PageReact
Copy Copy
1
2let (response, httpResponse) = client.createV1PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/2026/market-rally",
5 title = "Breaking News: Markets Rally Today"
6)
7
8if response.isSome:
9 let pageReact = response.get()
10 echo "Page react created: ", pageReact
11else:
12 echo "Failed to create page react: ", httpResponse
13

createV2PageReact Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
idstringNo
titlestringNo

Risposta

Restituisce: Option[CreateV1PageReact]

Esempio

Esempio di createV2PageReact
Copy Copy
1
2let (response, httpResponse) = client.createV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/2026/06/fastcomments-release",
5 id = "",
6 title = ""
7)
8if response.isSome:
9 let react = response.get()
10 echo "Created page react: ", $react
11else:
12 echo "No react returned, HTTP status: ", $httpResponse.statusCode
13

deleteV1PageReact Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring

Risposta

Restituisce: Option[CreateV1PageReact]

Esempio

Esempio di deleteV1PageReact
Copy Copy
1
2let (response, httpResponse) = client.deleteV1PageReact(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let deletedReact = response.get()
5 echo "Deleted react:", deletedReact
6else:
7 echo "No react returned for tenant: my-tenant-123, url: news/article-title"
8

deleteV2PageReact Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
idstringNo

Risposta

Restituisce: Option[CreateV1PageReact]

Esempio

Esempio di deleteV2PageReact
Copy Copy
1
2let (response, httpResponse) = client.deleteV2PageReact(tenantId = "my-tenant-123", urlId = "news/2026/politics-election", id = "react-456")
3if response.isSome:
4 let react = response.get()
5 echo react
6else:
7 echo "No reaction returned, status: ", httpResponse.status
8

getV1PageLikes Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring

Risposta

Restituisce: Option[GetV1PageLikes]

Esempio

Esempio getV1PageLikes
Copy Copy
1
2let (response, httpResponse) = client.getV1PageLikes(tenantId = "my-tenant-123", urlId = "news/how-to-train-your-dragon")
3if response.isSome:
4 let pageLikes = response.get()
5 echo "Fetched page likes for url:", "news/how-to-train-your-dragon"
6else:
7 echo "No likes returned for url:", "news/how-to-train-your-dragon"
8

getV2PageReacts Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring

Risposta

Restituisce: Option[GetV2PageReacts]

Esempio

Esempio di getV2PageReacts
Copy Copy
1
2let (response, httpResponse) = client.getV2PageReacts(tenantId = "my-tenant-123", urlId = "news/elections/2026/us-primary-results")
3if response.isSome:
4 let reacts = response.get()
5 echo "Received reacts: ", $reacts
6else:
7 echo "No reacts available"
8

getV2PageReactUsers Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
idstringNo

Risposta

Restituisce: Option[GetV2PageReactUsersResponse]

Esempio

Esempio di getV2PageReactUsers
Copy Copy
1
2let (response, httpResponse) = client.getV2PageReactUsers(tenantId = "my-tenant-123", urlId = "news/article-title", id = "")
3if response.isSome:
4 let usersResp = response.get()
5 echo repr(usersResp)
6else:
7 echo "No page react users returned. HTTP response: ", repr(httpResponse)
8

addPage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createAPIPageDataCreateAPIPageDataNo

Risposta

Restituisce: Option[AddPageAPIResponse]

Esempio

Esempio di addPage
Copy Copy
1
2var createData: CreateAPIPageData
3createData.url = "news/nim-4-release"
4createData.title = "Nim 4 Release Coverage"
5createData.path = "/news/nim-4-release"
6createData.isEnabled = true
7createData.tags = @["nim", "release"]
8createData.description = "Coverage of Nim 4 release"
9
10let (response, httpResponse) = client.addPage(tenantId = "my-tenant-123", createAPIPageData = createData)
11
12if response.isSome:
13 let pageResp = response.get()
14 echo pageResp
15

deletePage Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[DeletePageAPIResponse]

Esempio

Esempio di deletePage
Copy Copy
1
2let (response, httpResponse) = client.deletePage(tenantId = "site-tenant-456", id = "news/winter-updates-2025")
3if response.isSome:
4 let deleted = response.get()
5 echo "DeletePageAPIResponse:", deleted
6else:
7 echo "Delete failed, HTTP response:", httpResponse
8

getOfflineUsers Internal Link

Commentatori passati sulla pagina che NON sono attualmente online. Ordinati per displayName. Usare questo dopo aver esaurito /users/online per visualizzare una sezione "Membri". Paginazione cursore su commenterName: il server scorre l'indice parziale {tenantId, urlId, commenterName} da afterName in avanti tramite $gt, senza costo $skip.

Parametri

NameTypeRequiredDescription
tenantIdstring
urlIdstring
afterNamestringNo
afterUserIdstringNo

Risposta

Restituisce: Option[PageUsersOfflineResponse]

Esempio

Esempio di getOfflineUsers
Copy Copy
1
2let (response, httpResponse) = client.getOfflineUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-how-to-code",
5 afterName = "",
6 afterUserId = ""
7)
8
9if response.isSome:
10 let offlinePage = response.get()
11 echo "Received offline users page"
12 discard httpResponse.statusCode
13

getOnlineUsers Internal Link

Attualmente i visualizzatori online di una pagina: persone la cui sessione websocket è sottoscritta alla pagina in questo momento. Restituisce anonCount + totalCount (iscritti alla room in generale, inclusi i visualizzatori anonimi che non elenchiamo).

Parametri

NameTypeRequiredDescription
tenantIdstring
urlIdstring
afterNamestringNo
afterUserIdstringNo

Risposta

Restituisce: Option[PageUsersOnlineResponse]

Esempio

Esempio di getOnlineUsers
Copy Copy
1
2let (response, httpResponse) = client.getOnlineUsers(tenantId = "my-tenant-123", urlId = "news/politics/top-story", afterName = "", afterUserId = "")
3if response.isSome:
4 let page = response.get()
5 echo "Received online users page:"
6 echo page
7else:
8 echo "No online users returned. HTTP status: ", httpResponse.statusCode
9

getPageByURLId Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring

Risposta

Restituisce: Option[GetPageByURLIdAPIResponse]

Esempio

Esempio di getPageByURLId
Copy Copy
1
2let (response, httpResponse) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let page = response.get()
5 echo "Page ID: ", page.id
6 echo "Title: ", page.title
7 echo "URL: ", page.url
8 echo "Published: ", $page.published
9 echo "Tags: ", $page.tags
10else:
11 echo "No page found. HTTP status: ", httpResponse.statusCode
12

getPages Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring

Risposta

Restituisce: Option[GetPagesAPIResponse]

Esempio

Esempio di getPages
Copy Copy
1
2let (response, httpResponse) = client.getPages(tenantId = "news-site-456")
3if response.isSome:
4 let pages = response.get()
5 echo "Received pages response: ", pages
6else:
7 echo "No pages returned. HTTP response: ", httpResponse
8

getPagesPublic Internal Link


Elenca le pagine per un tenant. Utilizzato dal client desktop FChat per popolare l'elenco delle sue stanze. Richiede che enableFChat sia true nella configurazione personalizzata risolta per ciascuna pagina. Le pagine che richiedono SSO vengono filtrate rispetto ai gruppi di accesso dell'utente che effettua la richiesta.

Parametri

NameTypeRequiredDescription
tenantIdstring
cursorstringNo
limitintNo
qstringNo
sortByPagesSortByNo
hasCommentsboolNo

Risposta

Restituisce: Option[GetPublicPagesResponse]

Esempio

Esempio getPagesPublic
Copy Copy
1
2let (response, httpResponse) = client.getPagesPublic(
3 tenantId = "my-tenant-123",
4 cursor = "",
5 limit = 0,
6 q = "",
7 sortBy = PagesSortBy(0),
8 hasComments = false
9)
10
11if response.isSome:
12 let pages = response.get()
13 echo "Retrieved public pages: ", $pages
14else:
15 echo "No pages returned, HTTP status: ", $httpResponse.status
16

getUsersInfo Internal Link

Informazioni utente in blocco per un tenant. Dato userIds, restituisce le informazioni di visualizzazione da User / SSOUser. Utilizzato dal widget dei commenti per arricchire gli utenti che sono appena apparsi tramite un evento di presenza. Nessun contesto di pagina: la privacy è applicata in modo uniforme (i profili privati sono mascherati).

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idsstringNo

Risposta

Restituisce: Option[PageUsersInfoResponse]

Esempio

Esempio di getUsersInfo
Copy Copy
1
2let (response, httpResponse) = client.getUsersInfo(tenantId = "my-tenant-123", ids = "user-42,user-87")
3if response.isSome:
4 let usersInfo = response.get()
5 echo "Retrieved users info:", usersInfo
6else:
7 echo "No users info returned. HTTP status:", httpResponse.status
8

patchPage Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo
updateAPIPageDataUpdateAPIPageDataNo

Risposta

Restituisce: Option[PatchPageAPIResponse]

Esempio

Esempio di patchPage
Copy Copy
1
2let updateData = UpdateAPIPageData(
3 title = "Breaking: Major Event Update",
4 urlId = "news/major-event-update",
5 visible = true,
6 tags = @["breaking", "headline"],
7 sortOrder = 5
8)
9
10let (response, httpResponse) = client.patchPage(
11 tenantId = "my-tenant-123",
12 id = "news/major-event-update",
13 updateAPIPageData = updateData
14)
15
16if response.isSome:
17 let page = response.get()
18 discard page
19

deletePendingWebhookEvent Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deletePendingWebhookEvent
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "wh_evt_9f8b7a6c")
3if response.isSome:
4 let apiEmpty = response.get()
5 echo "Pending webhook event deleted for tenant my-tenant-123"
6else:
7 echo "Failed to delete pending webhook event"
8

getPendingWebhookEventCount Internal Link

Parametri

NameTypeObbligatorioDescrizione
tenantIdstring
commentIdstring
externalIdstringNo
eventTypestringNo
domainstringNo
attemptCountGTfloat64No

Risposta

Restituisce: Option[GetPendingWebhookEventCountResponse]

Esempio

Esempio di getPendingWebhookEventCount
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEventCount(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456abc",
5 externalId = "ext-7890",
6 eventType = "comment_created",
7 domain = "news.example.com",
8 attemptCountGT = 2.0
9)
10
11if response.isSome:
12 let pending = response.get()
13 echo pending
14else:
15 echo "No pending webhook event count returned; HTTP status: ", httpResponse.status
16

getPendingWebhookEvents Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
externalIdstringNo
eventTypestringNo
domainstringNo
attemptCountGTfloat64No
skipfloat64No

Risposta

Restituisce: Option[GetPendingWebhookEventsResponse]

Esempio

Esempio getPendingWebhookEvents
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0,
9 skip = 0.0
10)
11if response.isSome:
12 let pending = response.get()
13 discard pending
14

createQuestionConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createQuestionConfigBodyCreateQuestionConfigBodyNo

Risposta

Restituisce: Option[CreateQuestionConfigResponse]

Esempio

Esempio di createQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.createQuestionConfig(
3 tenantId = "my-tenant-123",
4 createQuestionConfigBody = CreateQuestionConfigBody(
5 label = "Article Question",
6 required = true,
7 minLength = 20,
8 maxLength = 1000,
9 allowedTags = @["comment","question","feedback"],
10 notifyModerators = false
11 )
12)
13if response.isSome:
14 let cfg = response.get()
15 echo "Created question config id: ", cfg.id
16

deleteQuestionConfig Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "")
3
4if response.isSome:
5 let deleted = response.get()
6 echo "Question config deleted for tenant: ", "my-tenant-123"
7else:
8 echo "Failed to delete question config"
9

getQuestionConfig Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetQuestionConfigResponse]

Esempio

Esempio di getQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "qst-456")
3if response.isSome:
4 let cfg = response.get()
5 discard cfg
6

getQuestionConfigs Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Risposta

Restituisce: Option[GetQuestionConfigsResponse]

Esempio

Esempio di getQuestionConfigs
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfigs(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let configs = response.get()
5 echo "Received question configs for tenant my-tenant-123"
6 echo configs
7else:
8 echo "No question configs returned"
9

updateQuestionConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateQuestionConfigBodyUpdateQuestionConfigBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionConfig(tenantId = "my-tenant-123", id = "question-config-456", updateQuestionConfigBody = default(UpdateQuestionConfigBody))
3if response.isSome:
4 let apiEmpty = response.get()
5 discard apiEmpty
6

createQuestionResult Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createQuestionResultBodyCreateQuestionResultBodyNo

Risposta

Restituisce: Option[CreateQuestionResultResponse]

Esempio

Esempio di createQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.createQuestionResult(
3 tenantId = "my-tenant-123",
4 createQuestionResultBody = CreateQuestionResultBody(
5 questionId = "q-2026-001",
6 userId = "user-42",
7 correct = true,
8 score = 95,
9 tags = @["news","reader-question"]
10 )
11)
12if response.isSome:
13 let result = response.get()
14 echo "Created question result id: ", result.id
15 echo "HTTP status: ", httpResponse.status.code
16

deleteQuestionResult Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteQuestionResult
Copy Copy
1
2let tenantId = "my-tenant-123"
3let resultId = "question-result-456"
4let (response, httpResponse) = client.deleteQuestionResult(tenantId = tenantId, id = resultId)
5if response.isSome:
6 let emptyResp = response.get()
7 echo "Deleted question result:", resultId
8

getQuestionResult Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetQuestionResultResponse]

Esempio

Esempio di getQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if response.isSome:
4 let result = response.get()
5 echo "Question result received:"
6 echo result
7else:
8 echo "No question result returned, HTTP status: ", $httpResponse.status
9

getQuestionResults Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
urlIdstring
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipfloat64No

Risposta

Restituisce: Option[GetQuestionResultsResponse]

Esempio

Esempio di getQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 urlId = "news/2026/election-analysis",
5 userId = "user-42",
6 startDate = "2026-06-01T00:00:00Z",
7 questionId = "q-6789",
8 questionIds = @["q-6789", "q-6790"],
9 skip = 0.0
10)
11if response.isSome:
12 let results = response.get()
13 echo "Received question results"
14else:
15 echo "No results returned"
16

updateQuestionResult Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateQuestionResultBodyUpdateQuestionResultBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-result-456",
5 updateQuestionResultBody = UpdateQuestionResultBody(
6 questionId: "q-789",
7 userId: "user-42",
8 score: 92,
9 passed: true,
10 tags: @["quiz", "math"]
11 )
12)
13if response.isSome:
14 let apiResp = response.get()
15 echo "Question result updated successfully"
16else:
17 echo "No response body; HTTP status: ", httpResponse.status.code
18

aggregateQuestionResults Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
questionIdstringNo
questionIdsseq[string]No
urlIdstring
timeBucketAggregateTimeBucketNo
startDatestringNo
forceRecalculateboolNo

Risposta

Restituisce: Option[AggregateQuestionResultsResponse]

Esempio

Esempio di aggregateQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.aggregateQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "",
5 questionIds = @[],
6 urlId = "news/article-title",
7 timeBucket = AggregateTimeBucket(0),
8 startDate = "",
9 forceRecalculate = false
10)
11
12if response.isSome:
13 let results = response.get()
14 discard results
15

bulkAggregateQuestionResults Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNo
forceRecalculateboolNo

Risposta

Restituisce: Option[BulkAggregateQuestionResultsResponse]

Esempio

Esempio di bulkAggregateQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.bulkAggregateQuestionResults(
3 tenantId = "my-tenant-123",
4 bulkAggregateQuestionResultsRequest = BulkAggregateQuestionResultsRequest(),
5 forceRecalculate = false
6)
7
8if response.isSome:
9 let aggregated = response.get()
10 echo "Aggregated question results received"
11

combineCommentsWithQuestionResults Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
questionIdstringNo
questionIdsseq[string]No
urlIdstring
startDatestringNo
forceRecalculateboolNo
minValuefloat64No
maxValuefloat64No
limitfloat64No

Risposta

Restituisce: Option[CombineQuestionResultsWithCommentsResponse]

Esempio

Esempio di combineCommentsWithQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "",
5 questionIds = @[],
6 urlId = "news/article-2026-climate-change",
7 startDate = "",
8 forceRecalculate = false,
9 minValue = 0.0,
10 maxValue = 0.0,
11 limit = 0.0
12)
13
14if response.isSome:
15 let combined = response.get()
16 echo "Combined results received for tenant:", " my-tenant-123"
17else:
18 echo "No combined results returned"
19

addSSOUser Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
createAPISSOUserDataCreateAPISSOUserDataNo

Risposta

Restituisce: Option[AddSSOUserAPIResponse]

Esempio

Esempio di addSSOUser
Copy Copy
1
2let (response, httpResponse) = client.addSSOUser(
3 tenantId = "my-tenant-123",
4 createAPISSOUserData = CreateAPISSOUserData(
5 id = "sso-456",
6 email = "alice.johnson@newsorg.com",
7 name = "Alice Johnson",
8 roles = @["editor", "contributor"],
9 isActive = true,
10 isAdmin = false
11 )
12)
13if response.isSome:
14 let apiResp = response.get()
15 discard apiResp
16else:
17 discard httpResponse
18

deleteSSOUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
deleteCommentsboolNo
commentDeleteModestringNo

Risposta

Restituisce: Option[DeleteSSOUserAPIResponse]

Esempio

Esempio di deleteSSOUser
Copy Copy
1
2let (response, httpResponse) = client.deleteSSOUser(tenantId = "my-tenant-123", id = "sso-user-9876", deleteComments = true, commentDeleteMode = "hard")
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6else:
7 discard httpResponse
8

getSSOUserByEmail Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
emailstringNo

Risposta

Restituisce: Option[GetSSOUserByEmailAPIResponse]

Esempio

Esempio getSSOUserByEmail
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "alice@newsco.com")
3if response.isSome:
4 let ssoUser = response.get()
5 echo "SSO user found: ", ssoUser.email
6else:
7 echo "No SSO user found. HTTP status: ", httpResponse.status
8

getSSOUserById Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetSSOUserByIdAPIResponse]

Esempio

Esempio di getSSOUserById
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserById(tenantId = "my-tenant-123", id = "user-789")
3if response.isSome:
4 let ssoUser: GetSSOUserByIdAPIResponse = response.get()
5 echo "SSO user retrieved: ", $ssoUser
6else:
7 echo "No SSO user found, HTTP status: ", httpResponse.statusCode
8

getSSOUsers Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
skipintNo

Risposta

Restituisce: Option[GetSSOUsersResponse]

Esempio

Esempio di getSSOUsers
Copy Copy
1
2let (response, httpResponse) = client.getSSOUsers(tenantId = "my-tenant-123", skip = 0)
3if response.isSome:
4 let ssoUsers = response.get()
5 echo ssoUsers
6else:
7 echo "No SSO users returned; HTTP response:", httpResponse
8

patchSSOUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Risposta

Restituisce: Option[PatchSSOUserAPIResponse]

Esempio

Esempio patchSSOUser
Copy Copy
1
2let (response, httpResponse) = client.patchSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-789",
5 updateAPISSOUserData = UpdateAPISSOUserData(
6 externalId = "ext-987",
7 username = "j.smith",
8 email = "j.smith@news.example.com",
9 displayName = "John Smith",
10 roles = @["author", "editor"],
11 avatarUrl = "https://cdn.news.example.com/avatars/j.smith.png"
12 ),
13 updateComments = true
14)
15
16if response.isSome:
17 let patched = response.get()
18 echo patched
19

putSSOUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Risposta

Restituisce: Option[PutSSOUserAPIResponse]

Esempio

Esempio di putSSOUser
Copy Copy
1
2let (response, httpResponse) = client.putSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateAPISSOUserData = UpdateAPISSOUserData(
6 externalId = "ext-789",
7 displayName = "Jane Doe",
8 email = "jane.doe@example.com",
9 avatarUrl = "https://cdn.news-site.com/avatars/jane.jpg",
10 roles = @["member", "subscriber"]
11 ),
12 updateComments = true
13)
14
15if response.isSome:
16 let result = response.get()
17 echo "SSO user updated:", result
18

createSubscription Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNo

Risposta

Restituisce: Option[CreateSubscriptionAPIResponse]

Esempio

Esempio di createSubscription
Copy Copy
1
2let createData = CreateAPIUserSubscriptionData(
3 subscriberId = "user-987",
4 email = "jane.doe@newsreader.com",
5 urlId = "news/local-weather",
6 active = true,
7 tags = @["weather", "local"],
8 frequency = "immediate"
9)
10let (response, httpResponse) = client.createSubscription(tenantId = "my-tenant-123", createAPIUserSubscriptionData = createData)
11if response.isSome:
12 let created = response.get()
13 echo "Created subscription id: ", created.id
14

deleteSubscription Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
userIdstringNo

Risposta

Restituisce: Option[DeleteSubscriptionAPIResponse]

Esempio

Esempio di deleteSubscription
Copy Copy
1
2let (response, httpResponse) = client.deleteSubscription(tenantId = "my-tenant-123", id = "sub-98765", userId = "user-456")
3if response.isSome:
4 let deleteResp = response.get()
5 echo "Delete subscription response received"
6else:
7 echo "No subscription response"
8

getSubscriptions Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
userIdstringNo

Risposta

Restituisce: Option[GetSubscriptionsAPIResponse]

Esempio

Esempio di getSubscriptions
Copy Copy
1
2let (response, httpResponse) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "")
3if response.isSome:
4 let subscriptions = response.get()
5 discard subscriptions
6

updateSubscription Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNo
userIdstringNo

Risposta

Restituisce: Option[UpdateSubscriptionAPIResponse]

Esempio

Esempio di updateSubscription
Copy Copy
1
2let (response, httpResponse) = client.updateSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-456",
5 updateAPIUserSubscriptionData = UpdateAPIUserSubscriptionData(
6 subscribed = true,
7 channels = @["email", "push"]
8 ),
9 userId = "user-789"
10)
11
12if response.isSome:
13 let updated = response.get()
14 echo "Subscription updated:", updated
15else:
16 echo "Update failed, HTTP response:", httpResponse
17

getTenantDailyUsages Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
yearNumberfloat64No
monthNumberfloat64No
dayNumberfloat64No
skipfloat64No

Risposta

Restituisce: Option[GetTenantDailyUsagesResponse]

Esempio

Esempio di getTenantDailyUsages
Copy Copy
1
2let (response, httpResponse) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 yearNumber = 2026.0,
5 monthNumber = 6.0,
6 dayNumber = 19.0,
7 skip = 0.0
8)
9
10if response.isSome:
11 let usage = response.get()
12 discard usage
13

createTenantPackage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createTenantPackageBodyCreateTenantPackageBodyNo

Risposta

Restituisce: Option[CreateTenantPackageResponse]

Esempio

Esempio di createTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.createTenantPackage(tenantId = "my-tenant-123", createTenantPackageBody = CreateTenantPackageBody())
3
4if response.isSome:
5 let pkg = response.get()
6 echo "Created tenant package: ", $pkg
7else:
8 echo "Failed to create tenant package, HTTP response: ", $httpResponse
9

deleteTenantPackage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "package-987")
3if response.isSome:
4 let emptyResp = response.get()
5 echo emptyResp
6else:
7 echo "Failed to delete tenant package"
8

getTenantPackage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetTenantPackageResponse]

Esempio

Esempio di getTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackage(tenantId = "my-tenant-123", id = "premium-2026")
3if response.isSome:
4 let pkg = response.get()
5 echo "Retrieved tenant package:"
6 echo pkg
7else:
8 echo "Tenant package not found"
9

getTenantPackages Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
skipfloat64No

Risposta

Restituisce: Option[GetTenantPackagesResponse]

Esempio

Esempio di getTenantPackages
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let packages = response.get()
5 echo "Received tenant packages:"
6 echo packages
7else:
8 echo "No packages found for tenant 'my-tenant-123'"
9

replaceTenantPackage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
replaceTenantPackageBodyReplaceTenantPackageBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di replaceTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.replaceTenantPackage(
3 tenantId = "my-tenant-123",
4 id = "pkg-987",
5 replaceTenantPackageBody = ReplaceTenantPackageBody(
6 name = "Premium Plan",
7 priceCents = 999,
8 seats = 50,
9 enabled = true,
10 features = @["moderation", "analytics", "priority-support"]
11 )
12)
13
14if response.isSome:
15 let apiEmpty = response.get()
16 discard apiEmpty
17

updateTenantPackage Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateTenantPackageBodyUpdateTenantPackageBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateTenantPackage
Copy Copy
1
2let packageBody = UpdateTenantPackageBody(
3 name: "Pro Plan",
4 priceCents: 1999,
5 active: true,
6 features: @["priority-support", "advanced-moderation"]
7)
8
9let (response, httpResponse) = client.updateTenantPackage(
10 tenantId = "my-tenant-123",
11 id = "pkg-789",
12 updateTenantPackageBody = packageBody
13)
14
15if response.isSome:
16 let apiEmpty = response.get()
17 echo "Tenant package updated successfully, HTTP status: " & $httpResponse.status
18

createTenantUser Internal Link


Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
createTenantUserBodyCreateTenantUserBodyNo

Risposta

Restituisce: Option[CreateTenantUserResponse]

Esempio

Esempio di createTenantUser
Copy Copy
1
2let (response, httpResponse) = client.createTenantUser(tenantId = "my-tenant-123",
3 createTenantUserBody = CreateTenantUserBody(userId = "user-456",
4 email = "jane.doe@example.com",
5 displayName = "Jane Doe",
6 roles = @["editor"],
7 isAdmin = false))
8if response.isSome:
9 let created = response.get()
10 discard created
11

deleteTenantUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
deleteCommentsstringNo
commentDeleteModestringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteTenantUser
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(tenantId = "my-tenant-123", id = "user-789", deleteComments = "true", commentDeleteMode = "soft")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Tenant user deleted, response: ", apiResp
6else:
7 echo "Failed to delete tenant user, HTTP status: ", $httpResponse.status
8

getTenantUser Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetTenantUserResponse]

Esempio

Esempio di getTenantUser
Copy Copy
1
2let (response, httpResponse) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-789")
3if response.isSome:
4 let tenantUser = response.get()
5 echo "User fetched:", tenantUser
6else:
7 echo "No user found, HTTP status:", httpResponse.status
8

getTenantUsers Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
skipfloat64No

Risposta

Restituisce: Option[GetTenantUsersResponse]

Esempio

Esempio di getTenantUsers
Copy Copy
1
2let (response, httpResponse) = client.getTenantUsers(tenantId = "my-tenant-123", skip = 0.0)
3
4if response.isSome:
5 let tenantUsers = response.get()
6 echo "Retrieved tenant users"
7else:
8 echo "No tenant users returned"
9

replaceTenantUser Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
replaceTenantUserBodyReplaceTenantUserBodyNo
updateCommentsstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di replaceTenantUser
Copy Copy
1
2let body = ReplaceTenantUserBody(
3 displayName = "Jane Doe",
4 email = "jane.doe@example.com",
5 externalId = "jdoe-789",
6 admin = false,
7 enabled = true,
8 tags = @["editor", "subscriber"]
9)
10
11let (response, httpResponse) = client.replaceTenantUser(
12 tenantId = "my-tenant-123",
13 id = "user-456",
14 replaceTenantUserBody = body,
15 updateComments = "true"
16)
17
18if response.isSome:
19 let apiEmpty = response.get()
20 echo "ReplaceTenantUser succeeded, http status:", httpResponse.status
21


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
redirectURLstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di sendLoginLink
Copy Copy
1
2let (response, httpResponse) = client.sendLoginLink(tenantId = "my-tenant-123", id = "user-456", redirectURL = "https://app.newsportal.com/welcome")
3if response.isSome:
4 let apiResp = response.get()
5 echo "Login link sent successfully"
6else:
7 echo "Failed to send login link, HTTP status: ", $httpResponse.status
8

updateTenantUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateTenantUserBodyUpdateTenantUserBodyNo
updateCommentsstringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateTenantUser
Copy Copy
1
2let (response, httpResponse) = client.updateTenantUser(
3 tenantId = "my-tenant-123",
4 id = "user-987",
5 updateTenantUserBody = UpdateTenantUserBody(
6 displayName = "Jane Doe",
7 email = "jane.doe@example.com",
8 roles = @["moderator", "editor"],
9 isActive = true
10 ),
11 updateComments = "true"
12)
13
14if response.isSome:
15 let apiEmpty = response.get()
16 discard apiEmpty
17

createTenant Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createTenantBodyCreateTenantBodyNo

Risposta

Restituisce: Option[CreateTenantResponse]

Esempio

Esempio di createTenant
Copy Copy
1
2let (response, httpResponse) = client.createTenant(
3 tenantId = "my-tenant-123",
4 createTenantBody = CreateTenantBody(
5 name = "My Tenant 123",
6 domain = "news.example.com",
7 allowAnonymous = false,
8 allowedOrigins = @["https://news.example.com", "https://api.news.example.com"],
9 description = "Comments for News Example"
10 )
11)
12if response.isSome:
13 let created = response.get()
14 echo "Created tenant: ", created.tenantId
15else:
16 echo "Failed to create tenant, status: ", httpResponse.status
17

deleteTenant Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
surestringNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di deleteTenant
Copy Copy
1
2let (response, httpResponse) = client.deleteTenant(tenantId = "my-tenant-123", id = "", sure = "")
3if response.isSome:
4 let emptyResp = response.get()
5else:
6 discard httpResponse
7

getTenant Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetTenantResponse]

Esempio

Esempio di getTenant
Copy Copy
1
2let (response, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "tenant-789")
3if response.isSome:
4 let tenant = response.get()
5 discard tenant
6else:
7 discard httpResponse
8

getTenants Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
metastringNo
skipfloat64No

Risposta

Restituisce: Option[GetTenantsResponse]

Esempio

Esempio di getTenants
Copy Copy
1
2let (response, httpResponse) = client.getTenants(tenantId = "my-tenant-123", meta = "env=production", skip = 0.0)
3if response.isSome:
4 let tenantsResp = response.get()
5 discard tenantsResp
6 echo "Tenants fetched successfully"
7else:
8 echo "Request failed with status ", httpResponse.status
9

updateTenant Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
idstringNo
updateTenantBodyUpdateTenantBodyNo

Risposta

Restituisce: Option[APIEmptyResponse]

Esempio

Esempio di updateTenant
Copy Copy
1
2let (response, httpResponse) = client.updateTenant(
3 tenantId = "my-tenant-123",
4 id = "settings",
5 updateTenantBody = UpdateTenantBody(
6 name = "My Tenant 123",
7 enableModeration = true,
8 allowedDomains = @["news.example.com", "blog.example.org"],
9 maxCommentLength = 1000
10 )
11)
12
13if response.isSome:
14 let apiResp = response.get()
15 echo "Tenant updated successfully: ", apiResp
16else:
17 echo "Failed to update tenant, HTTP status: ", httpResponse.status
18

changeTicketState Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
userIdstringNo
idstringNo
changeTicketStateBodyChangeTicketStateBodyNo

Risposta

Restituisce: Option[ChangeTicketStateResponse]

Esempio

Esempio changeTicketState
Copy Copy
1
2let body = ChangeTicketStateBody()
3let (response, httpResponse) = client.changeTicketState(tenantId = "my-tenant-123", userId = "user-456", id = "ticket-789", changeTicketStateBody = body)
4if response.isSome:
5 let ticketResp = response.get()
6 echo "Ticket state changed:", ticketResp
7

createTicket Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
userIdstringNo
createTicketBodyCreateTicketBodyNo

Risposta

Restituisce: Option[CreateTicketResponse]

Esempio

Esempio di createTicket
Copy Copy
1
2let body = CreateTicketBody(
3 subject = "Comment moderation issue",
4 message = "Several abusive comments reported on article, please review and moderate.",
5 tags = @["moderation", "abuse", "urgent"],
6 url = "https://news.example.com/world/2026-election",
7 priority = "high"
8)
9
10let (response, httpResponse) = client.createTicket(tenantId = "my-tenant-123", userId = "user-789", createTicketBody = body)
11
12if response.isSome:
13 let ticket = response.get()
14 echo "Created ticket ID: ", ticket.id
15

getTicket Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
idstringNo
userIdstringNo

Risposta

Restituisce: Option[GetTicketResponse]

Esempio

Esempio di getTicket
Copy Copy
1
2let (response, httpResponse) = client.getTicket(tenantId = "my-tenant-123", id = "ticket-456", userId = "user-789")
3if response.isSome:
4 let ticket = response.get()
5 echo "Got ticket:", ticket
6else:
7 echo "No ticket returned; HTTP response:", httpResponse
8

getTickets Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
userIdstringNo
statefloat64No
skipfloat64No
limitfloat64No

Risposta

Restituisce: Option[GetTicketsResponse]

Esempio

Esempio di getTickets
Copy Copy
1
2let (response, httpResponse) = client.getTickets(tenantId = "my-tenant-123", userId = "user-789", state = 1.0, skip = 0.0, limit = 50.0)
3if response.isSome:
4 let tickets = response.get()
5 echo tickets
6

getTranslations Internal Link

Parametri

NomeTipoObbligatorioDescrizione
namespacestringNo
componentstringNo
localestringNo
useFullTranslationIdsboolNo

Risposta

Restituisce: Option[GetTranslationsResponse]

Esempio

Esempio di getTranslations
Copy Copy
1
2let (response, httpResponse) = client.getTranslations(
3 namespace = "news-site",
4 component = "article-comments",
5 locale = "en-US",
6 useFullTranslationIds = false
7)
8if response.isSome:
9 let translations = response.get()
10 discard translations
11else:
12 echo "No translations available"
13

uploadImage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
filestringNo
sizePresetSizePresetNo
urlIdstring

Risposta

Restituisce: Option[UploadImageResponse]

Esempio

Esempio di uploadImage
Copy Copy
1
2let (response, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "assets/images/comment-avatar.jpg",
5 sizePreset = SizePreset.small,
6 urlId = "news/article-2025-11-22"
7)
8if response.isSome:
9 let upload = response.get()
10 echo "Uploaded image id: ", upload.id
11 echo "Uploaded image url: ", upload.url
12

getUserBadgeProgressById Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIGetUserBadgeProgressResponse]

Esempio

Esempio di getUserBadgeProgressById
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "")
3if response.isSome:
4 let badgeProgress = response.get()
5 echo badgeProgress
6else:
7 echo "No badge progress found"
8

getUserBadgeProgressByUserId Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
userIdstringNo

Risposta

Restituisce: Option[APIGetUserBadgeProgressResponse]

Esempio

Esempio getUserBadgeProgressByUserId
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userId = "user-456"
4let (response, httpResponse) = client.getUserBadgeProgressByUserId(tenantId = tenantId, userId = userId)
5if response.isSome:
6 let badgeProgress = response.get()
7 echo "Badge progress retrieved for ", userId
8 discard badgeProgress
9

getUserBadgeProgressList Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstring
userIdstringNo
limitfloat64No
skipfloat64No

Risposta

Restituisce: Option[APIGetUserBadgeProgressListResponse]

Esempio

Esempio di getUserBadgeProgressList
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(
3 tenantId = "my-tenant-123",
4 userId = "user-789",
5 limit = 25.0,
6 skip = 0.0
7)
8
9if response.isSome:
10 let badgeProgress = response.get()
11 echo "Received badge progress:", badgeProgress
12else:
13 echo "No badge progress; HTTP status: ", $httpResponse.status
14

createUserBadge Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
createUserBadgeParamsCreateUserBadgeParamsNo

Risposta

Restituisce: Option[APICreateUserBadgeResponse]

Esempio

Esempio di createUserBadge
Copy Copy
1
2let (response, httpResponse) = client.createUserBadge(
3 tenantId = "my-tenant-123",
4 createUserBadgeParams = CreateUserBadgeParams(
5 userId = "user-456",
6 badgeId = "top-commenter",
7 reason = "Top commenter for June 2026",
8 awardedBy = "mod-team",
9 metadata = @["news","engagement"]
10 )
11)
12if response.isSome:
13 let badgeResp = response.get()
14 discard badgeResp
15

deleteUserBadge Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIEmptySuccessResponse]

Esempio

Esempio di deleteUserBadge
Copy Copy
1
2let tenantId = "my-tenant-123"
3let badgeId = "badge-456"
4
5let (response, httpResponse) = client.deleteUserBadge(tenantId = tenantId, id = badgeId)
6
7if response.isSome:
8 let success = response.get()
9 echo "Badge deleted successfully for tenant: ", tenantId, " id: ", badgeId
10else:
11 echo "Failed to delete badge. HTTP status: ", $httpResponse.status
12

getUserBadge Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[APIGetUserBadgeResponse]

Esempio

Esempio di getUserBadge
Copy Copy
1
2let (response, httpResponse) = client.getUserBadge(tenantId = "my-tenant-123", id = "badge-9876")
3if response.isSome:
4 let badge = response.get()
5 echo "Fetched badge:"
6 echo badge
7else:
8 echo "No badge found"
9 echo httpResponse
10

getUserBadges Internal Link


Parametri

NameTypeObbligatorioDescrizione
tenantIdstring
userIdstringNo
badgeIdstringNo
displayedOnCommentsboolNo
limitfloat64No
skipfloat64No

Risposta

Restituisce: Option[APIGetUserBadgesResponse]

Esempio

Esempio di getUserBadges
Copy Copy
1
2let (response, httpResponse) = client.getUserBadges(
3 tenantId = "my-tenant-123",
4 userId = "user-9876",
5 badgeId = "top-commenter",
6 displayedOnComments = true,
7 limit = 20.0,
8 skip = 0.0
9)
10
11if response.isSome:
12 let badges = response.get()
13 echo "Badges response:", badges
14else:
15 echo "No badges found (HTTP status: ", httpResponse.status, ")"
16

updateUserBadge Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
updateUserBadgeParamsUpdateUserBadgeParamsNo

Risposta

Restituisce: Option[APIEmptySuccessResponse]

Esempio

Esempio di updateUserBadge
Copy Copy
1
2let (response, httpResponse) = client.updateUserBadge(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateUserBadgeParams = UpdateUserBadgeParams()
6)
7
8if response.isSome:
9 let success = response.get()
10 echo "Badge updated successfully"
11else:
12 echo "Badge update failed"
13

getUserNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
ssostringNo

Risposta

Restituisce: Option[GetUserNotificationCountResponse]

Esempio

Esempio di getUserNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getUserNotificationCount(tenantId = "news-tenant-123", sso = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTI0NyIsImlhdCI6MTYw945600fQ.sflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c")
3if response.isSome:
4 let countResp = response.get()
5 echo "Received user notification count response: ", countResp
6else:
7 echo "No notification count returned"
8

getUserNotifications Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
pageSizeintNo
afterIdstringNo
includeContextboolNo
afterCreatedAtint64No
unreadOnlyboolNo
dmOnlyboolNo
noDmboolNo
includeTranslationsboolNo
includeTenantNotificationsboolNo
ssostringNo

Risposta

Restituisce: Option[GetMyNotificationsResponse]

Esempio

Esempio di getUserNotifications
Copy Copy
1
2let (response, httpResponse) = client.getUserNotifications(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 pageSize = 0,
6 afterId = "",
7 includeContext = false,
8 afterCreatedAt = 0,
9 unreadOnly = false,
10 dmOnly = false,
11 noDm = false,
12 includeTranslations = false,
13 includeTenantNotifications = false,
14 sso = ""
15)
16
17if response.isSome:
18 let notifications = response.get()
19 echo notifications
20

resetUserNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
ssostringNo

Risposta

Restituisce: Option[ResetUserNotificationsResponse]

Esempio

Esempio di resetUserNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "user-sso-token-456")
3if response.isSome:
4 let result = response.get()
5 echo "ResetUserNotificationsResponse:", result
6else:
7 echo "Reset failed, HTTP response:", httpResponse
8

resetUserNotifications Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
afterIdstringNo
afterCreatedAtint64No
unreadOnlyboolNo
dmOnlyboolNo
noDmboolNo
ssostringNo

Risposta

Restituisce: Option[ResetUserNotificationsResponse]

Esempio

Esempio di resetUserNotifications
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 afterCreatedAt = 0'i64,
6 unreadOnly = false,
7 dmOnly = false,
8 noDm = false,
9 sso = ""
10)
11if response.isSome:
12 let resetResp = response.get()
13 echo "ResetUserNotificationsResponse received"
14else:
15 echo "No ResetUserNotificationsResponse"
16

updateUserNotificationCommentSubscriptionStatus Internal Link

Abilita o disabilita le notifiche per un commento specifico.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
notificationIdstringNo
optedInOrOutstringNo
commentIdstring
ssostringNo

Risposta

Restituisce: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Esempio

Esempio di updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "",
5 optedInOrOut = "",
6 commentId = "cmt-789",
7 sso = ""
8)
9
10if response.isSome:
11 let updateResp = response.get()
12 echo "Subscription update response: ", updateResp
13

updateUserNotificationPageSubscriptionStatus Internal Link

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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
urlstringNo
pageTitlestringNo
subscribedOrUnsubscribedstringNo
ssostringNo

Risposta

Restituisce: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

Esempio

Esempio di updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/economy/market-rally-2026-06-19",
5 url = "",
6 pageTitle = "",
7 subscribedOrUnsubscribed = "",
8 sso = ""
9)
10
11if response.isSome:
12 let updateResp = response.get()
13 echo "Subscription update received: ", updateResp
14else:
15 echo "No subscription update returned."
16

updateUserNotificationStatus Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
notificationIdstringNo
newStatusstringNo
ssostringNo

Risposta

Restituisce: Option[UpdateUserNotificationStatusResponse]

Esempio

Esempio di updateUserNotificationStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 newStatus = "read",
6 sso = "sso-token-abc123"
7)
8if response.isSome:
9 let updated = response.get()
10 echo "Notification status updated successfully"
11else:
12 echo "No update response received"
13

getUserPresenceStatuses Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdWSstringNo
userIdsstringNo

Risposta

Restituisce: Option[GetUserPresenceStatusesResponse]

Esempio

Esempio di getUserPresenceStatuses
Copy Copy
1
2let (response, httpResponse) = client.getUserPresenceStatuses(tenantId = "my-tenant-123", urlIdWS = "news/article-title", userIds = "user-123,user-456")
3if response.isSome:
4 let presenceStatuses = response.get()
5 echo presenceStatuses
6else:
7 echo "No presence data"
8

searchUsers Internal Link

Parametri

NomeTipoRichiestoDescrizione
tenantIdstring
urlIdstring
usernameStartsWithstringNo
mentionGroupIdsseq[string]No
ssostringNo
searchSectionstringNo

Risposta

Restituisce: Option[SearchUsersResult]

Esempio

Esempio di searchUsers
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/top-story",
5 usernameStartsWith = "",
6 mentionGroupIds = @[],
7 sso = "",
8 searchSection = ""
9)
10
11if response.isSome:
12 let searchResult = response.get()
13 echo "SearchUsersResult:", searchResult
14else:
15 echo "No result or error. HTTP response:", httpResponse
16

getUser Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo

Risposta

Restituisce: Option[GetUserResponse]

Esempio

Esempio getUser
Copy Copy
1
2let (response, httpResponse) = client.getUser(tenantId = "my-tenant-123", id = "user-456")
3if response.isSome:
4 let user = response.get()
5 echo user
6else:
7 echo "User not found"
8

createVote Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
commentIdstring
directionstringNo
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[VoteResponse]

Esempio

Esempio di createVote
Copy Copy
1
2let (response, httpResponse) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 direction = "up",
6 userId = "user-42",
7 anonUserId = ""
8)
9if response.isSome:
10 let vote = response.get()
11 echo "Vote created:", vote
12else:
13 echo "No vote returned"
14

deleteVote Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
idstringNo
editKeystringNo

Risposta

Restituisce: Option[VoteDeleteResponse]

Esempio

Esempio di deleteVote
Copy Copy
1
2let (response, httpResponse) = client.deleteVote(tenantId = "my-tenant-123", id = "vote-7f3b2a", editKey = "")
3if response.isSome:
4 let voteDelete = response.get()
5 echo "Vote deleted successfully"
6else:
7 echo "Failed to delete vote"
8

getVotes Internal Link


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring

Risposta

Restituisce: Option[GetVotesResponse]

Esempio

Esempio getVotes
Copy Copy
1
2let (response, httpResponse) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/breaking-article-456")
3if response.isSome:
4 let votesResp = response.get()
5 echo "Received votes response:", $votesResp
6else:
7 echo "No votes returned, HTTP response:", $httpResponse
8

getVotesForUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstring
urlIdstring
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: Option[GetVotesForUserResponse]

Esempio

Esempio di getVotesForUser
Copy Copy
1
2let (response, httpResponse) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userId = "user-789",
6 anonUserId = ""
7)
8if response.isSome:
9 let votes = response.get()
10 echo "User votes retrieved"
11else:
12 echo "No votes found"
13

Hai bisogno di aiuto?

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

Contribuire

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