FastComments.com

FastComments Nim SDK


Este es el SDK oficial de Nim para FastComments.

SDK oficial de Nim para la API de FastComments

Repositorio

Ver en GitHub


Requisitos Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

Instalación Internal Link


Uso de Nimble

nimble install fastcomments

Compilar desde el código fuente

nimble build

Contenido de la biblioteca

Esta biblioteca contiene el cliente de API generado y las utilidades SSO para facilitar el trabajo con la API.

APIs públicas vs protegidas

Para el cliente de API, hay dos módulos de API, api_default y api_public. El api_default contiene métodos que requieren tu clave de API, y api_public contiene llamadas de API

que se pueden realizar directamente desde un navegador/dispositivo móvil/etc sin autenticación.

Inicio rápido Internal Link

Uso de APIs autenticadas (DefaultAPI)

Importante: Los endpoints autenticados requieren que su clave API se establezca como la cabecera 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"

# Realizar llamadas autenticadas a la API
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"

Uso de APIs públicas (PublicAPI)

Los endpoints públicos no requieren autenticación:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Realizar llamadas públicas a la API
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"

Problemas comunes

  1. 401 authentication error: Asegúrese de establecer la cabecera x-api-key en su HttpClient antes de realizar solicitudes a DefaultAPI: client.headers["x-api-key"] = "your-api-key"
  2. Clase de API incorrecta: Utilice api_default para solicitudes autenticadas en el lado del servidor, api_public para solicitudes del lado del cliente/públicas.

Realizar llamadas a la API Internal Link

Todos los métodos de la API en este SDK devuelven tuplas de (Option[ResponseType], Response). El primer elemento contiene la respuesta analizada si tiene éxito, y el segundo elemento es la respuesta HTTP sin procesar.

Ejemplo: Obtener comentarios

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"

Notas Internal Link

IDs de transmisión

Verás que debes pasar un broadcastId en algunas llamadas a la API. Cuando recibas eventos, obtendrás este ID de vuelta, para que sepas ignorar el evento si planeas aplicar cambios optimistamente en el cliente (lo cual probablemente querrás hacer ya que ofrece la mejor experiencia). Pasa un UUID aquí. El ID debe ser lo suficientemente único como para no ocurrir dos veces en una sesión del navegador.

SSO (Inicio de sesión único)

Para ejemplos de SSO, consulta más abajo.

Uso de 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 seguro

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

Agregar Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
aggregationRequest AggregationRequest No
parentTenantId string No
includeStats bool No

Respuesta

Devuelve: Option[AggregationResponse]

Ejemplo

Ejemplo de aggregate
Copy Copy
1
2let (response, httpResponse) = client.aggregate(
3 tenantId = "my-tenant-123",
4 aggregationRequest = AggregationRequest(),
5 parentTenantId = "",
6 includeStats = false
7)
8if response.isSome:
9 let aggregation = response.get()
10 echo $aggregation
11

Obtener registros de auditoría Internal Link

Parámetros

Name Type Obligatorio Descripción
tenantId string
limit float64 No
skip float64 No
order SORTDIR No
after float64 No
before float64 No

Respuesta

Devuelve: Option[GetAuditLogs_200_response]

Ejemplo

Ejemplo de getAuditLogs
Copy Copy
1
2let (response, httpResponse) = client.getAuditLogs(
3 tenantId = "my-tenant-123",
4 limit = 100.0,
5 skip = 0.0,
6 order = SORTDIR(0),
7 after = 0.0,
8 before = 0.0
9)
10if response.isSome:
11 let audit = response.get()
12 echo audit
13

Bloquear desde comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
publicBlockFromCommentParams PublicBlockFromCommentParams No
sso string No

Respuesta

Devuelve: Option[BlockFromCommentPublic_200_response]

Ejemplo

Ejemplo de blockFromCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = "sso-token-7a9b3c"
7)
8if response.isSome:
9 let blockResult = response.get()
10 discard blockResult
11

Desbloquear comentario público Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
publicBlockFromCommentParams PublicBlockFromCommentParams No
sso string No

Respuesta

Devuelve: Option[UnBlockCommentPublic_200_response]

Ejemplo

Ejemplo de unBlockCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.unBlockCommentPublic(
3 tenantId = "news-site-456",
4 commentId = "comment-abc123",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams{},
6 sso = ""
7)
8if response.isSome:
9 let unblocked = response.get()
10 discard unblocked
11else:
12 discard httpResponse
13

Comprobar comentarios bloqueados Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
commentIds string No
sso string No

Respuesta

Devuelve: Option[CheckedCommentsForBlocked_200_response]

Ejemplo

Ejemplo 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 checked = response.get()
9 echo "Checked comments received for tenant my-tenant-123"
10 echo checked
11else:
12 echo "No checked comments (HTTP status: ", $httpResponse.statusCode, ")"
13

Bloquear usuario desde comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
blockFromCommentParams BlockFromCommentParams No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[BlockFromCommentPublic_200_response]

Ejemplo

Ejemplo de blockUserFromComment
Copy Copy
1
2let (response, httpResponse) = client.blockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-98765",
5 blockFromCommentParams = BlockFromCommentParams(),
6 userId = "user-456",
7 anonUserId = ""
8)
9if response.isSome:
10 let blocked = response.get()
11 echo "Block confirmed for tenant:", " my-tenant-123"
12

Crear comentario público Internal Link

Parámetros

Name Type Required Description
tenantId string
urlId string
broadcastId string No
commentData CommentData No
sessionId string No
sso string No

Respuesta

Devuelve: Option[CreateCommentPublic_200_response]

Ejemplo

