FastComments.com

SDK Nim de FastComments

Ceci est le SDK Nim officiel pour FastComments.

SDK Nim officiel pour l'API FastComments

Dépôt

Voir sur GitHub


Exigences Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

Installation Internal Link

Utilisation de Nimble

nimble install fastcomments

Compilation à partir des sources

nimble build

Contenu de la bibliothèque

Cette bibliothèque contient le client API généré et les utilitaires SSO pour faciliter le travail avec l'API.

APIs publiques vs sécurisées

Pour le client API, il existe trois modules API, api_default, api_public et api_moderation. api_default contient des méthodes qui nécessitent votre clé API, et api_public contient des appels API qui peuvent être effectués directement depuis un navigateur, un appareil mobile, etc. sans authentification. Le module api_moderation contient des méthodes pour le tableau de bord du modérateur.

Les méthodes de api_moderation couvrent la liste, le comptage, la recherche et l'exportation des commentaires et de leurs journaux ; les actions de modération telles que la suppression/restauration de commentaires, le signalement, la définition de l'état de révision/spam/approbation, l'ajustement des votes, et la réouverture/fermeture de fils de discussion ; les bannissements (bannir un utilisateur d'un commentaire, annuler un bannissement, résumés pré-bannissement, état et préférences de bannissement, et décomptes d'utilisateurs bannis) ; et les badges et la confiance (attribuer/retirer un badge, lister les badges manuels, obtenir/définir le facteur de confiance d'un utilisateur, et récupérer le profil interne d'un utilisateur). Chaque méthode de api_moderation accepte un paramètre sso afin que l'appel soit authentifié en tant que modérateur SSO.

Démarrage rapide Internal Link

Utilisation des API authentifiées (DefaultAPI)

Important : Les points de terminaison authentifiés exige que votre clé API soit définie en tant qu'en-tête 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"

# Effectuer des appels d'API authentifiés
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"

Utilisation des API publiques (PublicAPI)

Les points de terminaison publics n'exigent pas d'authentification :

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Effectuer des appels d'API publics
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"

Utilisation des API de modération (ModerationAPI)

Les points de terminaison de modération alimentent le tableau de bord du modérateur et sont authentifiés avec un jeton SSO pour le modérateur en action :

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# Lister les commentaires dans le tableau de bord de modération
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"

Problèmes courants

  1. Erreur d'authentification 401 : Assurez-vous de définir l'en-tête x-api-key sur votre HttpClient avant d'effectuer des requêtes DefaultAPI : client.headers["x-api-key"] = "your-api-key"
  2. Mauvaise classe d'API : Utilisez api_default pour les requêtes authentifiées côté serveur, api_public pour les requêtes côté client/publiques, et api_moderation pour les requêtes du tableau de bord du modérateur.

Effectuer des appels API Internal Link

Toutes les méthodes d'API dans ce SDK renvoient des tuples de (Option[ResponseType], Response). Le premier élément contient la réponse analysée si la requête réussit, et le deuxième élément est la réponse HTTP brute.

Exemple : Récupération des commentaires

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"

Remarques Internal Link

Identifiants de diffusion

Vous verrez que vous devez transmettre un broadcastId dans certains appels d'API. Lorsque vous recevez des événements, vous recevrez cet ID en retour, ce qui vous permet de savoir quand ignorer l'événement si vous prévoyez d'appliquer des modifications de façon optimiste côté client (ce que vous voudrez probablement faire, car cela offre la meilleure expérience). Transmettez un UUID ici. L'ID doit être suffisamment unique pour ne pas apparaître deux fois au cours d'une session de navigateur.

SSO (Authentification unique)

Pour des exemples d'authentification unique, voir ci‑dessous.

Utilisation du SSO Internal Link


SSO simple

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 sécurisé

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

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
aggregationRequestAggregationRequestNon
parentTenantIdstringNon
includeStatsboolNon

Réponse

Renvoie : Option[AggregateResponse]

Exemple

