FastComments.com

FastComments Nim SDK


Ovo je zvanični Nim SDK za FastComments.

Zvanični Nim SDK za FastComments API

Repozitorijum

Pogledajte na GitHub


Zahtevi Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

Instalacija Internal Link

Korišćenje Nimble

nimble install fastcomments

Izgradnja iz izvornog koda

nimble build

Sadržaj biblioteke

Ova biblioteka sadrži generisan API klijent i SSO pomoćne alate koji olakšavaju rad sa API-jem.

Javni i zaštićeni API-ji

Za API klijenta postoje tri API modula, api_default, api_public, i api_moderation. api_default sadrži metode koje zahtevaju vaš API ključ, a api_public sadrži API pozive koji se mogu izvršiti direktno iz pregledača/mobilnog uređaja/itd. bez autentifikacije. Modul api_moderation sadrži metode za nadzornu ploču moderatora.

Metode u api_moderation obuhvataju listanje, prebrojavanje, pretraživanje i izvoz komentara i njihovih zapisa; moderacione radnje kao što su uklanjanje/obnavljanje komentara, označavanje, podešavanje statusa za reviziju/spam/odobrenje, podešavanje glasova i ponovno otvaranje/zatvaranje niti; zabrane (zabrana korisnika u vezi sa komentarom, poništavanje zabrane, pregledi pre zabrane, status i podešavanja zabrane, i brojevi zabranjenih korisnika); i značke i poverenje (dodeljivanje/uklanjanje značke, listanje manuelnih znački, dobijanje/postavljanje korisnikovog faktora poverenja, i dohvat korisnikovog internog profila). Svaka metoda api_moderation prihvata parametar sso tako da je poziv autentifikovan kao SSO moderator.

Brzi početak Internal Link

Korišćenje autentifikovanih API-ja (DefaultAPI)

Važno: Autentifikovani endpointi zahtevaju da vaš API ključ bude postavljen kao zaglavlje 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"

# Izvršite autentifikovane API pozive
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"

Korišćenje javnih API-ja (PublicAPI)

Javni endpointi ne zahtevaju autentifikaciju:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Izvršite javne API pozive
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"

Korišćenje API-ja za moderaciju (ModerationAPI)

Moderacijski endpointi pokreću kontrolnu tablu moderatora i autentifikuju se pomoću SSO tokena za moderatora koji deluje:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# Prikaži komentare na kontrolnoj tabli moderatora
let (response, httpResponse) = getApiComments(
  httpClient = client,
  page = 0,
  count = 30,
  textSearch = "",
  byIPFromComment = "",
  filters = "",
  searchFilters = "",
  sorts = "",
  demo = false,
  sso = "your-sso-token"
)

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

Uobičajeni problemi

  1. 401 greška autentifikacije: Uverite se da ste postavili zaglavlje x-api-key na vašem HttpClient pre nego što izvršite zahteve DefaultAPI-ja: client.headers["x-api-key"] = "your-api-key"
  2. Pogrešna API klasa: Koristite api_default za autentifikovane zahteve na serverskoj strani, api_public za zahteve sa klijentske strane/javne zahteve, i api_moderation za zahteve kontrolne table moderatora.

Slanje API poziva Internal Link


Sve API metode u ovom SDK vraćaju tuple (Option[ResponseType], Response). Prvi element sadrži parsirani odgovor ako je zahtev uspešan, a drugi element je sirovi HTTP odgovor.

Primer: Dohvatanje komentara

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"

Napomene Internal Link

Broadcast ID-jevi

Videćete da treba da prosledite broadcastId u nekim API pozivima. Kada primite događaje, dobićete ovaj ID nazad, pa ćete znati da ignorišete događaj ako planirate optimistično primeniti promene na klijentu (što ćete verovatno želeti, jer to pruža najbolje iskustvo). Prosledite ovde UUID. ID treba biti dovoljno jedinstven da se ne pojavi dva puta u jednoj sesiji pregledača.

SSO (Jedinstveno prijavljivanje)

Za primere SSO-a, pogledajte ispod.

Korišćenje SSO Internal Link

Jednostavan SSO

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

Siguran SSO

import fastcomments/sso

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

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

echo "Secure SSO Token: ", token

aggregate Internal Link

Agregira dokumente grupišući ih (ako je groupBy naveden) i primenjujući više operacija. Podržane su različite operacije (npr. sum, countDistinct, avg, itd.).

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
aggregationRequestAggregationRequestNe
parentTenantIdstringNe
includeStatsboolNe

Odgovor

Vraća: Option[AggregateResponse]

Primer

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

getAuditLogs Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
limitfloat64Ne
skipfloat64Ne
orderSORTDIRNe
afterfloat64Ne
beforefloat64Ne

Odgovor

Vraća: Option[GetAuditLogsResponse]

Primer

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

logoutPublic Internal Link

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

blockFromCommentPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
publicBlockFromCommentParamsPublicBlockFromCommentParamsNe
ssostringNe