Ejemplo de createCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.createCommentPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/breaking-elections-2025",
5 broadcastId = "broadcast-456",
6 commentData = CommentData(
7 content = "Great reporting — thanks for the clear analysis!",
8 authorName = "Jane Doe",
9 authorEmail = "jane.doe@example.com",
10 isVerified = false,
11 tags = @["politics", "analysis"]
12 ),
13 sessionId = "session-789",
14 sso = "sso-token-abc123"
15)
16
17if response.isSome:
18 let created = response.get()
19 echo "Created comment:", created
20else:
21 echo "No comment returned, HTTP status: ", httpResponse.status`
22

Eliminar comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
contextUserId string No
isLive bool No

Respuesta

Devuelve: Option[DeleteComment_200_response]

Ejemplo

Ejemplo de deleteComment
Copy Copy
1
2let (response, httpResponse) = client.deleteComment(tenantId = "my-tenant-123", id = "cmt-456abc", contextUserId = "user-789", isLive = true)
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6 echo "Delete succeeded"
7else:
8 echo "No delete response"
9

Eliminar comentario público Internal Link

Parámetros

Name Type Required Description
tenantId string
commentId string
broadcastId string No
editKey string No
sso string No

Respuesta

Devuelve: Option[DeleteCommentPublic_200_response]

Ejemplo

Ejemplo de deleteCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 broadcastId = "",
6 editKey = "",
7 sso = ""
8)
9if response.isSome:
10 let deleted = response.get()
11 echo "Delete succeeded"
12 echo "HTTP status: ", httpResponse.status
13else:
14 echo "Delete failed, HTTP status: ", httpResponse.status
15

Eliminar voto de comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
voteId string No
urlId string
broadcastId string No
editKey string No
sso string No

Respuesta

Devuelve: Option[DeleteCommentVote_200_response]

Ejemplo

Ejemplo de deleteCommentVote
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-789",
5 voteId = "",
6 urlId = "news/breaking-story-2025",
7 broadcastId = "",
8 editKey = "",
9 sso = ""
10)
11if response.isSome:
12 let deleted = response.get()
13 discard deleted
14 echo "Vote removed for comment cmt-789"
15else:
16 echo "No response body returned"
17

Marcar comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[FlagComment_200_response]

Ejemplo

Ejemplo de flagComment
Copy Copy
1
2let (response, httpResponse) = client.flagComment(tenantId = "my-tenant-123", id = "cmt-98765", userId = "user-8342", anonUserId = "")
3if response.isSome:
4 let flagged = response.get()
5 echo "Flagged comment response: ", flagged
6else:
7 echo "Flag comment failed: ", httpResponse
8

Obtener comentario Internal Link

Parámetros

Name Type Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetComment_200_response]

Ejemplo

Ejemplo de getComment
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-987654321")
3if response.isSome:
4 let comment = response.get()
5 echo comment
6

Obtener comentarios Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
page int No
limit int No
skip int No
asTree bool No
skipChildren int No
limitChildren int No
maxTreeDepth int No
urlId string
userId string No
anonUserId string No
contextUserId string No
hashTag string No
parentId string No
direction SortDirections No

Respuesta

Devuelve: Option[GetComments_200_response]

Ejemplo

Ejemplo de getComments
Copy Copy
1
2let (response, httpResponse) = client.getComments(
3 tenantId = "my-tenant-123",
4 page = 1,
5 limit = 20,
6 skip = 0,
7 asTree = false,
8 skipChildren = 0,
9 limitChildren = 0,
10 maxTreeDepth = 0,
11 urlId = "news/2025-election-night",
12 userId = "",
13 anonUserId = "",
14 contextUserId = "",
15 hashTag = "",
16 parentId = "",
17 direction = SortDirections.Desc
18)
19
20if response.isSome:
21 let comments = response.get()
22 echo "Status: ", httpResponse.status, " Comments: ", comments
23

Obtener comentarios públicos Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
urlId string
page int No
direction SortDirections No
sso string No
skip int No
skipChildren int No
limit int No
limitChildren int No
countChildren bool No
fetchPageForCommentId string No
includeConfig bool No
countAll bool No
includei10n bool No
locale string No
modules string No
isCrawler bool No
includeNotificationCount bool No
asTree bool No
maxTreeDepth int No
useFullTranslationIds bool No
parentId string No
searchText string No
hashTags seq[string] No
userId string No
customConfigStr string No
afterCommentId string No
beforeCommentId string No

Respuesta

Devuelve: Option[GetCommentsPublic_200_response]

Ejemplo

Ejemplo de getCommentsPublic
Copy Copy
1
2let (response, httpResponse) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/world/article-2025",
5 page = 1,
6 direction = SortDirections(0),
7 sso = "sso_token_abc",
8 skip = 0,
9 skipChildren = 0,
10 limit = 20,
11 limitChildren = 5,
12 countChildren = false,
13 fetchPageForCommentId = "cmt_789",
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 = "parent_123",
25 searchText = "openAI integration",
26 hashTags = @["ai", "technology"],
27 userId = "user_456",
28 customConfigStr = "{}",
29 afterCommentId = "cmt_100",
30 beforeCommentId = ""
31)
32
33if response.isSome:
34 let comments = response.get()
35 discard comments
36else:
37 discard httpResponse
38

Obtener texto del comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
editKey string No
sso string No

Respuesta

Devuelve: Option[GetCommentText_200_response]

Ejemplo

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

Obtener nombres de usuarios que votaron el comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
dir int No
sso string No

Respuesta

Devuelve: Option[GetCommentVoteUserNames_200_response]

Ejemplo

Ejemplo de getCommentVoteUserNames
Copy Copy
1
2let (response, httpResponse) = client.getCommentVoteUserNames(tenantId = "my-tenant-123", commentId = "c_987654321", dir = 0, sso = "")
3if response.isSome:
4 let res = response.get()
5 for userName in res.userNames:
6 echo userName
7

Bloquear comentario Internal Link

Parámetros

Name Type Required Description
tenantId string
commentId string
broadcastId string No
sso string No

Respuesta

Devuelve: Option[LockComment_200_response]

Ejemplo

Ejemplo de lockComment
Copy Copy
1
2let (response, httpResponse) = client.lockComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-98765",
5 broadcastId = "",
6 sso = ""
7)
8if response.isSome:
9 let lockResp = response.get()
10 discard lockResp
11

Fijar comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
broadcastId string No
sso string No

Respuesta

Devuelve: Option[PinComment_200_response]

Ejemplo

Ejemplo de pinComment
Copy Copy
1
2let (response, httpResponse) = client.pinComment(tenantId = "my-tenant-123", commentId = "cmt-98765", broadcastId = "", sso = "")
3if response.isSome:
4 let pinned = response.get()
5 echo "Pinned comment response received"
6else:
7 echo "No pin response"
8

Guardar comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createCommentParams CreateCommentParams No
isLive bool No
doSpamCheck bool No
sendEmails bool No
populateNotifications bool No

Respuesta

Devuelve: Option[SaveComment_200_response]

Ejemplo

Ejemplo de saveComment
Copy Copy
1
2let (response, httpResponse) = client.saveComment(
3 tenantId = "my-tenant-123",
4 createCommentParams = CreateCommentParams(
5 content = "This article was really helpful, thanks!",
6 urlId = "news/2025-11/ai-regulations",
7 authorName = "Jane Doe",
8 authorEmail = "jane.doe@example.com",
9 tags = @["policy", "analysis"]
10 ),
11 isLive = true,
12 doSpamCheck = true,
13 sendEmails = true,
14 populateNotifications = false
15)
16
17if response.isSome:
18 let saved = response.get()
19 discard saved
20

Guardar comentarios en bloque Internal Link

Parámetros

Name Type Requerido Descripción
tenantId string
createCommentParams seq[CreateCommentParams] No
isLive bool No
doSpamCheck bool No
sendEmails bool No
populateNotifications bool): (Option[seq[SaveComment_200_response]] No
id string No
unBlockFromCommentParams UnBlockFromCommentParams No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[UnBlockCommentPublic_200_response]

Ejemplo

Ejemplo de saveCommentsBulk
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 isLive = true,
6 doSpamCheck = true,
7 sendEmails = false,
8 populateNotifications = true,
9 id = "batch-20251122",
10 unBlockFromCommentParams = UnBlockFromCommentParams(),
11 userId = "user-456",
12 anonUserId = "anon-789"
13)
14if response.isSome:
15 let unblocked = response.get()
16 echo "Unblocked response received: ", unblocked
17else:
18 echo "No unblocked response, httpResponse: ", $httpResponse
19

Establecer texto del comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
commentId string
broadcastId string No
commentTextUpdateRequest CommentTextUpdateRequest No
editKey string No
sso string No

Respuesta

Devuelve: Option[SetCommentText_200_response]

Ejemplo

Ejemplo de setCommentText
Copy Copy
1
2let (response, httpResponse) = client.setCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-7890",
5 broadcastId = "broadcast-456",
6 commentTextUpdateRequest = CommentTextUpdateRequest(text = "Updated comment text to fix typos and add clarity."),
7 editKey = "edit-key-abc123",
8 sso = "sso-token-xyz"
9)
10
11if response.isSome:
12 let updated = response.get()
13

Desbloquear usuario desde comentario Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No
unBlockFromCommentParams UnBlockFromCommentParams No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[UnBlockCommentPublic_200_response]

Ejemplo

Ejemplo de unBlockUserFromComment
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "news-site-001",
4 id = "cmt-8fj3k9",
5 unBlockFromCommentParams = UnBlockFromCommentParams(),
6 userId = "user-98765",
7 anonUserId = ""
8)
9
10if response.isSome:
11 let unblocked = response.get()
12 discard unblocked
13

Quitar marca de comentario Internal Link

Parámetros

Name Type Requerido Description
tenantId string
id string No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[FlagComment_200_response]

Ejemplo

Ejemplo de unFlagComment
Copy Copy
1
2let (response, httpResponse) = client.unFlagComment(
3 tenantId = "my-tenant-123",
4 id = "flag-789",
5 userId = "",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let flagResponse = response.get()
11 echo "Comment unflagged successfully"
12

Desbloquear comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
broadcastId string No
sso string No

Respuesta

Devuelve: Option[LockComment_200_response]

Ejemplo

Ejemplo de unLockComment
Copy Copy
1
2let (response, httpResponse) = client.unLockComment(tenantId = "my-tenant-123", commentId = "cmt-7f9a3b2d", broadcastId = "", sso = "")
3if response.isSome:
4 let lockResult = response.get()
5 echo "Unlock response: ", $lockResult
6else:
7 echo "Unlock failed, HTTP response: ", $httpResponse
8

Desfijar comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
broadcastId string No
sso string No

Respuesta

Devuelve: Option[PinComment_200_response]

Ejemplo

Ejemplo de unPinComment
Copy Copy
1
2let (response, httpResponse) = client.unPinComment(tenantId = "my-tenant-123", commentId = "cmt-9f8b7a6", broadcastId = "", sso = "")
3if response.isSome:
4 let pinResp = response.get()
5 echo "Unpinned comment successfully"
6else:
7 echo "Failed to unpin comment; HTTP response: ", httpResponse
8

Actualizar comentario Internal Link

Parámetros

Name Type Obligatorio Descripción
tenantId string
id string No
updatableCommentParams UpdatableCommentParams No
contextUserId string No
doSpamCheck bool No
isLive bool No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateComment
Copy Copy
1
2let updatableCommentParams = UpdatableCommentParams(content: "Fixed a typo in the second paragraph", tags: @["article-edit", "typo"], isApproved: true)
3let (response, httpResponse) = client.updateComment(
4 tenantId = "my-tenant-123",
5 id = "comment-456",
6 updatableCommentParams = updatableCommentParams,
7 contextUserId = "user-789",
8 doSpamCheck = true,
9 isLive = true
10)
11if response.isSome:
12 let flagResp = response.get()
13 discard flagResp
14

Votar comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
commentId string
urlId string
broadcastId string No
voteBodyParams VoteBodyParams No
sessionId string No
sso string No

Respuesta

Devuelve: Option[VoteComment_200_response]

Ejemplo

Ejemplo de voteComment
Copy Copy
1
2let voteBody = VoteBodyParams()
3let (response, httpResponse) = client.voteComment(
4 tenantId = "my-tenant-123",
5 commentId = "cmt-456789",
6 urlId = "news/2025/fastcomments-integration",
7 broadcastId = "",
8 voteBodyParams = voteBody,
9 sessionId = "",
10 sso = ""
11)
12if response.isSome:
13 let voteResp = response.get()
14 echo "Vote recorded for comment cmt-456789"
15else:
16 echo "Failed to record vote"
17

Agregar configuración de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
addDomainConfigParams AddDomainConfigParams No

Respuesta

Devuelve: Option[AddDomainConfig_200_response]

Ejemplo

Ejemplo de addDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.addDomainConfig(tenantId = "my-tenant-123", addDomainConfigParams = AddDomainConfigParams())
3if response.isSome:
4 let domainConfig = response.get()
5 discard domainConfig
6else:
7 discard httpResponse
8

Eliminar configuración de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
domain string No

Respuesta

Devuelve: Option[DeleteDomainConfig_200_response]

Ejemplo

Ejemplo de deleteDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let result = response.get()
5 echo "Deleted domain config result: ", result
6else:
7 echo "No response body, HTTP status: ", $httpResponse.status
8

Obtener configuración de dominio Internal Link

Parámetros

Name Type Required Description
tenantId string
domain string No

Respuesta

Devuelve: Option[GetDomainConfig_200_response]

Ejemplo

Ejemplo de getDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let domainConfig = response.get()
5 echo "Loaded domain config for tenant my-tenant-123:", $domainConfig
6else:
7 echo "No domain config; HTTP status:", $httpResponse.status
8

Obtener configuraciones de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string

Respuesta

Devuelve: Option[GetDomainConfigs_200_response]

Ejemplo

Ejemplo de getDomainConfigs
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if response.isSome:
4 let domainConfigs = response.get()
5 echo "Domain configs received:"
6 echo domainConfigs
7else:
8 echo "Failed to retrieve domain configs."
9 echo httpResponse
10

Actualizar parcialmente configuración de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
domainToUpdate string No
patchDomainConfigParams PatchDomainConfigParams No

Respuesta

Devuelve: Option[GetDomainConfig_200_response]

Ejemplo

Ejemplo de patchDomainConfig
Copy Copy
1
2let (response, httpResponse) = client.patchDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "news/article-crowdsourcing",
5 patchDomainConfigParams = PatchDomainConfigParams(
6 allowedOrigins = @["https://www.news-site.com"],
7 moderated = true,
8 maxCommentLength = 1000
9 )
10)
11
12if response.isSome:
13 let domainConfig = response.get()
14 echo "Updated domain config received"
15else:
16 echo "No domain config returned"
17

Reemplazar configuración de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
domainToUpdate string No
updateDomainConfigParams UpdateDomainConfigParams No

Respuesta

Devuelve: Option[GetDomainConfig_200_response]

Ejemplo

Ejemplo de putDomainConfig
Copy Copy
1
2let updateParams = UpdateDomainConfigParams(
3 allowAnonymous = false,
4 moderationEnabled = true,
5 allowedOrigins = @["https://news.example.com"],
6 maxCommentLength = 2000
7)
8
9let (response, httpResponse) = client.putDomainConfig(
10 tenantId = "my-tenant-123",
11 domainToUpdate = "news/example-article",
12 updateDomainConfigParams = updateParams
13)
14
15if response.isSome:
16 let domainCfg = response.get()
17 discard domainCfg
18

Crear plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
createEmailTemplateBody CreateEmailTemplateBody No

Respuesta

Devuelve: Option[CreateEmailTemplate_200_response]

Ejemplo

Ejemplo de createEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.createEmailTemplate(tenantId = "my-tenant-123", createEmailTemplateBody = CreateEmailTemplateBody(name = "Weekly Newsletter", subject = "Weekly updates from OurSite", fromName = "OurSite Team", fromEmail = "newsletter@oursite.com", bodyHtml = "<h1>Highlights</h1><p>Top stories this week...</p>", enabled = true, tags = @["newsletter", "weekly"]))
3if response.isSome:
4 let template = response.get()
5 discard template
6

Eliminar plantilla de correo electrónico Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "tmpl-456")
3if response.isSome:
4 let deleted = response.get()
5 echo deleted
6

Eliminar error de renderizado de plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No
errorId string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteEmailTemplateRenderError
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email-template",
5 errorId = "render-error-2026"
6)
7if response.isSome:
8 let flagResp = response.get()
9 discard flagResp
10

Obtener plantilla de correo electrónico Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No

Respuesta

Devuelve: Option[GetEmailTemplate_200_response]

Ejemplo

Ejemplo 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 echo "Template ID: ", template.id
6 echo "Subject: ", template.subject
7 echo "Body: ", template.body
8

Obtener definiciones de plantillas de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string

Respuesta

Devuelve: Option[GetEmailTemplateDefinitions_200_response]

Ejemplo

Ejemplo de getEmailTemplateDefinitions
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if response.isSome:
4 let defs = response.get()
5 echo "Received email template definitions for tenant my-tenant-123"
6else:
7 echo "No template definitions returned; HTTP status: ", httpResponse.status
8

Obtener errores de renderizado de plantillas de correo electrónico Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No
skip float64 No

Respuesta

Devuelve: Option[GetEmailTemplateRenderErrors_200_response]

Ejemplo

Ejemplo de getEmailTemplateRenderErrors
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateRenderErrors(tenantId = "my-tenant-123", id = "welcome-email-template-001", skip = 0.0)
3if response.isSome:
4 let result = response.get()
5 echo "Render errors:", result
6else:
7 echo "No render errors or request failed. HTTP status:", httpResponse.status
8

Obtener plantillas de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip float64 No

Respuesta

Devuelve: Option[GetEmailTemplates_200_response]

Ejemplo

Ejemplo 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 templates returned"
8

Renderizar plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
renderEmailTemplateBody RenderEmailTemplateBody No
locale string No

Respuesta

Devuelve: Option[RenderEmailTemplate_200_response]

Ejemplo

Ejemplo de renderEmailTemplate
Copy Copy
1
2let renderBody = RenderEmailTemplateBody(templateId: "comment-notification", subject: "New comment on your article", variables: @["John Doe", "news/global-climate"])
3let (response, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = renderBody, locale = "en-US")
4if response.isSome:
5 let rendered = response.get()
6 echo rendered
7

Actualizar plantilla de correo electrónico Internal Link

Parámetros

Name Type Obligatorio Descripción
tenantId string
id string No
updateEmailTemplateBody UpdateEmailTemplateBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateEmailTemplate
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 name = "Welcome Email",
4 subject = "Welcome to Example News",
5 html = "<p>Hi {name}, welcome to Example News.</p>",
6 isActive = true,
7 tags = @["onboarding", "welcome"]
8)
9
10let (response, httpResponse) = client.updateEmailTemplate(
11 tenantId = "my-tenant-123",
12 id = "welcome-template-2026",
13 updateEmailTemplateBody = updateBody
14)
15
16if response.isSome:
17 let template = response.get()
18 discard template
19

Obtener registro de eventos Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
urlId string
userIdWS string No
startTime int64 No
endTime int64 No

Respuesta

Devuelve: Option[GetEventLog_200_response]

Ejemplo

Ejemplo de getEventLog
Copy Copy
1
2let (response, httpResponse) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/politics/election-2024",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo "Received event log for ", "my-tenant-123"
12else:
13 echo "No event log returned. HTTP status: ", $httpResponse.status
14

Obtener registro de eventos global Internal Link

Parámetros

Name Tipo Obligatorio Descripción
tenantId string
urlId string
userIdWS string No
startTime int64 No
endTime int64 No

Respuesta

Devuelve: Option[GetEventLog_200_response]

Ejemplo

Ejemplo de getGlobalEventLog
Copy Copy
1
2let (response, httpResponse) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = int64(0),
7 endTime = int64(0)
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo eventLog
12else:
13 echo "No event log returned"
14

Crear publicación del feed Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createFeedPostParams CreateFeedPostParams No
broadcastId string No
isLive bool No
doSpamCheck bool No
skipDupCheck bool No

Respuesta

Devuelve: Option[CreateFeedPost_200_response]

Ejemplo

Ejemplo de createFeedPost
Copy Copy
1
2let createParams = CreateFeedPostParams(
3 content = "We're rolling out realtime comments to all users!",
4 title = "Realtime Comments Rollout",
5 url = "news/realtime-comments-rollout-2025",
6 authorId = "prod-team",
7 tags = @["release", "comments"]
8)
9
10let (response, httpResponse) = client.createFeedPost(
11 tenantId = "my-tenant-123",
12 createFeedPostParams = createParams,
13 broadcastId = "broadcast-2025-11",
14 isLive = true,
15 doSpamCheck = true,
16 skipDupCheck = false
17)
18
19if response.isSome:
20 let created = response.get()
21 echo "Feed post created, id: ", $created.id
22else:
23 echo "Failed to create feed post, HTTP status: ", $httpResponse.statusCode
24

Crear publicación del feed pública Internal Link

Parámetros

Name Tipo Requerido Descripción
tenantId string
createFeedPostParams CreateFeedPostParams No
broadcastId string No
sso string No

Respuesta

Devuelve: Option[CreateFeedPostPublic_200_response]

Ejemplo

Ejemplo de createFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.createFeedPostPublic(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(
5 title = "Product Launch Announcement",
6 content = "We just launched a new commenting feature to improve engagement.",
7 authorId = "team-product",
8 url = "news/product-launch",
9 tags = @["launch", "comments"],
10 isFeatured = false
11 ),
12 broadcastId = "broadcast-009",
13 sso = ""
14)
15if response.isSome:
16 let created = response.get()
17 discard created
18

Eliminar publicación del feed pública Internal Link

Parámetros

Name Type Required Description
tenantId string
postId string No
broadcastId string No
sso string No

Respuesta

Devuelve: Option[DeleteFeedPostPublic_200_response]

Ejemplo

Ejemplo de deleteFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-456",
5 broadcastId = "broadcast-789",
6 sso = ""
7)
8if response.isSome:
9 let result = response.get()
10

Obtener publicaciones del feed Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
afterId string No
limit int No
tags seq[string] No

Respuesta

Devuelve: Option[GetFeedPosts_200_response]

Ejemplo

Ejemplo de getFeedPosts
Copy Copy
1
2let (response, httpResponse) = client.getFeedPosts(tenantId = "my-tenant-123", afterId = "post_abc123", limit = 20, tags = @["news", "sports"])
3if response.isSome:
4 let feed = response.get()
5 echo "Feed posts retrieved for tenant my-tenant-123"
6else:
7 echo "No feed posts returned, HTTP status: ", $httpResponse.status
8

Obtener publicaciones del feed públicas Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
afterId string No
limit int No
tags seq[string] No
sso string No
isCrawler bool No
includeUserInfo bool No

Respuesta

Devuelve: Option[GetFeedPostsPublic_200_response]

Ejemplo

Ejemplo 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)
11
12if response.isSome:
13 let feed = response.get()
14 echo feed
15

Obtener estadísticas de publicaciones del feed Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
postIds seq[string] No
sso string No

Respuesta

Devuelve: Option[GetFeedPostsStats_200_response]

Ejemplo

Ejemplo de getFeedPostsStats
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsStats(
3 tenantId = "my-tenant-123",
4 postIds = @["news/article-2025-11-22", "opinion/market-trends-452"],
5 sso = ""
6)
7
8if response.isSome:
9 let stats = response.get()
10 discard stats
11

Obtener reacciones públicas de usuarios Internal Link

Parámetros

Name Type Requerido Descripción
tenantId string
postIds seq[string] No
sso string No

Respuesta

Devuelve: Option[GetUserReactsPublic_200_response]

Ejemplo

Ejemplo de getUserReactsPublic
Copy Copy
1
2let (response, httpResponse) = client.getUserReactsPublic(tenantId = "my-tenant-123", postIds = @[], sso = "")
3if response.isSome:
4 let reacts = response.get()
5 discard reacts
6

Reaccionar a publicación del feed pública Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
postId string No
reactBodyParams ReactBodyParams No
isUndo bool No
broadcastId string No
sso string No

Respuesta

Devuelve: Option[ReactFeedPostPublic_200_response]

Ejemplo

Ejemplo de reactFeedPostPublic
Copy Copy
1
2let (response, httpResponse) = client.reactFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-title",
5 reactBodyParams = ReactBodyParams(),
6 isUndo = false,
7 broadcastId = "broadcast-456",
8 sso = ""
9)
10if response.isSome:
11 let result = response.get()
12 echo "Reaction result: ", result
13else:
14 echo "Reaction failed, HTTP response: ", httpResponse
15

Actualizar publicación del feed Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No
feedPost FeedPost No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateFeedPost
Copy Copy
1
2let feedPost = FeedPost(
3 title: "Local Election Results",
4 content: "Updated vote counts across precincts",
5 tags: @["politics", "local"],
6 authorId: "journalist-32",
7 isPublished: true,
8 views: 124
9)
10
11let (response, httpResponse) = client.updateFeedPost(tenantId = "my-tenant-123", id = "post-456", feedPost = feedPost)
12
13if response.isSome:
14 let flagResp = response.get()
15 discard flagResp
16

Actualizar publicación del feed pública Internal Link

Parámetros

Name Type Requerido Descripción
tenantId string
postId string No
updateFeedPostParams UpdateFeedPostParams No
broadcastId string No
sso string No

Respuesta

Devuelve: Option[CreateFeedPostPublic_200_response]

Ejemplo

Ejemplo de updateFeedPostPublic
Copy Copy
1
2var updateParams: UpdateFeedPostParams = UpdateFeedPostParams(
3 title = "Breaking: Service Update",
4 content = "We improved feed performance and UX for all users.",
5 tags = @["performance", "release"],
6 isPublic = true
7)
8
9let (response, httpResponse) = client.updateFeedPostPublic(
10 tenantId = "my-tenant-123",
11 postId = "post-456",
12 updateFeedPostParams = updateParams,
13 broadcastId = "broadcast-789",
14 sso = "sso-token-abc123"
15)
16
17if response.isSome:
18 let post = response.get()
19 echo "Updated post title: ", post.title
20 echo "HTTP status: ", httpResponse.status
21

Marcar comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
isFlagged bool No
sso string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de flagCommentPublic
Copy Copy
1
2let (response, httpResponse) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-98765",
5 isFlagged = false,
6 sso = ""
7)
8if response.isSome:
9 let flagResult = response.get()
10 discard flagResult
11

Agregar hashtag Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createHashTagBody CreateHashTagBody No

Respuesta

Devuelve: Option[AddHashTag_200_response]

Ejemplo

Ejemplo de addHashTag
Copy Copy
1
2let createBody = CreateHashTagBody(
3 name = "sports",
4 description = "Articles and discussions about sports",
5 aliases = @["sport", "athletics"],
6 isActive = true
7)
8
9let (response, httpResponse) = client.addHashTag(tenantId = "my-tenant-123", createHashTagBody = createBody)
10
11if response.isSome:
12 let added = response.get()
13 echo "HashTag added successfully"
14else:
15 echo "Failed to add HashTag"
16

Agregar hashtags en bloque Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
bulkCreateHashTagsBody BulkCreateHashTagsBody No

Respuesta

Devuelve: Option[AddHashTagsBulk_200_response]

Ejemplo

Ejemplo de addHashTagsBulk
Copy Copy
1
2let bulkBody = BulkCreateHashTagsBody(
3 tags = @["breaking", "world-news", "economy"],
4 createdBy = "editor@dailynews.com",
5 replaceExisting = false
6)
7let (response, httpResponse) = client.addHashTagsBulk(tenantId = "newsroom-tenant-42", bulkCreateHashTagsBody = bulkBody)
8if response.isSome:
9 let created = response.get()
10 echo created
11else:
12 echo "AddHashTagsBulk failed:", httpResponse
13

Eliminar hashtag Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tag string No
tenantId string
deleteHashTagRequest DeleteHashTagRequest No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteHashTag
Copy Copy
1
2let (response, httpResponse) = client.deleteHashTag(tag = "breaking-news", tenantId = "my-tenant-123", deleteHashTagRequest = DeleteHashTagRequest())
3if response.isSome:
4 let result = response.get()
5 discard result
6

Obtener hashtags Internal Link

Parámetros

Name Type Required Description
tenantId string
page float64 No

Respuesta

Devuelve: Option[GetHashTags_200_response]

Ejemplo

Ejemplo de getHashTags
Copy Copy
1
2let (response, httpResponse) = client.getHashTags(tenantId = "my-tenant-123", page = 1.0)
3if response.isSome:
4 let tags = response.get()
5 for t in tags:
6 echo t
7else:
8 echo "no hashtags found"
9

Actualizar parcialmente hashtag Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tag string No
tenantId string
updateHashTagBody UpdateHashTagBody No

Respuesta

Devuelve: Option[PatchHashTag_200_response]

Ejemplo

Ejemplo de patchHashTag
Copy Copy
1
2let (response, httpResponse) = client.patchHashTag(tag = "politics", tenantId = "my-tenant-123", updateHashTagBody = UpdateHashTagBody())
3
4if response.isSome:
5 let updated = response.get()
6 echo "Hashtag updated successfully"
7else:
8 echo "Failed to update hashtag, status:", httpResponse.status
9

Crear moderador Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
createModeratorBody CreateModeratorBody No

Respuesta

Devuelve: Option[CreateModerator_200_response]

Ejemplo

Ejemplo de createModerator
Copy Copy
1
2let createBody = CreateModeratorBody(
3 email = "moderator@news-site.com",
4 displayName = "News Moderator",
5 permissions = @["approve_comments", "delete_comments"],
6 isSuperAdmin = false
7)
8
9let (response, httpResponse) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = createBody)
10
11if response.isSome:
12 let moderator = response.get()
13 echo "Created moderator: ", $moderator
14

Eliminar moderador Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No
sendEmail string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteModerator
Copy Copy
1
2let (response, httpResponse) = client.deleteModerator(tenantId = "my-tenant-123", id = "moderator-456", sendEmail = "false")
3if response.isSome:
4 let flagResp = response.get()
5 echo "Moderator deletion response: ", $flagResp
6else:
7 echo "No response body; HTTP status: ", $httpResponse.status
8

Obtener moderador Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetModerator_200_response]

Ejemplo

Ejemplo de getModerator
Copy Copy
1
2let (response, httpResponse) = client.getModerator(tenantId = "my-tenant-123", id = "mod-98765")
3if response.isSome:
4 let moderator = response.get()
5 discard moderator
6

Obtener moderadores Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip float64 No

Respuesta

Devuelve: Option[GetModerators_200_response]

Ejemplo

Ejemplo 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 "Moderators fetched successfully"
6 echo moderators
7

Actualizar moderador Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No
updateModeratorBody UpdateModeratorBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateModerator
Copy Copy
1
2let updateBody = UpdateModeratorBody(
3 name: "Alicia Gomez",
4 email: "alicia.gomez@dailynews.com",
5 active: true,
6 roles: @["moderator"]
7)
8
9let (response, httpResponse) = client.updateModerator(tenantId = "my-tenant-123", id = "moderator-789", updateModeratorBody = updateBody)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Moderator updated:", updated
14

Eliminar contador de notificaciones Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if response.isSome:
4 let deleted = response.get()
5 echo "Deleted notification count:", deleted
6else:
7 echo "No response body; HTTP response:", httpResponse
8

Obtener contador de notificaciones en caché Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetCachedNotificationCount_200_response]

Ejemplo

Ejemplo de getCachedNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "notif-thread-2026")
3if response.isSome:
4 let cached = response.get()
5 echo "Cached notification count: ", $cached
6

Obtener contador de notificaciones Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
userId string No
urlId string
fromCommentId string No
viewed bool No

Respuesta

Devuelve: Option[GetNotificationCount_200_response]

Ejemplo

Ejemplo de getNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getNotificationCount(
3 tenantId = "acme-corp-tenant-12",
4 userId = "user-84",
5 urlId = "news/2026/market-update",
6 fromCommentId = "cmt-20251234",
7 viewed = false
8)
9
10if response.isSome:
11 let notificationData = response.get()
12 echo "Received notification data"
13else:
14 echo "No notification data"
15

Obtener notificaciones Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
userId string No
urlId string
fromCommentId string No
viewed bool No
skip float64 No

Respuesta

Devuelve: Option[GetNotifications_200_response]

Ejemplo

Ejemplo de getNotifications
Copy Copy
1
2let (response, httpResponse) = client.getNotifications(
3 tenantId = "fastcomments-tenant-42",
4 userId = "",
5 urlId = "news/latest-tech-innovations",
6 fromCommentId = "",
7 viewed = false,
8 skip = 0.0
9)
10
11if response.isSome:
12 let notifications = response.get()
13 echo "Received notifications: ", notifications
14else:
15 echo "No notifications, response: ", httpResponse
16

Actualizar notificación Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No
updateNotificationBody UpdateNotificationBody No
userId string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateNotification
Copy Copy
1
2let (response, httpResponse) = client.updateNotification(tenantId = "my-tenant-123",
3 id = "notif-456",
4 updateNotificationBody = UpdateNotificationBody(),
5 userId = "user-789")
6if response.isSome:
7 let updated = response.get()
8 echo "Updated notification id: ", $updated
9

Agregar página Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createAPIPageData CreateAPIPageData No

Respuesta

Devuelve: Option[AddPageAPIResponse]

Ejemplo

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

Eliminar página Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[DeletePageAPIResponse]

Ejemplo

Ejemplo 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

Obtener página por ID de URL Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
urlId string

Respuesta

Devuelve: Option[GetPageByURLIdAPIResponse]

Ejemplo

Ejemplo 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

Obtener páginas Internal Link

Parámetros

Name Type Required Description
tenantId string

Respuesta

Devuelve: Option[GetPagesAPIResponse]

Ejemplo

Ejemplo 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

Actualizar parcialmente página Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No
updateAPIPageData UpdateAPIPageData No

Respuesta

Devuelve: Option[PatchPageAPIResponse]

Ejemplo

Ejemplo 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

Eliminar evento de webhook pendiente Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deletePendingWebhookEvent
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "wh_evt_6f1e3b2a")
3if response.isSome:
4 let flagResp = response.get()
5 discard flagResp
6

Obtener contador de eventos de webhook pendientes Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
externalId string No
eventType string No
domain string No
attemptCountGT float64 No

Respuesta

Devuelve: Option[GetPendingWebhookEventCount_200_response]

Ejemplo

Ejemplo de getPendingWebhookEventCount
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEventCount(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-4567",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0
9)
10if response.isSome:
11 let pending = response.get()
12 echo "Received pending webhook event count response: ", $pending
13else:
14 echo "No pending webhook event count returned, HTTP response: ", $httpResponse
15

Obtener eventos de webhook pendientes Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
commentId string
externalId string No
eventType string No
domain string No
attemptCountGT float64 No
skip float64 No

Respuesta

Devuelve: Option[GetPendingWebhookEvents_200_response]

Ejemplo

Ejemplo de getPendingWebhookEvents
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
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 echo "Received pending webhook events"
15else:
16 echo "No pending webhook events"
17

Crear configuración de pregunta Internal Link

Parámetros

Name Type Required Description
tenantId string
createQuestionConfigBody CreateQuestionConfigBody No

Respuesta

Devuelve: Option[CreateQuestionConfig_200_response]

Ejemplo

Ejemplo de createQuestionConfig
Copy Copy
1
2let body = CreateQuestionConfigBody(
3 key = "recommendation",
4 question = "Would you recommend this article to a friend?",
5 required = false,
6 inputType = "radio",
7 options = @["Yes", "No", "Maybe"]
8)
9
10let (response, httpResponse) = client.createQuestionConfig(tenantId = "my-tenant-123", createQuestionConfigBody = body)
11
12if response.isSome:
13 let config = response.get()
14 discard config
15

Eliminar configuración de pregunta Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-456")
3if response.isSome:
4 let respVal = response.get()
5 echo "Delete succeeded for tenant my-tenant-123"
6else:
7 echo "Delete returned no data (status: ", $httpResponse.status, ")"
8

Obtener configuración de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetQuestionConfig_200_response]

Ejemplo

Ejemplo de getQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-98765")
3if response.isSome:
4 let config = response.get()
5 echo "Received question config for tenant:", " my-tenant-123"
6

Obtener configuraciones de preguntas Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip float64 No

Respuesta

Devuelve: Option[GetQuestionConfigs_200_response]

Ejemplo

Ejemplo de 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 discard configs
6

Actualizar configuración de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateQuestionConfigBody UpdateQuestionConfigBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateQuestionConfig
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "q-config-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7if response.isSome:
8 let updated = response.get()
9 discard updated
10 echo "Question config updated"
11else:
12 echo "Update did not return a result"
13

Crear resultado de pregunta Internal Link

Parámetros

Name Type Required Description
tenantId string
createQuestionResultBody CreateQuestionResultBody No

Respuesta

Devuelve: Option[CreateQuestionResult_200_response]

Ejemplo

Ejemplo de createQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.createQuestionResult(tenantId = "my-tenant-123",
3 createQuestionResultBody = CreateQuestionResultBody(questionId: "q-456",
4 userId: "user-789",
5 correct: true,
6 score: 9,
7 answers: @["B", "D"]))
8if response.isSome:
9 let result = response.get()
10 echo result
11

Eliminar resultado de pregunta Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-result-789")
3if response.isSome:
4 let result = response.get()
5 echo "Deleted question result:", result
6else:
7 echo "No result returned, HTTP status:", $httpResponse.status
8

Obtener resultado de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetQuestionResult_200_response]

Ejemplo

Ejemplo 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 "Received question result:"
6 echo result
7else:
8 echo "No question result returned"
9

Obtener resultados de preguntas Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
urlId string
userId string No
startDate string No
questionId string No
questionIds string No
skip float64 No

Respuesta

Devuelve: Option[GetQuestionResults_200_response]

Ejemplo

Ejemplo de getQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 urlId = "news/politics/election-2024",
5 userId = "user-9876",
6 startDate = "2024-01-01T00:00:00Z",
7 questionId = "q-user-satisfaction",
8 questionIds = "q-user-satisfaction,q-engagement",
9 skip = 0.0
10)
11
12if response.isSome:
13 let results = response.get()
14 echo "Got question results: ", $results
15else:
16 echo "No results, HTTP status: ", httpResponse.status
17

Actualizar resultado de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateQuestionResultBody UpdateQuestionResultBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody(
6 result = "approved",
7 reviewerId = "moderator-42",
8 notes = "Valid question, no action required",
9 isSpam = false
10 )
11)
12if response.isSome:
13 let flagResponse = response.get()
14 discard flagResponse
15

Agregar resultados de preguntas Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
questionId string No
questionIds seq[string] No
urlId string
timeBucket AggregateTimeBucket No
startDate string No
forceRecalculate bool No

Respuesta

Devuelve: Option[AggregateQuestionResults_200_response]

Ejemplo

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

Agregar resultados de preguntas en bloque Internal Link

Parámetros

Name Type Required Description
tenantId string
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest No
forceRecalculate bool No

Response

Devuelve: Option[BulkAggregateQuestionResults_200_response]

Ejemplo

Ejemplo de bulkAggregateQuestionResults
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest()
3let (response, httpResponse) = client.bulkAggregateQuestionResults(tenantId = "my-tenant-123", bulkAggregateQuestionResultsRequest = request, forceRecalculate = false)
4if response.isSome:
5 let aggregated = response.get()
6 echo aggregated
7

Combinar comentarios con resultados de preguntas Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
questionId string No
questionIds seq[string] No
urlId string
startDate string No
forceRecalculate bool No
minValue float64 No
maxValue float64 No
limit float64 No

Respuesta

Devuelve: Option[CombineCommentsWithQuestionResults_200_response]

Ejemplo

Ejemplo de combineCommentsWithQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "q-9876",
5 questionIds = @["q-9876", "q-9877"],
6 urlId = "news/article-title",
7 startDate = "2025-01-01T00:00:00Z",
8 forceRecalculate = false,
9 minValue = 1.0,
10 maxValue = 5.0,
11 limit = 100.0
12)
13
14if response.isSome:
15 let combined = response.get()
16 discard combined
17

Agregar usuario SSO Internal Link

Parámetros

Name Type Required Description
tenantId string
createAPISSOUserData CreateAPISSOUserData No

Respuesta

Devuelve: Option[AddSSOUserAPIResponse]

Ejemplo

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

Eliminar usuario SSO Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
deleteComments bool No
commentDeleteMode string No

Respuesta

Devuelve: Option[DeleteSSOUserAPIResponse]

Ejemplo

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

Obtener usuario SSO por correo electrónico Internal Link

Parámetros

Name Type Required Description
tenantId string
email string No

Respuesta

Devuelve: Option[GetSSOUserByEmailAPIResponse]

Ejemplo

Ejemplo 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

Obtener usuario SSO por ID Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetSSOUserByIdAPIResponse]

Ejemplo

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

Obtener usuarios SSO Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip int No

Respuesta

Devuelve: Option[GetSSOUsers_200_response]

Ejemplo

Ejemplo de 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 "Fetched SSO users:"
6 echo ssoUsers
7else:
8 echo "No SSO users returned, HTTP status: ", httpResponse.statusCode
9

Actualizar parcialmente usuario SSO Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateAPISSOUserData UpdateAPISSOUserData No
updateComments bool No

Respuesta

Devuelve: Option[PatchSSOUserAPIResponse]

Ejemplo

Ejemplo 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

Reemplazar usuario SSO Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateAPISSOUserData UpdateAPISSOUserData No
updateComments bool No

Respuesta

Devuelve: Option[PutSSOUserAPIResponse]

Ejemplo

Ejemplo 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

Crear suscripción Internal Link

Parámetros

Name Type Required Description
tenantId string
createAPIUserSubscriptionData CreateAPIUserSubscriptionData No

Respuesta

Devuelve: Option[CreateSubscriptionAPIResponse]

Ejemplo

Ejemplo 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

Eliminar suscripción Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
userId string No

Respuesta

Devuelve: Option[DeleteSubscriptionAPIResponse]

Ejemplo

Ejemplo 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

Obtener suscripciones Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
userId string No

Respuesta

Devuelve: Option[GetSubscriptionsAPIResponse]

Ejemplo

Ejemplo 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

Obtener usos diarios del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
yearNumber float64 No
monthNumber float64 No
dayNumber float64 No
skip float64 No

Respuesta

Devuelve: Option[GetTenantDailyUsages_200_response]

Ejemplo

Ejemplo de getTenantDailyUsages
Copy Copy
1
2let (response, httpResponse) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 yearNumber = 2025.0,
5 monthNumber = 6.0,
6 dayNumber = 15.0,
7 skip = 0.0
8)
9
10if response.isSome:
11 let usages = response.get()
12 echo usages
13else:
14 echo "No daily usages returned"
15

Crear paquete del tenant Internal Link

Parámetros

Name Type Required Description
tenantId string
createTenantPackageBody CreateTenantPackageBody No

Respuesta

Devuelve: Option[CreateTenantPackage_200_response]

Ejemplo

Ejemplo de createTenantPackage
Copy Copy
1
2let packageBody = CreateTenantPackageBody(
3 packageName = "premium-comments",
4 description = "Premium moderation package for news site",
5 planId = "plan-pro-2024",
6 seats = 100,
7 enabled = true,
8 features = @["moderation", "analytics", "sentiment"]
9)
10
11let (response, httpResponse) = client.createTenantPackage(tenantId = "my-tenant-123", createTenantPackageBody = packageBody)
12
13if response.isSome:
14 let pkg = response.get()
15 echo "Created package ID: ", pkg.packageId
16 echo "Package name: ", pkg.packageName
17else:
18 echo "Failed to create package, HTTP status: ", httpResponse.status.code
19

Eliminar paquete del tenant Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-789")
3if response.isSome:
4 let deleted = response.get()
5 echo "Successfully deleted tenant package"
6

Obtener paquete del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetTenantPackage_200_response]

Ejemplo

Ejemplo de getTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium-001")
3if response.isSome:
4 let pkg = response.get()
5 echo pkg
6else:
7 echo "No package found for tenant"
8

Obtener paquetes del tenant Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip float64 No

Respuesta

Devuelve: Option[GetTenantPackages_200_response]

Ejemplo

Ejemplo 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 packages for tenant:", " my-tenant-123"
6 echo packages
7else:
8 echo "No packages found, status:", httpResponse.status
9

Reemplazar paquete del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
replaceTenantPackageBody ReplaceTenantPackageBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de replaceTenantPackage
Copy Copy
1
2let replaceBody = ReplaceTenantPackageBody(
3 packageName = "Community Pro",
4 seats = 500,
5 enableModeration = true,
6 features = @["moderation", "analytics", "single-sign-on"]
7)
8
9let (response, httpResponse) = client.replaceTenantPackage(
10 tenantId = "my-tenant-123",
11 id = "community-pro",
12 replaceTenantPackageBody = replaceBody
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo "Package replaced for tenant: ", "my-tenant-123"
18 discard flagResp
19

Actualizar paquete del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateTenantPackageBody UpdateTenantPackageBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateTenantPackage
Copy Copy
1
2let (response, httpResponse) = client.updateTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium", updateTenantPackageBody = UpdateTenantPackageBody())
3if response.isSome:
4 let updated = response.get()
5 echo "Updated package received:", updated
6else:
7 echo "Update failed, HTTP status: ", httpResponse.status
8

Crear usuario del tenant Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
createTenantUserBody CreateTenantUserBody No

Respuesta

Devuelve: Option[CreateTenantUser_200_response]

Ejemplo

Ejemplo de createTenantUser
Copy Copy
1
2let createBody = CreateTenantUserBody(
3 email = "jane.doe@acmepub.com",
4 displayName = "Jane Doe",
5 password = "S3cur3P@ssw0rd",
6 roles = @["moderator", "editor"],
7 disabled = false
8)
9let (response, httpResponse) = client.createTenantUser(tenantId = "my-tenant-123", createTenantUserBody = createBody)
10if response.isSome:
11 let createdUser = response.get()
12 echo createdUser
13

Eliminar usuario del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
deleteComments string No
commentDeleteMode string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteTenantUser
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(tenantId = "my-tenant-123", id = "user-456", deleteComments = "", commentDeleteMode = "")
3if response.isSome:
4 let flagResp = response.get()
5 echo flagResp
6

Obtener usuario del tenant Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetTenantUser_200_response]

Ejemplo

Ejemplo de getTenantUser
Copy Copy
1
2let (response, httpResponse) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-456")
3if response.isSome:
4 let tenantUser = response.get()
5 discard tenantUser
6else:
7 discard httpResponse
8

Obtener usuarios del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
skip float64 No

Respuesta

Devuelve: Option[GetTenantUsers_200_response]

Ejemplo

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

Reemplazar usuario del tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
replaceTenantUserBody ReplaceTenantUserBody No
updateComments string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de replaceTenantUser
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody(name: "Jane Doe", email: "jane.doe@example.com", roles: @["moderator", "contributor"], banned: false)
3let (response, httpResponse) = client.replaceTenantUser(tenantId = "my-tenant-123", id = "user-789", replaceTenantUserBody = replaceBody, updateComments = "true")
4if response.isSome:
5 let updated = response.get()
6 echo updated
7else:
8 echo "No response returned"
9


Parameters

Name Type Required Description
tenantId string
id string No
redirectURL string No

Response

Devuelve: Option[FlagCommentPublic_200_response]

Example

Ejemplo de sendLoginLink
Copy Copy
1
2let (response, httpResponse) = client.sendLoginLink(tenantId = "fastcomments-tenant-42", id = "user-9876", redirectURL = "https://news.example.com/articles/2026/fastcomments-login")
3if response.isSome:
4 let loginResp = response.get()
5 echo "Login link sent successfully"
6else:
7 echo "Failed to send login link"
8

Actualizar usuario del tenant Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateTenantUserBody UpdateTenantUserBody No
updateComments string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateTenantUser
Copy Copy
1
2var body: UpdateTenantUserBody
3body.email = "jane.doe@example.com"
4body.displayName = "Jane Doe"
5body.roles = @["moderator", "editor"]
6body.isActive = true
7
8let (response, httpResponse) = client.updateTenantUser(
9 tenantId = "my-tenant-123",
10 id = "user-789",
11 updateTenantUserBody = body,
12 updateComments = "Promoted user to moderator and editor roles"
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo flagResp
18else:
19 echo "Update failed, status: ", httpResponse.status
20

Crear tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createTenantBody CreateTenantBody No

Respuesta

Devuelve: Option[CreateTenant_200_response]

Ejemplo

Ejemplo de createTenant
Copy Copy
1
2let (response, httpResponse) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody(
3 name: "My Tenant 123",
4 domain: "mytenant.example.com",
5 plan: "pro",
6 isActive: true,
7 allowedOrigins: @["https://www.example.com", "https://admin.example.com"]
8))
9if response.isSome:
10 let tenantInfo = response.get()
11 discard tenantInfo
12

Eliminar tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
sure string No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de deleteTenant
Copy Copy
1
2let (response, httpResponse) = client.deleteTenant(tenantId = "my-tenant-123", id = "", sure = "")
3
4if response.isSome:
5 let flagResp = response.get()
6 echo "Tenant deletion response received for tenant: ", "my-tenant-123"
7 discard flagResp
8else:
9 echo "No response body returned for tenant deletion"
10

Obtener tenant Internal Link


Parámetros

Name Type Required Description
tenantId string
id string No

Respuesta

Devuelve: Option[GetTenant_200_response]

Ejemplo

Ejemplo de getTenant
Copy Copy
1
2let (response, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "")
3if response.isSome:
4 let tenant = response.get()
5 echo "Tenant retrieved"
6 discard tenant
7else:
8 echo "No tenant found"
9 echo "HTTP status:", httpResponse.status
10

Obtener tenants Internal Link

Parámetros

Name Type Requerido Description
tenantId string
meta string No
skip float64 No

Respuesta

Devuelve: Option[GetTenants_200_response]

Ejemplo

Ejemplo de getTenants
Copy Copy
1
2let (response, httpResponse) = client.getTenants(tenantId = "my-tenant-123", meta = "include=details", skip = 0.0)
3if response.isSome:
4 let tenants = response.get()
5 echo "Received tenants: ", repr(tenants)
6else:
7 echo "Failed to retrieve tenants"
8

Actualizar tenant Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
updateTenantBody UpdateTenantBody No

Respuesta

Devuelve: Option[FlagCommentPublic_200_response]

Ejemplo

Ejemplo de updateTenant
Copy Copy
1
2let (response, httpResponse) = client.updateTenant(
3 tenantId = "my-tenant-123",
4 id = "tenant-456",
5 updateTenantBody = UpdateTenantBody()
6)
7if response.isSome:
8 let flagResponse = response.get()
9 echo flagResponse
10else:
11 echo "No body returned; HTTP status: ", httpResponse.status
12

Subir imagen Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
file string No
sizePreset SizePreset No
urlId string

Respuesta

Devuelve: Option[UploadImageResponse]

Ejemplo

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

Obtener progreso de insignia de usuario por ID Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetUserBadgeProgressById_200_response]

Ejemplo

Ejemplo de getUserBadgeProgressById
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "editor-badge-42")
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress received:"
6 echo badgeProgress
7else:
8 echo "No badge progress found for tenant 'my-tenant-123' and id 'editor-badge-42'"
9 echo httpResponse
10

Obtener progreso de insignia de usuario por ID de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
userId string No

Respuesta

Devuelve: Option[GetUserBadgeProgressById_200_response]

Ejemplo

Ejemplo de getUserBadgeProgressByUserId
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-456")
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress retrieved for user-456"
6else:
7 echo "No badge progress found, HTTP status: ", $httpResponse.status
8

Obtener lista de progreso de insignias de usuario Internal Link

Parámetros

Name Type Required Description
tenantId string
userId string No
limit float64 No
skip float64 No

Respuesta

Devuelve: Option[GetUserBadgeProgressList_200_response]

Ejemplo

Ejemplo de getUserBadgeProgressList
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", userId = "user-9823", limit = 25.0, skip = 0.0)
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress received:", badgeProgress
6else:
7 echo "No badge progress. HTTP response:", httpResponse.status
8

Crear insignia de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
createUserBadgeParams CreateUserBadgeParams No

Respuesta

Devuelve: Option[CreateUserBadge_200_response]

Ejemplo

Ejemplo de createUserBadge
Copy Copy
1
2let (response, httpResponse) = client.createUserBadge(tenantId = "my-tenant-123",
3 createUserBadgeParams = CreateUserBadgeParams(userId = "user-987", badgeId = "top-commenter"))
4if response.isSome:
5 let createdBadge = response.get()
6 echo "Created badge for user: ", createdBadge.userId
7else:
8 echo "Failed to create badge, status: ", $httpResponse.status
9

Eliminar insignia de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[UpdateUserBadge_200_response]

Ejemplo

deleteUserBadge Ejemplo
Copy Copy
1
2let (response, httpResponse) = client.deleteUserBadge(tenantId = "my-tenant-123", id = "badge-456")
3if response.isSome:
4 let updated = response.get()
5 discard updated
6

Obtener insignia de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetUserBadge_200_response]

Ejemplo

Ejemplo de getUserBadge
Copy Copy
1
2let (response, httpResponse) = client.getUserBadge(tenantId = "my-tenant-123", id = "")
3
4if response.isSome:
5 let badge = response.get()
6 discard badge
7

Obtener insignias de usuario Internal Link

Parámetros

Name Type Required Description
tenantId string
userId string No
badgeId string No
displayedOnComments bool No
limit float64 No
skip float64 No

Respuesta

Devuelve: Option[GetUserBadges_200_response]

Ejemplo

Ejemplo de getUserBadges
Copy Copy
1
2let (response, httpResponse) = client.getUserBadges(
3 tenantId = "my-tenant-123",
4 userId = "user-789",
5 badgeId = "top-commenter",
6 displayedOnComments = true,
7 limit = 50.0,
8 skip = 0.0
9)
10
11if response.isSome:
12 let badges = response.get()
13 echo "Retrieved badges: ", $badges
14

Actualizar insignia de usuario Internal Link

Parámetros

Name Type Required Description
tenantId string
id string No
updateUserBadgeParams UpdateUserBadgeParams No

Respuesta

Devuelve: Option[UpdateUserBadge_200_response]

Ejemplo

Ejemplo de updateUserBadge
Copy Copy
1
2let updateParams = UpdateUserBadgeParams(
3 name = "Top Contributor",
4 description = "Awarded for consistent high-quality comments",
5 active = true,
6 tags = @["community", "milestone"]
7)
8
9let (response, httpResponse) = client.updateUserBadge(tenantId = "my-tenant-123", id = "badge-456", updateUserBadgeParams = updateParams)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Badge updated successfully"
14else:
15 echo "Failed to update badge, HTTP status: ", $httpResponse.status
16

Obtener contador de notificaciones de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
sso string No

Respuesta

Devuelve: Option[GetUserNotificationCount_200_response]

Ejemplo

Ejemplo de getUserNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if response.isSome:
4 let notificationData = response.get()
5 echo "Received notification data: ", $notificationData
6else:
7 echo "No notification data returned. HTTP response: ", $httpResponse.status
8

Obtener notificaciones de usuario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
pageSize int No
afterId string No
includeContext bool No
afterCreatedAt int64 No
unreadOnly bool No
dmOnly bool No
noDm bool No
includeTranslations bool No
sso string No

Respuesta

Devuelve: Option[GetUserNotifications_200_response]

Ejemplo

Ejemplo de getUserNotifications
Copy Copy
1
2let (response, httpResponse) = client.getUserNotifications(
3 tenantId = "my-tenant-123",
4 pageSize = 50,
5 afterId = "notif_9a1b2c3d",
6 includeContext = true,
7 afterCreatedAt = int64(1699999999000),
8 unreadOnly = false,
9 dmOnly = false,
10 noDm = false,
11 includeTranslations = false,
12 sso = ""
13)
14if response.isSome:
15 let notifications = response.get()
16 discard notifications
17else:
18 discard httpResponse
19

Restablecer contador de notificaciones de usuario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
sso string No

Respuesta

Devuelve: Option[ResetUserNotifications_200_response]

Ejemplo

Ejemplo de resetUserNotificationCount
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "sso-jwt-9a8b7c6d")
3if response.isSome:
4 let resetResult = response.get()
5 echo resetResult
6else:
7 echo "Reset failed, status: ", httpResponse.status
8

Restablecer notificaciones de usuario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
afterId string No
afterCreatedAt int64 No
unreadOnly bool No
dmOnly bool No
noDm bool No
sso string No

Respuesta

Devuelve: Option[ResetUserNotifications_200_response]

Ejemplo

Ejemplo de resetUserNotifications
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 afterCreatedAt = int64(0),
6 unreadOnly = false,
7 dmOnly = false,
8 noDm = false,
9 sso = ""
10)
11
12if response.isSome:
13 let result = response.get()
14

Actualizar estado de suscripción a notificaciones de comentarios del usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
notificationId string No
optedInOrOut string No
commentId string
sso string No

Respuesta

Devuelve: Option[UpdateUserNotificationStatus_200_response]

Ejemplo

Ejemplo de updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 optedInOrOut = "opted_in",
6 commentId = "cmt-789",
7 sso = "sso-token-abc"
8)
9if response.isSome:
10 let updatedStatus = response.get()
11 discard updatedStatus
12else:
13 discard httpResponse
14

Actualizar estado de suscripción a notificaciones de página del usuario Internal Link

Parámetros

Name Type Requerido Descripción
tenantId string
urlId string
url string No
pageTitle string No
subscribedOrUnsubscribed string No
sso string No

Respuesta

Devuelve: Option[UpdateUserNotificationStatus_200_response]

Ejemplo

Ejemplo de updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-2025-11-22",
5 url = "https://example.com/news/article-2025-11-22",
6 pageTitle = "Breaking News: Market Update",
7 subscribedOrUnsubscribed = "subscribed",
8 sso = "sso-token-abc123"
9)
10
11if response.isSome:
12 let result = response.get()
13 discard result
14

Actualizar estado de notificación de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
notificationId string No
newStatus string No
sso string No

Respuesta

Devuelve: Option[UpdateUserNotificationStatus_200_response]

Ejemplo

Ejemplo 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-abc-789"
7)
8if response.isSome:
9 let updateResp = response.get()
10 discard updateResp
11

Obtener estados de presencia de usuarios Internal Link

Parameters

Name Type Required Description
tenantId string
urlIdWS string No
userIds string No

Respuesta

Devuelve: Option[GetUserPresenceStatuses_200_response]

Ejemplo

Ejemplo de getUserPresenceStatuses
Copy Copy
1
2let (response, httpResponse) = client.getUserPresenceStatuses(
3 tenantId = "my-tenant-123",
4 urlIdWS = "news/2025/technology/ai-ethics",
5 userIds = "user-789,user-456"
6)
7if response.isSome:
8 let presence = response.get()
9 echo "Presence received: ", presence
10else:
11 echo "No presence information returned, HTTP status: ", httpResponse.status.code
12

Buscar usuarios Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
urlId string
usernameStartsWith string No
mentionGroupIds seq[string] No
sso string No

Respuesta

Devuelve: Option[SearchUsers_200_response]

Ejemplo

Ejemplo de searchUsers
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 usernameStartsWith = "jo",
6 mentionGroupIds = @["editors", "sports-team"],
7 sso = "sso-abc-456"
8)
9
10if response.isSome:
11 let users = response.get()
12 echo "Users found: ", users
13else:
14 echo "No users found; HTTP status: ", httpResponse.status
15

Obtener usuario Internal Link

Parámetros

Name Tipo Requerido Descripción
tenantId string
id string No

Respuesta

Devuelve: Option[GetUser_200_response]

Ejemplo

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

Crear voto Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenantId string
commentId string
direction string No
userId string No
anonUserId string No

Respuesta

Devuelve: Option[VoteComment_200_response]

Ejemplo

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

Eliminar voto Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenantId string
id string No
editKey string No

Respuesta

Devuelve: Option[DeleteCommentVote_200_response]

Ejemplo

Ejemplo de deleteVote
Copy Copy
1
2let (response, httpResponse) = client.deleteVote(tenantId = "my-tenant-123", id = "", editKey = "")
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6

Obtener votos Internal Link

Parámetros

Name Type Required Description
tenantId string
urlId string

Respuesta

Devuelve: Option[GetVotes_200_response]

Ejemplo

Ejemplo de getVotes
Copy Copy
1
2let (response, httpResponse) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/2026/major-update")
3if response.isSome:
4 let votes = response.get()
5 discard votes
6else:
7 discard httpResponse
8

Obtener votos del usuario Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenantId string
urlId string
userId string No
anonUserId string No

Respuesta

Devuelve: Option[GetVotesForUser_200_response]

Ejemplo

Ejemplo de getVotesForUser
Copy Copy
1
2let (response, httpResponse) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/economy-update-2026",
5 userId = "user-789",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let votes = response.get()
11 discard votes
12

¿Necesitas ayuda?

Si encuentras algún problema o tienes preguntas sobre el Nim SDK, por favor:

Contribuciones

¡Las contribuciones son bienvenidas! Por favor visita el repositorio de GitHub para las directrices de contribución.