Exemple d'agrégation
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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
limitfloat64Non
skipfloat64Non
orderSORTDIRNon
afterfloat64Non
beforefloat64Non

Réponse

Renvoie : Option[GetAuditLogsResponse]

Exemple

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

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
publicBlockFromCommentParamsPublicBlockFromCommentParamsNon
ssostringNon

Réponse

Renvoie : Option[BlockSuccess]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
commentIdstringOui
publicBlockFromCommentParamsPublicBlockFromCommentParamsNon
ssostringNon

Réponse

Retourne : Option[UnblockSuccess]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
commentIdsstringNon
ssostringNon

Response

Renvoie : Option[CheckBlockedCommentsResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
blockFromCommentParamsBlockFromCommentParamsNon
userIdstringNon
anonUserIdstringNon

Response

Retourne : Option[BlockSuccess]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
broadcastIdstringNon
commentDataCommentDataNon
sessionIdstringNon
ssostringNon

Réponse

Retourne : Option[SaveCommentsResponseWithPresence]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
contextUserIdstringNon
isLiveboolNon

Réponse

Retourne : Option[DeleteCommentResult]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
editKeystringNon
ssostringNon

Réponse

Renvoie : Option[PublicAPIDeleteCommentResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
voteIdstringNon
urlIdstringOui
broadcastIdstringNon
editKeystringNon
ssostringNon

Réponse

Retourne: Option[VoteDeleteResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
userIdstringNon
anonUserIdstringNon

Réponse

Renvoie : Option[FlagCommentResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[APIGetCommentResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
pageintNon
limitintNon
skipintNon
asTreeboolNon
skipChildrenintNon
limitChildrenintNon
maxTreeDepthintNon
urlIdstringOui
userIdstringNon
anonUserIdstringNon
contextUserIdstringNon
hashTagstringNon
parentIdstringNon
directionSortDirectionsNon
fromDateint64Non
toDateint64Non

Réponse

Retourne : Option[APIGetCommentsResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
urlIdstringOui
pageintNon
directionSortDirectionsNon
ssostringNon
skipintNon
skipChildrenintNon
limitintNon
limitChildrenintNon
countChildrenboolNon
fetchPageForCommentIdstringNon
includeConfigboolNon
countAllboolNon
includei10nboolNon
localestringNon
modulesstringNon
isCrawlerboolNon
includeNotificationCountboolNon
asTreeboolNon
maxTreeDepthintNon
useFullTranslationIdsboolNon
parentIdstringNon
searchTextstringNon
hashTagsseq[string]Non
userIdstringNon
customConfigStrstringNon
afterCommentIdstringNon
beforeCommentIdstringNon

Réponse

Renvoie : Option[GetCommentsResponseWithPresencePublicComment]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

Réponse

Renvoie : Option[PublicAPIGetCommentTextResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
commentIdstringOui
dirintNon
ssostringNon

Réponse

Retourne: Option[GetCommentVoteUserNamesSuccessResponse]

Exemple

Exemple d'utilisation de 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Renvoie : Option[ChangeCommentPinStatusResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createCommentParamsCreateCommentParamsNon
isLiveboolNon
doSpamCheckboolNon
sendEmailsboolNon
populateNotificationsboolNon

Réponse

Retourne : Option[APISaveCommentResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createCommentParamsseq[CreateCommentParams]Non
isLiveboolNon
doSpamCheckboolNon
sendEmailsboolNon
populateNotificationsbool): (Option[seq[SaveCommentsBulkResponse]]Non
idstringNon
fromNamestringNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
commentTextUpdateRequestCommentTextUpdateRequestNon
editKeystringNon
ssostringNon

Réponse

Renvoie : Option[PublicAPISetCommentTextResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
unBlockFromCommentParamsUnBlockFromCommentParamsNon
userIdstringNon
anonUserIdstringNon

Réponse

Renvoie: Option[UnblockSuccess]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
userIdstringNon
anonUserIdstringNon

Réponse

Renvoie : Option[FlagCommentResponse]

Exemple

Exemple d'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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Renvoie : Option[ChangeCommentPinStatusResponse]

Exemple

Exemple d'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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
idstringNon
updatableCommentParamsUpdatableCommentParamsNon
contextUserIdstringNon
doSpamCheckboolNon
isLiveboolNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
urlIdstringOui
broadcastIdstringNon
voteBodyParamsVoteBodyParamsNon
sessionIdstringNon
ssostringNon

Réponse

Renvoie : Option[VoteResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
userIdstringNon
directionSortDirectionsNon
repliesToUserIdstringNon
pagefloat64Non
includei10nboolNon
localestringNon
isCrawlerboolNon

Réponse

Retourne : Option[GetCommentsForUserResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
addDomainConfigParamsAddDomainConfigParamsNon

Réponse

Renvoie: Option[AddDomainConfigResponse]

Exemple

Exemple 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
domainstringNon

Réponse

Renvoie : Option[DeleteDomainConfigResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
domainstringNon

Réponse

Retourne : Option[GetDomainConfigResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui

Réponse

Renvoie : Option[GetDomainConfigsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
domainToUpdatestringNon
patchDomainConfigParamsPatchDomainConfigParamsNon

Réponse

Renvoie : Option[PatchDomainConfigResponse]

Exemple

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


Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
domainToUpdatestringNon
updateDomainConfigParamsUpdateDomainConfigParamsNon

Réponse

Renvoie: Option[PutDomainConfigResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
createEmailTemplateBodyCreateEmailTemplateBodyNon

Réponse

Retourne: Option[CreateEmailTemplateResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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


Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
errorIdstringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[GetEmailTemplateResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui

Réponse

Renvoie: Option[GetEmailTemplateDefinitionsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
skipfloat64Non

Réponse

Renvoie: Option[GetEmailTemplateRenderErrorsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
skipfloat64Non

Réponse

Renvoie : Option[GetEmailTemplatesResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
renderEmailTemplateBodyRenderEmailTemplateBodyNon
localestringNon

Réponse

Renvoie : Option[RenderEmailTemplateResponse]

Exemple

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


Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateEmailTemplateBodyUpdateEmailTemplateBodyNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
userIdWSstringNon
startTimeint64Non
endTimeint64Non

Réponse

Retourne: Option[GetEventLogResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
userIdWSstringNon
startTimeint64Non
endTimeint64Non

Réponse

Renvoie: Option[GetEventLogResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
createFeedPostParamsCreateFeedPostParamsNon
broadcastIdstringNon
isLiveboolNon
doSpamCheckboolNon
skipDupCheckboolNon

Réponse

Renvoie: Option[CreateFeedPostsResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
tenantIdstringOui
createFeedPostParamsCreateFeedPostParamsNon
broadcastIdstringNon
ssostringNon

Réponse

Renvoie: Option[CreateFeedPostResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
postIdstringNon
broadcastIdstringNon
ssostringNon

Réponse

Retourne : Option[DeleteFeedPostPublicResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
afterIdstringNon
limitintNon
tagsseq[string]Non

Réponse

Renvoie: Option[GetFeedPostsResponse]

Exemple

Exemple 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
afterIdstringNon
limitintNon
tagsseq[string]Non
ssostringNon
isCrawlerboolNon
includeUserInfoboolNon

Réponse

Renvoie: Option[PublicFeedPostsResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
postIdsseq[string]Non
ssostringNon

Réponse

Renvoie: Option[FeedPostsStatsResponse]

Exemple

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

Paramètres

NameTypeObligatoireDescription
tenantIdstringOui
postIdsseq[string]Non
ssostringNon

Réponse

Renvoie : Option[UserReactsResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
postIdstringNon
reactBodyParamsReactBodyParamsNon
isUndoboolNon
broadcastIdstringNon
ssostringNon

Réponse

Renvoie : Option[ReactFeedPostResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
feedPostFeedPostNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

Exemple d'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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
postIdstringNon
updateFeedPostParamsUpdateFeedPostParamsNon
broadcastIdstringNon
ssostringNon

Réponse

Renvoie : Option[CreateFeedPostResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
commentIdstringOui
isFlaggedboolNon
ssostringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
largeInternalURLSanitizedstringNon

Réponse

Renvoie : Option[GifGetLargeResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
searchstringNon
localestringNon
ratingstringNon
pagefloat64Non

Réponse

Renvoie: Option[GetGifsSearchResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
localestringNon
ratingstringNon
pagefloat64Non

Réponse

Renvoie : Option[GetGifsTrendingResponse]

Exemple

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

Paramètres

NameTypeObligatoireDescription
tenantIdstringOui
createHashTagBodyCreateHashTagBodyNon

Réponse

Renvoie: Option[CreateHashTagResponse]

Exemple

Exemple d'appel 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNon

Réponse

Renvoie: Option[BulkCreateHashTagsResponse]

Exemple

Exemple 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

Paramètres

NameTypeRequiredDescription
tagstringNon
tenantIdstringOui
deleteHashTagRequestBodyDeleteHashTagRequestBodyNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
pagefloat64Non

Réponse

Renvoie: Option[GetHashTagsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tagstringNon
tenantIdstringOui
updateHashTagBodyUpdateHashTagBodyNon

Réponse

Renvoie : Option[UpdateHashTagResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringYes
voteIdstringNo
ssostringNo

Réponse

Retourne : Option[VoteDeleteResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
pagefloat64Non
countfloat64Non
textSearchstringNon
byIPFromCommentstringNon
filtersstringNon
searchFiltersstringNon
sortsstringNon
demoboolNon
ssostringNon

Réponse

Retourne : Option[ModerationAPIGetCommentsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
batchJobIdstringNon
ssostringNon

Réponse

Retourne: Option[ModerationExportStatusResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
textSearchstringNon
byIPFromCommentstringNon
filtersstringNon
searchFiltersstringNon
afterIdstringNon
demoboolNon
ssostringNon

Réponse

Renvoie: Option[ModerationAPIGetCommentIdsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Retourne : Option[GetBannedUsersFromCommentResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Renvoie: Option[GetCommentBanStatusResponse]

Exemple

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


Paramètres

NameTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Retourne: Option[ModerationAPIChildCommentsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
textSearchstringNon
byIPFromCommentstringNon
filterstringNon
searchFiltersstringNon
demoboolNon
ssostringNon

Réponse

Renvoie : Option[ModerationAPICountCommentsResponse]

Exemple

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


Paramètres

NameTypeRequisDescription
ssostringNon

Response

Renvoie : Option[GetBannedUsersCountResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Renvoie : Option[ModerationAPIGetLogsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
ssostringNon

Réponse

Retourne : Option[GetTenantManualBadgesResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
badgesUserIdstringNon
commentIdstringOui
ssostringNon

Réponse

Renvoie : Option[GetUserManualBadgesResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
includeEmailboolNon
includeIPboolNon
ssostringNon

Réponse

Renvoie: Option[ModerationAPICommentResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Renvoie : Option[GetCommentTextResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
includeByUserIdAndEmailboolNon
includeByIPboolNon
includeByEmailDomainboolNon
ssostringNon

Réponse

Renvoie: Option[PreBanSummary]

Exemple

Exemple 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

Paramètres

NameTypeObligatoireDescription
valuestringNon
filtersstringNon
searchFiltersstringNon
ssostringNon

Réponse

Renvoie : Option[ModerationCommentSearchResponse]

Exemple

Exemple 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

Paramètres

NameTypeObligatoireDescription
valuestringNon
ssostringNon

Réponse

Retourne : Option[ModerationPageSearchResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
valuestringNon
ssostringNon

Réponse

Renvoie: Option[ModerationSiteSearchResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
textSearchstringNon
ssostringNon

Réponse

Retourne: Option[ModerationSuggestResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
valuestringNon
ssostringNon

Réponse

Renvoie: Option[ModerationUserSearchResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
userIdstringNon
ssostringNon

Réponse

Renvoie: Option[GetUserTrustFactorResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
ssostringNon

Réponse

Renvoie: Option[APIModerateGetUserBanPreferencesResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
commentIdstringOui
ssostringNon

Réponse

Retourne: Option[GetUserInternalProfileResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
commentIdstringOui
adjustCommentVotesParamsAdjustCommentVotesParamsNon
ssostringNon

Réponse

Renvoie : Option[AdjustVotesResponse]

Exemple

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

Paramètres

NameTypeObligatoireDescription
textSearchstringNon
byIPFromCommentstringNon
filtersstringNon
searchFiltersstringNon
sortsstringNon
ssostringNon

Réponse

Retourne: Option[ModerationExportResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
banEmailboolNon
banEmailDomainboolNon
banIPboolNon
deleteAllUsersCommentsboolNon
bannedUntilstringNon
isShadowBanboolNon
updateIdstringNon
banReasonstringNon
ssostringNon

Réponse

Renvoie: Option[BanUserFromCommentResult]

Exemple

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

Paramètres

NomTypeRequisDescription
banUserUndoParamsBanUserUndoParamsNon
ssostringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
bulkPreBanParamsBulkPreBanParamsNon
includeByUserIdAndEmailboolNon
includeByIPboolNon
includeByEmailDomainboolNon
ssostringNon

Réponse

Renvoie : Option[BulkPreBanSummary]

Exemple

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

Paramètres

NomTypeObligatoireDescription
commentsByIdsParamsCommentsByIdsParamsNon
ssostringNon

Réponse

Renvoie: Option[ModerationAPIChildCommentsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
commentIdstringOui
ssostringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
ssostringNon

Réponse

Retourne: Option[PostRemoveCommentResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
commentIdstringOui
ssostringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
approvedboolNon
ssostringNon

Réponse

Renvoie : Option[SetCommentApprovedResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
commentIdstringOui
reviewedboolNon
ssostringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
spamboolNon
permNotSpamboolNon
ssostringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
setCommentTextParamsSetCommentTextParamsNon
ssostringNon

Réponse

Retourne: Option[SetCommentTextResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
commentIdstringOui
ssostringNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
commentIdstringOui
directionstringNon
ssostringNon

Réponse

Renvoie: Option[VoteResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
badgeIdstringNon
userIdstringNon
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Retourne: Option[AwardUserBadgeResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
urlIdstringOui
ssostringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
badgeIdstringNon
userIdstringNon
commentIdstringOui
broadcastIdstringNon
ssostringNon

Réponse

Retourne: Option[RemoveUserBadgeResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
urlIdstringOui
ssostringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
userIdstringNon
trustFactorstringNon
ssostringNon

Réponse

Renvoie: Option[SetUserTrustFactorResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createModeratorBodyCreateModeratorBodyNon

Réponse

Renvoie: Option[CreateModeratorResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
sendEmailstringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Retourne: Option[GetModeratorResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
skipfloat64Non

Réponse

Renvoie : Option[GetModeratorsResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
updateModeratorBodyUpdateModeratorBodyNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[GetCachedNotificationCountResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringYes
userIdstringNo
urlIdstringYes
fromCommentIdstringNo
viewedboolNo

Réponse

Renvoie: Option[GetNotificationCountResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
userIdstringNon
urlIdstringOui
fromCommentIdstringNon
viewedboolNon
skipfloat64Non

Réponse

Retourne : Option[GetNotificationsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateNotificationBodyUpdateNotificationBodyNon
userIdstringNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
urlIdstringOui
titlestringNon

Réponse

Renvoie : Option[CreateV1PageReact]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
urlIdstringOui
idstringNon
titlestringNon

Réponse

Renvoie : Option[CreateV1PageReact]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
urlIdstringOui

Réponse

Renvoie: Option[CreateV1PageReact]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
urlIdstringOui
idstringNon

Réponse

Retourne: Option[CreateV1PageReact]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui

Réponse

Retourne : Option[GetV1PageLikes]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui

Réponse

Retourne: Option[GetV2PageReacts]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
idstringNon

Réponse

Retourne : Option[GetV2PageReactUsersResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
createAPIPageDataCreateAPIPageDataNon

Réponse

Retourne : Option[AddPageAPIResponse]

Exemple

Exemple 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Retourne: Option[DeletePageAPIResponse]

Exemple

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

Commentateurs précédents sur la page qui NE sont PAS actuellement en ligne. Triés par displayName. Utilisez ceci après avoir épuisé /users/online pour afficher une section «Membres». Pagination par curseur sur commenterName : le serveur parcourt l'index partiel {tenantId, urlId, commenterName} index depuis afterName vers l'avant via $gt, sans coût lié à $skip.

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
urlIdstringOui
afterNamestringNon
afterUserIdstringNon

Réponse

Renvoie : Option[PageUsersOfflineResponse]

Exemple

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

Visiteurs actuellement en ligne d'une page : personnes dont la session websocket est abonnée à la page en ce moment. Renvoie anonCount + totalCount (abonnés à l'échelle de la salle, y compris les visiteurs anonymes que nous n'énumérons pas).

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
urlIdstringOui
afterNamestringNon
afterUserIdstringNon

Réponse

Retourne: Option[PageUsersOnlineResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
urlIdstringOui

Réponse

Retourne: Option[GetPageByURLIdAPIResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui

Réponse

Renvoie: Option[GetPagesAPIResponse]

Exemple

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

Lister les pages d'un locataire. Utilisé par le client de bureau FChat pour remplir sa liste de salles. Requiert que enableFChat soit true dans la configuration personnalisée résolue pour chaque page. Les pages nécessitant SSO sont filtrées en fonction de l'accès aux groupes de l'utilisateur demandeur.

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
cursorstringNon
limitintNon
qstringNon
sortByPagesSortByNon
hasCommentsboolNon

Réponse

Retourne : Option[GetPublicPagesResponse]

Exemple

Exemple 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


Informations utilisateur en masse pour un locataire. Étant donné des userIds, renvoie les informations d'affichage de User / SSOUser. Utilisé par le widget de commentaires pour enrichir les utilisateurs qui viennent d'apparaître via un événement de présence. Pas de contexte de page : la confidentialité est appliquée uniformément (les profils privés sont masqués).

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idsstringNon

Réponse

Renvoie: Option[PageUsersInfoResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
updateAPIPageDataUpdateAPIPageDataNon

Réponse

Renvoie : Option[PatchPageAPIResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
commentIdstringOui
externalIdstringNon
eventTypestringNon
domainstringNon
attemptCountGTfloat64Non

Réponse

Retourne: Option[GetPendingWebhookEventCountResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
commentIdstringOui
externalIdstringNon
eventTypestringNon
domainstringNon
attemptCountGTfloat64Non
skipfloat64Non

Réponse

Retourne : Option[GetPendingWebhookEventsResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
createQuestionConfigBodyCreateQuestionConfigBodyNon

Réponse

Renvoie : Option[CreateQuestionConfigResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[GetQuestionConfigResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
skipfloat64Non

Réponse

Renvoie : Option[GetQuestionConfigsResponse]

Exemple

Exemple 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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
updateQuestionConfigBodyUpdateQuestionConfigBodyNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeObligatoireDescription
tenantIdstringOui
createQuestionResultBodyCreateQuestionResultBodyNon

Réponse

Renvoie : Option[CreateQuestionResultResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[GetQuestionResultResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
urlIdstringOui
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipfloat64Non

Réponse

Renvoie : Option[GetQuestionResultsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
updateQuestionResultBodyUpdateQuestionResultBodyNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
questionIdstringNon
questionIdsseq[string]Non
urlIdstringOui
timeBucketAggregateTimeBucketNon
startDatestringNon
forceRecalculateboolNon

Réponse

Retourne : Option[AggregateQuestionResultsResponse]

Exemple

Exemple 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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNon
forceRecalculateboolNon

Réponse

Renvoie : Option[BulkAggregateQuestionResultsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
questionIdstringNon
questionIdsseq[string]Non
urlIdstringOui
startDatestringNon
forceRecalculateboolNon
minValuefloat64Non
maxValuefloat64Non
limitfloat64Non

Réponse

Renvoie : Option[CombineQuestionResultsWithCommentsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createAPISSOUserDataCreateAPISSOUserDataNon

Réponse

Retourne: Option[AddSSOUserAPIResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
deleteCommentsboolNon
commentDeleteModestringNon

Réponse

Renvoie : Option[DeleteSSOUserAPIResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
emailstringNon

Réponse

Renvoie: Option[GetSSOUserByEmailAPIResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[GetSSOUserByIdAPIResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
skipintNon

Réponse

Renvoie: Option[GetSSOUsersResponse]

Exemple

Exemple 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
updateAPISSOUserDataUpdateAPISSOUserDataNon
updateCommentsboolNon

Réponse

Retourne: Option[PatchSSOUserAPIResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateAPISSOUserDataUpdateAPISSOUserDataNon
updateCommentsboolNon

Réponse

Renvoie : Option[PutSSOUserAPIResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNon

Réponse

Renvoie : Option[CreateSubscriptionAPIResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
idstringNon
userIdstringNon

Réponse

Renvoie : Option[DeleteSubscriptionAPIResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
userIdstringNon

Réponse

Retourne: Option[GetSubscriptionsAPIResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNon
userIdstringNon

Réponse

Renvoie: Option[UpdateSubscriptionAPIResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
yearNumberfloat64Non
monthNumberfloat64Non
dayNumberfloat64Non
skipfloat64Non

Réponse

Renvoie : Option[GetTenantDailyUsagesResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
createTenantPackageBodyCreateTenantPackageBodyNon

Réponse

Renvoie : Option[CreateTenantPackageResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[GetTenantPackageResponse]

Exemple

Exemple 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
skipfloat64Non

Réponse

Renvoie : Option[GetTenantPackagesResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
replaceTenantPackageBodyReplaceTenantPackageBodyNon

Réponse

Retourne : Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
idstringNon
updateTenantPackageBodyUpdateTenantPackageBodyNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

Exemple d'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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createTenantUserBodyCreateTenantUserBodyNon

Réponse

Retourne: Option[CreateTenantUserResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
deleteCommentsstringNon
commentDeleteModestringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Retourne : Option[GetTenantUserResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
skipfloat64Non

Réponse

Retourne : Option[GetTenantUsersResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon
replaceTenantUserBodyReplaceTenantUserBodyNon
updateCommentsstringNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
idstringNon
redirectURLstringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
updateTenantUserBodyUpdateTenantUserBodyNon
updateCommentsstringNon

Réponse

Retourne: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
createTenantBodyCreateTenantBodyNon

Réponse

Retourne: Option[CreateTenantResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon
surestringNon

Réponse

Renvoie : Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[GetTenantResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
metastringNon
skipfloat64Non

Réponse

Renvoie: Option[GetTenantsResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateTenantBodyUpdateTenantBodyNon

Réponse

Renvoie: Option[APIEmptyResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
userIdstringNon
idstringNon
changeTicketStateBodyChangeTicketStateBodyNon

Response

Retourne : Option[ChangeTicketStateResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
userIdstringNon
createTicketBodyCreateTicketBodyNon

Réponse

Renvoie : Option[CreateTicketResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
userIdstringNon

Réponse

Retourne : Option[GetTicketResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
userIdstringNon
statefloat64Non
skipfloat64Non
limitfloat64Non

Réponse

Retourne : Option[GetTicketsResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
namespacestringNon
componentstringNon
localestringNon
useFullTranslationIdsboolNon

Réponse

Renvoie: Option[GetTranslationsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
filestringNon
sizePresetSizePresetNon
urlIdstringOui

Réponse

Renvoie : Option[UploadImageResponse]

Exemple

Exemple 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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[APIGetUserBadgeProgressResponse]

Exemple

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

Parameters

NomTypeObligatoireDescription
tenantIdstringOui
userIdstringNon

Réponse

Renvoie: Option[APIGetUserBadgeProgressResponse]

Exemple

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


Paramètres

NomTypeRequisDescription
tenantIdstringOui
userIdstringNon
limitfloat64Non
skipfloat64Non

Réponse

Renvoie : Option[APIGetUserBadgeProgressListResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
createUserBadgeParamsCreateUserBadgeParamsNon

Réponse

Renvoie : Option[APICreateUserBadgeResponse]

Exemple

Exemple d'utilisation de 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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Retourne : Option[APIEmptySuccessResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie: Option[APIGetUserBadgeResponse]

Exemple

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

Paramètres

NameTypeRequisDescription
tenantIdstringOui
userIdstringNon
badgeIdstringNon
displayedOnCommentsboolNon
limitfloat64Non
skipfloat64Non

Réponse

Renvoie : Option[APIGetUserBadgesResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
updateUserBadgeParamsUpdateUserBadgeParamsNon

Réponse

Retourne : Option[APIEmptySuccessResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
ssostringNon

Réponse

Renvoie: Option[GetUserNotificationCountResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
urlIdstringOui
pageSizeintNon
afterIdstringNon
includeContextboolNon
afterCreatedAtint64Non
unreadOnlyboolNon
dmOnlyboolNon
noDmboolNon
includeTranslationsboolNon
includeTenantNotificationsboolNon
ssostringNon

Réponse

Renvoie : Option[GetMyNotificationsResponse]

Exemple

Exemple 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
ssostringNon

Réponse

Renvoie: Option[ResetUserNotificationsResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
afterIdstringNon
afterCreatedAtint64Non
unreadOnlyboolNon
dmOnlyboolNon
noDmboolNon
ssostringNon

Réponse

Retourne: Option[ResetUserNotificationsResponse]

Exemple

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


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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
notificationIdstringNon
optedInOrOutstringNon
commentIdstringOui
ssostringNon

Réponse

Renvoie: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Exemple

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

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
urlstringNon
pageTitlestringNon
subscribedOrUnsubscribedstringNon
ssostringNon

Réponse

Renvoie: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

Exemple

Exemple d'utilisation de 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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
notificationIdstringNon
newStatusstringNon
ssostringNon

Réponse

Renvoie : Option[UpdateUserNotificationStatusResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
urlIdWSstringNon
userIdsstringNon

Réponse

Renvoie: Option[GetUserPresenceStatusesResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
usernameStartsWithstringNon
mentionGroupIdsseq[string]Non
ssostringNon
searchSectionstringNon

Réponse

Renvoie: Option[SearchUsersResult]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
idstringNon

Réponse

Renvoie : Option[GetUserResponse]

Exemple

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

Paramètres

NameTypeRequiredDescription
tenantIdstringOui
commentIdstringOui
directionstringNon
userIdstringNon
anonUserIdstringNon

Réponse

Retourne: Option[VoteResponse]

Exemple

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

Paramètres

NomTypeObligatoireDescription
tenantIdstringOui
idstringNon
editKeystringNon

Réponse

Retourne : Option[VoteDeleteResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui

Réponse

Renvoie: Option[GetVotesResponse]

Exemple

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

Paramètres

NomTypeRequisDescription
tenantIdstringOui
urlIdstringOui
userIdstringNon
anonUserIdstringNon

Réponse

Renvoie : Option[GetVotesForUserResponse]

Exemple

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

Besoin d'aide ?

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

Contribution

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