Odgovor

Vraća: Option[BlockSuccess]

Primer

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

unBlockCommentPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
publicBlockFromCommentParamsPublicBlockFromCommentParamsNe
ssostringNe

Odgovor

Vraća: Option[UnblockSuccess]

Primer

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

checkedCommentsForBlocked Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdsstringNe
ssostringNe

Odgovor

Vraća: Option[CheckBlockedCommentsResponse]

Primer

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

blockUserFromComment Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
blockFromCommentParamsBlockFromCommentParamsNe
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[BlockSuccess]

Primer

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

createCommentPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
broadcastIdstringNe
commentDataCommentDataNe
sessionIdstringNe
ssostringNe

Odgovor

Vraća: Option[SaveCommentsResponseWithPresence]

Primer

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

deleteComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringNe
contextUserIdstringNe
isLiveboolNe

Odgovor

Vraća: Option[DeleteCommentResult]

Primer

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

deleteCommentPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
editKeystringNe
ssostringNe

Response

Vraća: Option[PublicAPIDeleteCommentResponse]

Primer

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

deleteCommentVote Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
commentIdstringDa
voteIdstringNe
urlIdstringDa
broadcastIdstringNe
editKeystringNe
ssostringNe

Odgovor

Vraća: Option[VoteDeleteResponse]

Primer

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

flagComment Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[FlagCommentResponse]

Primer

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

getComment Internal Link


Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIGetCommentResponse]

Primer

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

getComments Internal Link

Parametri

NameTipObaveznoOpis
tenantIdstringDa
pageintNe
limitintNe
skipintNe
asTreeboolNe
skipChildrenintNe
limitChildrenintNe
maxTreeDepthintNe
urlIdstringDa
userIdstringNe
anonUserIdstringNe
contextUserIdstringNe
hashTagstringNe
parentIdstringNe
directionSortDirectionsNe
fromDateint64Ne
toDateint64Ne

Odgovor

Vraća: Option[APIGetCommentsResponse]

Primer

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

getCommentsPublic Internal Link


zahtev tenantId urlId

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
pageintNe
directionSortDirectionsNe
ssostringNe
skipintNe
skipChildrenintNe
limitintNe
limitChildrenintNe
countChildrenboolNe
fetchPageForCommentIdstringNe
includeConfigboolNe
countAllboolNe
includei10nboolNe
localestringNe
modulesstringNe
isCrawlerboolNe
includeNotificationCountboolNe
asTreeboolNe
maxTreeDepthintNe
useFullTranslationIdsboolNe
parentIdstringNe
searchTextstringNe
hashTagsseq[string]Ne
userIdstringNe
customConfigStrstringNe
afterCommentIdstringNe
beforeCommentIdstringNe

Odgovor

Vraća: Option[GetCommentsResponseWithPresencePublicComment]

Primer

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

getCommentText Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
editKeystringNe
ssostringNe

Odgovor

Vraća: Option[PublicAPIGetCommentTextResponse]

Primer

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

getCommentVoteUserNames Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
dirintNe
ssostringNe

Odgovor

Vraća: Option[GetCommentVoteUserNamesSuccessResponse]

Primer

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

lockComment Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

pinComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[ChangeCommentPinStatusResponse]

Primer

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

saveComment Internal Link

Parametri

NameTypeObaveznoOpis
tenantIdstringDa
createCommentParamsCreateCommentParamsNe
isLiveboolNe
doSpamCheckboolNe
sendEmailsboolNe
populateNotificationsboolNe

Odgovor

Vraća: Option[APISaveCommentResponse]

Primer

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

saveCommentsBulk Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createCommentParamsseq[CreateCommentParams]Ne
isLiveboolNe
doSpamCheckboolNe
sendEmailsboolNe
populateNotificationsbool): (Option[seq[SaveCommentsBulkResponse]]Ne
idstringNe
fromNamestringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

setCommentText Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
commentTextUpdateRequestCommentTextUpdateRequestNe
editKeystringNe
ssostringNe

Odgovor

Vraća: Option[PublicAPISetCommentTextResponse]

Primer

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

unBlockUserFromComment Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
unBlockFromCommentParamsUnBlockFromCommentParamsNe
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[UnblockSuccess]

Primer

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

unFlagComment Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[FlagCommentResponse]

Primer

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

unLockComment Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

unPinComment Internal Link

Parametri

NameTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[ChangeCommentPinStatusResponse]

Primer

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

updateComment Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updatableCommentParamsUpdatableCommentParamsNe
contextUserIdstringNe
doSpamCheckboolNe
isLiveboolNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

voteComment Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
urlIdstringDa
broadcastIdstringNe
voteBodyParamsVoteBodyParamsNe
sessionIdstringNe
ssostringNe

Odgovor

Vraća: Option[VoteResponse]

Primer

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

getCommentsForUser Internal Link

Parametri

NameTypeRequiredDescription
userIdstringNe
directionSortDirectionsNe
repliesToUserIdstringNe
pagefloat64Ne
includei10nboolNe
localestringNe
isCrawlerboolNe

Odgovor

Vraća: Option[GetCommentsForUserResponse]

Primer

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

addDomainConfig Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
addDomainConfigParamsAddDomainConfigParamsNe

Odgovor

Vraća: Option[AddDomainConfigResponse]

Primer

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

deleteDomainConfig Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
domainstringNe

Odgovor

Vraća: Option[DeleteDomainConfigResponse]

Primer

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

getDomainConfig Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
domainstringNe

Odgovor

Vraća: Option[GetDomainConfigResponse]

Primer

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

getDomainConfigs Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa

Odgovor

Vraća: Option[GetDomainConfigsResponse]

Primer

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

patchDomainConfig Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
domainToUpdatestringNe
patchDomainConfigParamsPatchDomainConfigParamsNe

Odgovor

Vraća: Option[PatchDomainConfigResponse]

Primer

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

putDomainConfig Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
domainToUpdatestringNe
updateDomainConfigParamsUpdateDomainConfigParamsNe

Odgovor

Vraća: Option[PutDomainConfigResponse]

Primer

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

createEmailTemplate Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
createEmailTemplateBodyCreateEmailTemplateBodyNe

Odgovor

Vraća: Option[CreateEmailTemplateResponse]

Primer

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

deleteEmailTemplate Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

deleteEmailTemplateRenderError Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
errorIdstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getEmailTemplate Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetEmailTemplateResponse]

Primer

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

getEmailTemplateDefinitions Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa

Odgovor

Vraća: Option[GetEmailTemplateDefinitionsResponse]

Primer

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

getEmailTemplateRenderErrors Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
skipfloat64Ne

Odgovor

Vraća: Option[GetEmailTemplateRenderErrorsResponse]

Primer

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

getEmailTemplates Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
skipfloat64Ne

Odgovor

Vraća: Option[GetEmailTemplatesResponse]

Primer

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

renderEmailTemplate Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
renderEmailTemplateBodyRenderEmailTemplateBodyNe
localestringNe

Odgovor

Vraća: Option[RenderEmailTemplateResponse]

Primer

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

updateEmailTemplate Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateEmailTemplateBodyUpdateEmailTemplateBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getEventLog Internal Link

req tenantId urlId userIdWS

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
userIdWSstringNe
startTimeint64Ne
endTimeint64Ne

Odgovor

Vraća: Option[GetEventLogResponse]

Primer

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

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
userIdWSstringNe
startTimeint64Ne
endTimeint64Ne

Odgovor

Vraća: Option[GetEventLogResponse]

Primer

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

createFeedPost Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
createFeedPostParamsCreateFeedPostParamsNe
broadcastIdstringNe
isLiveboolNe
doSpamCheckboolNe
skipDupCheckboolNe

Odgovor

Vraća: Option[CreateFeedPostsResponse]

Primer

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

createFeedPostPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createFeedPostParamsCreateFeedPostParamsNe
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[CreateFeedPostResponse]

Primer

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

deleteFeedPostPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
postIdstringNe
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[DeleteFeedPostPublicResponse]

Primer

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

getFeedPosts Internal Link

req tenantId afterId

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
afterIdstringNe
limitintNe
tagsseq[string]Ne

Odgovor

Vraća: Option[GetFeedPostsResponse]

Primer

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

getFeedPostsPublic Internal Link

req tenantId afterId

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
afterIdstringNe
limitintNe
tagsseq[string]Ne
ssostringNe
isCrawlerboolNe
includeUserInfoboolNe

Odgovor

Vraća: Option[PublicFeedPostsResponse]

Primer

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

getFeedPostsStats Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
postIdsseq[string]Ne
ssostringNe

Odgovor

Vraća: Option[FeedPostsStatsResponse]

Primer

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

getUserReactsPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
postIdsseq[string]Ne
ssostringNe

Odgovor

Vraća: Option[UserReactsResponse]

Primer

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

reactFeedPostPublic Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
postIdstringNe
reactBodyParamsReactBodyParamsNe
isUndoboolNe
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[ReactFeedPostResponse]

Primer

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

updateFeedPost Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
feedPostFeedPostNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

updateFeedPostPublic Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
postIdstringNe
updateFeedPostParamsUpdateFeedPostParamsNe
broadcastIdstringNe
ssostringNe

Response

Vraća: Option[CreateFeedPostResponse]

Primer

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

flagCommentPublic Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
isFlaggedboolNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getGifLarge Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
largeInternalURLSanitizedstringNe

Odgovor

Vraća: Option[GifGetLargeResponse]

Primer

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

getGifsSearch Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
searchstringNe
localestringNe
ratingstringNe
pagefloat64Ne

Odgovor

Vraća: Option[GetGifsSearchResponse]

Primer

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

getGifsTrending Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
localestringNe
ratingstringNe
pagefloat64Ne

Odgovor

Vraća: Option[GetGifsTrendingResponse]

Primer

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

addHashTag Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createHashTagBodyCreateHashTagBodyNe

Odgovor

Vraća: Option[CreateHashTagResponse]

Primer

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

addHashTagsBulk Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNe

Odgovor

Vraća: Option[BulkCreateHashTagsResponse]

Primer

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

deleteHashTag Internal Link

Parametri

NazivTipObaveznoOpis
tagstringNe
tenantIdstringDa
deleteHashTagRequestBodyDeleteHashTagRequestBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getHashTags Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
pagefloat64Ne

Odgovor

Vraća: Option[GetHashTagsResponse]

Primer

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

patchHashTag Internal Link

Parametri

NameTypeRequiredDescription
tagstringNe
tenantIdstringDa
updateHashTagBodyUpdateHashTagBodyNe

Odgovor

Vraća: Option[UpdateHashTagResponse]

Primer

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

deleteModerationVote Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
voteIdstringNe
ssostringNe

Odgovor

Vraća: Option[VoteDeleteResponse]

Primer

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

getApiComments Internal Link

Parametri

NazivTipObaveznoOpis
pagefloat64Ne
countfloat64Ne
textSearchstringNe
byIPFromCommentstringNe
filtersstringNe
searchFiltersstringNe
sortsstringNe
demoboolNe
ssostringNe

Odgovor

Vraća: Option[ModerationAPIGetCommentsResponse]

Primer

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

getApiExportStatus Internal Link

Parametri

NameTypeRequiredDescription
batchJobIdstringNe
ssostringNe

Odgovor

Vraća: Option[ModerationExportStatusResponse]

Primer

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

getApiIds Internal Link

Parametri

NazivTipObaveznoOpis
textSearchstringNe
byIPFromCommentstringNe
filtersstringNe
searchFiltersstringNe
afterIdstringNe
demoboolNe
ssostringNe

Odgovor

Vraća: Option[ModerationAPIGetCommentIdsResponse]

Primer

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

getBanUsersFromComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetBannedUsersFromCommentResponse]

Primer

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

getCommentBanStatus Internal Link


Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetCommentBanStatusResponse]

Primer

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

getCommentChildren Internal Link


Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[ModerationAPIChildCommentsResponse]

Primer

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

getCount Internal Link

Parametri

NazivTypeObaveznoOpis
textSearchstringNe
byIPFromCommentstringNe
filterstringNe
searchFiltersstringNe
demoboolNe
ssostringNe

Odgovor

Vraća: Option[ModerationAPICountCommentsResponse]

Primer

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

getCounts Internal Link

Parametri

NameTypeRequiredDescription
ssostringNe

Odgovor

Vraća: Option[GetBannedUsersCountResponse]

Primer

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

getLogs Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[ModerationAPIGetLogsResponse]

Primer

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

getManualBadges Internal Link

Parametri

NazivTipObaveznoOpis
ssostringNe

Odgovor

Vraća: Option[GetTenantManualBadgesResponse]

Primer

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

getManualBadgesForUser Internal Link

Parametri

NazivTipObaveznoOpis
badgesUserIdstringNe
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetUserManualBadgesResponse]

Primer

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

getModerationComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
includeEmailboolNe
includeIPboolNe
ssostringNe

Odgovor

Vraća: Option[ModerationAPICommentResponse]

Primer

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

getModerationCommentText Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetCommentTextResponse]

Primer

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

getPreBanSummary Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
includeByUserIdAndEmailboolNe
includeByIPboolNe
includeByEmailDomainboolNe
ssostringNe

Odgovor

Vraća: Option[PreBanSummary]

Primer

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

getSearchCommentsSummary Internal Link


Parametri

NazivTipObaveznoOpis
valuestringNe
filtersstringNe
searchFiltersstringNe
ssostringNe

Odgovor

Vraća: Option[ModerationCommentSearchResponse]

Primer

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

getSearchPages Internal Link

Parametri

NazivTipObaveznoOpis
valuestringNe
ssostringNe

Odgovor

Vraća: Option[ModerationPageSearchResponse]

Primer

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

getSearchSites Internal Link


Parametri

ImeTipObaveznoOpis
valuestringNe
ssostringNe

Odgovor

Vraća: Option[ModerationSiteSearchResponse]

Primer

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

getSearchSuggest Internal Link

Parametri

ImeTipObaveznoOpis
textSearchstringNe
ssostringNe

Odgovor

Vraća: Option[ModerationSuggestResponse]

Primer

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

getSearchUsers Internal Link

Parametri

NazivTipObaveznoOpis
valuestringNe
ssostringNe

Odgovor

Vraća: Option[ModerationUserSearchResponse]

Primer

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

getTrustFactor Internal Link


Parametri

ImeTipObaveznoOpis
userIdstringNe
ssostringNe

Odgovor

Vraća: Option[GetUserTrustFactorResponse]

Primer

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

getUserBanPreference Internal Link

Parametri

ImeTipObaveznoOpis
ssostringNe

Odgovor

Vraća: Option[APIModerateGetUserBanPreferencesResponse]

Primer

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

getUserInternalProfile Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetUserInternalProfileResponse]

Primer

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

postAdjustCommentVotes Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
adjustCommentVotesParamsAdjustCommentVotesParamsNe
ssostringNe

Odgovor

Vraća: Option[AdjustVotesResponse]

Primer

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

postApiExport Internal Link

Parametri

NazivTipObaveznoOpis
textSearchstringNe
byIPFromCommentstringNe
filtersstringNe
searchFiltersstringNe
sortsstringNe
ssostringNe

Odgovor

Vraća: Option[ModerationExportResponse]

Primer

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

postBanUserFromComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
banEmailboolNe
banEmailDomainboolNe
banIPboolNe
deleteAllUsersCommentsboolNe
bannedUntilstringNe
isShadowBanboolNe
updateIdstringNe
banReasonstringNe
ssostringNe

Odgovor

Vraća: Option[BanUserFromCommentResult]

Primer

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

postBanUserUndo Internal Link

Parametri

ImeTipObaveznoOpis
banUserUndoParamsBanUserUndoParamsNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postBulkPreBanSummary Internal Link

Parametri

NameTypeRequiredDescription
bulkPreBanParamsBulkPreBanParamsNe
includeByUserIdAndEmailboolNe
includeByIPboolNe
includeByEmailDomainboolNe
ssostringNe

Odgovor

Vraća: Option[BulkPreBanSummary]

Primer

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

postCommentsByIds Internal Link

Parametri

NazivTipObaveznoOpis
commentsByIdsParamsCommentsByIdsParamsNe
ssostringNe

Odgovor

Vraća: Option[ModerationAPIChildCommentsResponse]

Primer

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

postFlagComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postRemoveComment Internal Link

Parametri

NameTypeObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[PostRemoveCommentResponse]

Primer

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

postRestoreDeletedComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postSetCommentApprovalStatus Internal Link

Parametri

NameTypeRequiredDescription
commentIdstringDa
approvedboolNe
ssostringNe

Odgovor

Vraća: Option[SetCommentApprovedResponse]

Primer

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

postSetCommentReviewStatus Internal Link


Parametri

NazivTipObaveznoOpis
commentIdstringDa
reviewedboolNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postSetCommentSpamStatus Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
spamboolNe
permNotSpamboolNe
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postSetCommentText Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
setCommentTextParamsSetCommentTextParamsNe
ssostringNe

Odgovor

Vraća: Option[SetCommentTextResponse]

Primer

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

postUnFlagComment Internal Link

Parametri

NazivTipObaveznoOpis
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

postVote Internal Link

Parametri

ImeTipObaveznoOpis
commentIdstringDa
directionstringNe
ssostringNe

Odgovor

Vraća: Option[VoteResponse]

Primer

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

putAwardBadge Internal Link

Parametri

NameTypeRequiredDescription
badgeIdstringNe
userIdstringNe
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[AwardUserBadgeResponse]

Primer

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

putCloseThread Internal Link

Parametri

NazivTipObaveznoOpis
urlIdstringDa
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

putRemoveBadge Internal Link

Parametri

NameTypeRequiredDescription
badgeIdstringNe
userIdstringNe
commentIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vraća: Option[RemoveUserBadgeResponse]

Primer

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

putReopenThread Internal Link


Parametri

NazivTipObaveznoOpis
urlIdstringDa
ssostringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

setTrustFactor Internal Link

Parametri

ImeTipObaveznoOpis
userIdstringNe
trustFactorstringNe
ssostringNe

Odgovor

Vraća: Option[SetUserTrustFactorResponse]

Primer

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

createModerator Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createModeratorBodyCreateModeratorBodyNe

Odgovor

Vraća: Option[CreateModeratorResponse]

Primer

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

deleteModerator Internal Link

Parametri

NameTypeRequiredOpis
tenantIdstringDa
idstringNe
sendEmailstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getModerator Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetModeratorResponse]

Primer

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

getModerators Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
skipfloat64Ne

Odgovor

Vraća: Option[GetModeratorsResponse]

Primer

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

updateModerator Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateModeratorBodyUpdateModeratorBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

deleteNotificationCount Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getCachedNotificationCount Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetCachedNotificationCountResponse]

Primer

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

getNotificationCount Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
userIdstringNe
urlIdstringDa
fromCommentIdstringNe
viewedboolNe

Odgovor

Vraća: Option[GetNotificationCountResponse]

Primer

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

getNotifications Internal Link

Parametri

NameTipObaveznoOpis
tenantIdstringDa
userIdstringNe
urlIdstringDa
fromCommentIdstringNe
viewedboolNe
skipfloat64Ne

Odgovor

Vraća: Option[GetNotificationsResponse]

Primer

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

updateNotification Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateNotificationBodyUpdateNotificationBodyNe
userIdstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

createV1PageReact Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
titlestringNe

Odgovor

Vraća: Option[CreateV1PageReact]

Primer

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

createV2PageReact Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
idstringNe
titlestringNe

Odgovor

Vraća: Option[CreateV1PageReact]

Primer

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

deleteV1PageReact Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: Option[CreateV1PageReact]

Primer

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

deleteV2PageReact Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
idstringNe

Odgovor

Vraća: Option[CreateV1PageReact]

Primer

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

getV1PageLikes Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: Option[GetV1PageLikes]

Primer

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

getV2PageReacts Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: Option[GetV2PageReacts]

Primer

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

getV2PageReactUsers Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
idstringNe

Odgovor

Vraća: Option[GetV2PageReactUsersResponse]

Primer

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

addPage Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createAPIPageDataCreateAPIPageDataNe

Odgovor

Vraća: Option[AddPageAPIResponse]

Primer

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

deletePage Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[DeletePageAPIResponse]

Primer

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

getOfflineUsers Internal Link

Prethodni komentatori na stranici koji trenutno NISU online. Sortirano po displayName. Koristite ovo nakon što iscrpite /users/online da biste prikazali sekciju "Members". Kursor-paginacija po commenterName: server prolazi delimični {tenantId, urlId, commenterName} indeks od afterName unapred koristeći $gt, bez troška $skip.

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
afterNamestringNe
afterUserIdstringNe

Odgovor

Vraća: Option[PageUsersOfflineResponse]

Primer

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

getOnlineUsers Internal Link

Gledaoci stranice koji su trenutno online: osobe čija je websocket sesija trenutno pretplaćena na stranicu. Vraća anonCount + totalCount (pretplatnici cele sobe, uključujući anonimne gledaoce koje ne nabrajamo).

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
afterNamestringNe
afterUserIdstringNe

Odgovor

Vraća: Option[PageUsersOnlineResponse]

Primer

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

getPageByURLId Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: Option[GetPageByURLIdAPIResponse]

Primer

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

getPages Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa

Odgovor

Vraća: Option[GetPagesAPIResponse]

Primer

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

getPagesPublic Internal Link


Prikazuje listu stranica za tenant. Koristi se u FChat desktop klijentu za popunjavanje liste soba. Zahteva da enableFChat bude postavljeno na true u rešavanom prilagođenom podešavanju za svaku stranicu. Stranice koje zahtevaju SSO filtriraju se u skladu sa pristupom grupa korisnika koji podnosi zahtev.

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
cursorstringNe
limitintNe
qstringNe
sortByPagesSortByNe
hasCommentsboolNe

Odgovor

Vraća: Option[GetPublicPagesResponse]

Primer

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

getUsersInfo Internal Link


Masovne informacije o korisnicima za tenant. Za zadate userIds, vraća prikazne informacije iz User / SSOUser. Koristi se u widgetu za komentare da obogati korisnike koji su se upravo pojavili putem presence event-a. Bez konteksta stranice: privatnost se primenjuje uniformno (privatni profili su maskirani).

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idsstringNe

Odgovor

Vraća: Option[PageUsersInfoResponse]

Primer

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

patchPage Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
updateAPIPageDataUpdateAPIPageDataNe

Odgovor

Vraća: Option[PatchPageAPIResponse]

Primer

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

deletePendingWebhookEvent Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getPendingWebhookEventCount Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
externalIdstringNe
eventTypestringNe
domainstringNe
attemptCountGTfloat64Ne

Odgovor

Vraća: Option[GetPendingWebhookEventCountResponse]

Primer

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

getPendingWebhookEvents Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
commentIdstringDa
externalIdstringNe
eventTypestringNe
domainstringNe
attemptCountGTfloat64Ne
skipfloat64Ne

Odgovor

Vraća: Option[GetPendingWebhookEventsResponse]

Primer

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

createQuestionConfig Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createQuestionConfigBodyCreateQuestionConfigBodyNe

Odgovor

Vraća: Option[CreateQuestionConfigResponse]

Primer

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

deleteQuestionConfig Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getQuestionConfig Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetQuestionConfigResponse]

Primer

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

getQuestionConfigs Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
skipfloat64Ne

Odgovor

Vraća: Option[GetQuestionConfigsResponse]

Primer

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

updateQuestionConfig Internal Link


Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
updateQuestionConfigBodyUpdateQuestionConfigBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

createQuestionResult Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createQuestionResultBodyCreateQuestionResultBodyNe

Odgovor

Vraća: Option[CreateQuestionResultResponse]

Primer

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

deleteQuestionResult Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getQuestionResult Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetQuestionResultResponse]

Primer

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

getQuestionResults Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
userIdstringNe
startDatestringNe
questionIdstringNe
questionIdsstringNe
skipfloat64Ne

Response

Vraća: Option[GetQuestionResultsResponse]

Primer

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

updateQuestionResult Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateQuestionResultBodyUpdateQuestionResultBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

aggregateQuestionResults Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
questionIdstringNe
questionIdsseq[string]Ne
urlIdstringDa
timeBucketAggregateTimeBucketNe
startDatestringNe
forceRecalculateboolNe

Odgovor

Vraća: Option[AggregateQuestionResultsResponse]

Primer

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

bulkAggregateQuestionResults Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNe
forceRecalculateboolNe

Odgovor

Vraća: Option[BulkAggregateQuestionResultsResponse]

Primer

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

combineCommentsWithQuestionResults Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
questionIdstringNe
questionIdsseq[string]Ne
urlIdstringDa
startDatestringNe
forceRecalculateboolNe
minValuefloat64Ne
maxValuefloat64Ne
limitfloat64Ne

Odgovor

Vraća: Option[CombineQuestionResultsWithCommentsResponse]

Primer

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

addSSOUser Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createAPISSOUserDataCreateAPISSOUserDataNe

Odgovor

Vraća: Option[AddSSOUserAPIResponse]

Primer

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

deleteSSOUser Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
deleteCommentsboolNe
commentDeleteModestringNe

Odgovor

Vraća: Option[DeleteSSOUserAPIResponse]

Primer

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

getSSOUserByEmail Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
emailstringNe

Odgovor

Vraća: Option[GetSSOUserByEmailAPIResponse]

Primer

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

getSSOUserById Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetSSOUserByIdAPIResponse]

Primer

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

getSSOUsers Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
skipintNe

Odgovor

Vraća: Option[GetSSOUsersResponse]

Primer

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

patchSSOUser Internal Link

Parametri

NameTypeObaveznoOpis
tenantIdstringDa
idstringNe
updateAPISSOUserDataUpdateAPISSOUserDataNe
updateCommentsboolNe

Odgovor

Vraća: Option[PatchSSOUserAPIResponse]

Primer

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

putSSOUser Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateAPISSOUserDataUpdateAPISSOUserDataNe
updateCommentsboolNe

Odgovor

Vraća: Option[PutSSOUserAPIResponse]

Primer

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

createSubscription Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNe

Odgovor

Vraća: Option[CreateSubscriptionAPIResponse]

Primer

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

deleteSubscription Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringNo
userIdstringNo

Odgovor

Vraća: Option[DeleteSubscriptionAPIResponse]

Primer

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

getSubscriptions Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
userIdstringNe

Odgovor

Vraća: Option[GetSubscriptionsAPIResponse]

Primer

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

updateSubscription Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNe
userIdstringNe

Odgovor

Vraća: Option[UpdateSubscriptionAPIResponse]

Primer

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

getTenantDailyUsages Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
yearNumberfloat64Ne
monthNumberfloat64Ne
dayNumberfloat64Ne
skipfloat64Ne

Odgovor

Vraća: Option[GetTenantDailyUsagesResponse]

Primer

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

createTenantPackage Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createTenantPackageBodyCreateTenantPackageBodyNe

Odgovor

Vraća: Option[CreateTenantPackageResponse]

Primer

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

deleteTenantPackage Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getTenantPackage Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetTenantPackageResponse]

Primer

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

getTenantPackages Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
skipfloat64Ne

Odgovor

Vraća: Option[GetTenantPackagesResponse]

Primer

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

replaceTenantPackage Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
replaceTenantPackageBodyReplaceTenantPackageBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

updateTenantPackage Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateTenantPackageBodyUpdateTenantPackageBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

createTenantUser Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
createTenantUserBodyCreateTenantUserBodyNe

Odgovor

Vraća: Option[CreateTenantUserResponse]

Primer

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

deleteTenantUser Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
deleteCommentsstringNe
commentDeleteModestringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getTenantUser Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetTenantUserResponse]

Primer

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

getTenantUsers Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
skipfloat64Ne

Odgovor

Vraća: Option[GetTenantUsersResponse]

Primer

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

replaceTenantUser Internal Link


Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
replaceTenantUserBodyReplaceTenantUserBodyNe
updateCommentsstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
redirectURLstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

updateTenantUser Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
updateTenantUserBodyUpdateTenantUserBodyNe
updateCommentsstringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

createTenant Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
createTenantBodyCreateTenantBodyNe

Odgovor

Vraća: Option[CreateTenantResponse]

Primer

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

deleteTenant Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
surestringNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

getTenant Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetTenantResponse]

Primer

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

getTenants Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
metastringNe
skipfloat64Ne

Odgovor

Vraća: Option[GetTenantsResponse]

Primer

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

updateTenant Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateTenantBodyUpdateTenantBodyNe

Odgovor

Vraća: Option[APIEmptyResponse]

Primer

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

changeTicketState Internal Link


Parametri

NameTypeRequiredDescription
tenantIdstringDa
userIdstringNe
idstringNe
changeTicketStateBodyChangeTicketStateBodyNe

Odgovor

Vraća: Option[ChangeTicketStateResponse]

Primer

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

createTicket Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
userIdstringNe
createTicketBodyCreateTicketBodyNe

Odgovor

Vraća: Option[CreateTicketResponse]

Primer

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

getTicket Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe
userIdstringNe

Odgovor

Vraća: Option[GetTicketResponse]

Primer

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

getTickets Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
userIdstringNe
statefloat64Ne
skipfloat64Ne
limitfloat64Ne

Odgovor

Vraća: Option[GetTicketsResponse]

Primer

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

getTranslations Internal Link

Parametri

ImeTipObaveznoOpis
namespacestringNe
componentstringNe
localestringNe
useFullTranslationIdsboolNe

Odgovor

Vraća: Option[GetTranslationsResponse]

Primer

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

uploadImage Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
filestringNe
sizePresetSizePresetNe
urlIdstringDa

Odgovor

Vraća: Option[UploadImageResponse]

Primer

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

getUserBadgeProgressById Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIGetUserBadgeProgressResponse]

Primer

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

getUserBadgeProgressByUserId Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
userIdstringNe

Odgovor

Vraća: Option[APIGetUserBadgeProgressResponse]

Primer

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

getUserBadgeProgressList Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
userIdstringNe
limitfloat64Ne
skipfloat64Ne

Odgovor

Vraća: Option[APIGetUserBadgeProgressListResponse]

Primer

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

createUserBadge Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
createUserBadgeParamsCreateUserBadgeParamsNe

Odgovor

Vraća: Option[APICreateUserBadgeResponse]

Primer

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

deleteUserBadge Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIEmptySuccessResponse]

Primer

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

getUserBadge Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[APIGetUserBadgeResponse]

Primer

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

getUserBadges Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
userIdstringNe
badgeIdstringNe
displayedOnCommentsboolNe
limitfloat64Ne
skipfloat64Ne

Odgovor

Vraća: Option[APIGetUserBadgesResponse]

Primer

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

updateUserBadge Internal Link


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
updateUserBadgeParamsUpdateUserBadgeParamsNe

Odgovor

Vraća: Option[APIEmptySuccessResponse]

Primer

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

getUserNotificationCount Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: Option[GetUserNotificationCountResponse]

Primer

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

getUserNotifications Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
pageSizeintNe
afterIdstringNe
includeContextboolNe
afterCreatedAtint64Ne
unreadOnlyboolNe
dmOnlyboolNe
noDmboolNe
includeTranslationsboolNe
includeTenantNotificationsboolNe
ssostringNe

Odgovor

Vraća: Option[GetMyNotificationsResponse]

Primer

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

resetUserNotificationCount Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: Option[ResetUserNotificationsResponse]

Primer

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

resetUserNotifications Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
afterIdstringNe
afterCreatedAtint64Ne
unreadOnlyboolNe
dmOnlyboolNe
noDmboolNe
ssostringNe

Odgovor

Vraća: Option[ResetUserNotificationsResponse]

Primer

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

updateUserNotificationCommentSubscriptionStatus Internal Link

Omogući ili onemogući obaveštenja za određeni komentar.

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
notificationIdstringNe
optedInOrOutstringNe
commentIdstringDa
ssostringNe

Odgovor

Vraća: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Primer

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

updateUserNotificationPageSubscriptionStatus Internal Link

Omogući ili onemogući obaveštenja za stranicu. Kada su korisnici pretplaćeni na stranicu, obaveštenja se kreiraju za nove root komentare, i takođe

Parameters

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
urlstringNe
pageTitlestringNe
subscribedOrUnsubscribedstringNe
ssostringNe

Response

Vraća: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

Example

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

updateUserNotificationStatus Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
notificationIdstringNe
newStatusstringNe
ssostringNe

Odgovor

Vraća: Option[UpdateUserNotificationStatusResponse]

Primer

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

getUserPresenceStatuses Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdWSstringNe
userIdsstringNe

Odgovor

Vraća: Option[GetUserPresenceStatusesResponse]

Primer

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

searchUsers Internal Link

Parameters

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
usernameStartsWithstringNe
mentionGroupIdsseq[string]Ne
ssostringNe
searchSectionstringNe

Odgovor

Vraća: Option[SearchUsersResult]

Primer

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

getUser Internal Link


Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringNe

Odgovor

Vraća: Option[GetUserResponse]

Primer

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

createVote Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
directionstringNe
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[VoteResponse]

Primer

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

deleteVote Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringNe
editKeystringNe

Odgovor

Vraća: Option[VoteDeleteResponse]

Primer

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

getVotes Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Odgovor

Vraća: Option[GetVotesResponse]

Primer

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

getVotesForUser Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vraća: Option[GetVotesForUserResponse]

Primer

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

Trebate pomoć?

Ako naiđete na bilo kakve probleme ili imate pitanja u vezi Nim SDK-a, molimo vas:

Doprinosi

Doprinosi su dobrodošli! Molimo posetite GitHub repozitorijum za smernice o doprinosu.