FastComments.com

FastComments Nim SDK


ื–ื” ื”-SDK ื”ืจืฉืžื™ ืฉืœ Nim ืขื‘ื•ืจ FastComments.

ื”-SDK ื”ืจืฉืžื™ ืฉืœ Nim ืขื‘ื•ืจ ืžืžืฉืง ื”-API ืฉืœ FastComments

ืžืื’ืจ

ืฆืคื” ื‘-GitHub


ื“ืจื™ืฉื•ืช Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

ื”ืชืงื ื” Internal Link

Using Nimble

nimble install fastcomments

Building from Source

nimble build

Library Contents

ืกืคืจื™ื™ื” ื–ื• ืžื›ื™ืœื” ืืช ืœืงื•ื— ื”โ€‘API ืฉื ื•ืฆืจ ื•ืืช ื›ืœื™ ื”ืขื–ืจ ืฉืœ SSO ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ืขื‘ื•ื“ื” ืขื ื”โ€‘API.

Public vs Secured APIs

ืœืœืงื•ื— ื”โ€‘API ืงื™ื™ืžื™ื ืฉืœื•ืฉื” ืžื•ื“ื•ืœื™ API: api_default, api_public, ื•โ€‘api_moderation. ื”ืžื•ื“ื•ืœ api_default ืžื›ื™ืœ ืฉื™ื˜ื•ืช ื”ื“ื•ืจืฉื•ืช ืืช ืžืคืชื— ื”โ€‘API ืฉืœื›ื, ื•ื”โ€‘api_public ืžื›ื™ืœ ืงืจื™ืื•ืช API ืฉื ื™ืชืŸ ืœื‘ืฆืข ื™ืฉื™ืจื•ืช ืžื“ืคื“ืคืŸ/ืžื›ืฉื™ืจ ื ื™ื™ื“/ื•ื›ื•ืณ ืœืœื ืื™ืžื•ืช. ืžื•ื“ื•ืœ api_moderation ืžื›ื™ืœ ืฉื™ื˜ื•ืช ืœืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืฉืœ ื”ืžืคืงื—.

ืžื•ื“ื•ืœ api_moderation ืžืกืคืง ื—ื‘ื™ืœื” ื ืจื—ื‘ืช ืฉืœ API ืžื•ื“ืจืฆื™ื” ื—ื™ื™ื ื•ืžื”ื™ืจื™ื. ื›ืœ ืฉื™ื˜ืช api_moderation ืžืงื‘ืœืช ืคืจืžื˜ืจ sso ื•ื ื™ืชืŸ ืœืืžืช ื‘ืืžืฆืขื•ืช SSO ืื• ืงื•ื‘ืฅ cookie ืฉืœ ืžื•ืฉื‘ FastComments.com.

ื”ืชื—ืœื” ืžื”ื™ืจื” Internal Link


ืฉื™ืžื•ืฉ ื‘ืžืžืฉืงื™ API ืžืื•ืžืชื™ื (DefaultAPI)

ื—ืฉื•ื‘: ืงืฆื•ื•ืช ืžืื•ืžืชื™ื ื“ื•ืจืฉื™ื ืฉื”ืžืคืชื— API ืฉืœืš ื™ื•ื’ื“ืจ ื›ื›ื•ืชืจืช 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"

# Make authenticated API calls.
# Required parameters (and the request body) are positional; optional
# parameters are passed via the operation's options object.
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    direction: SortDirections.DESC
  )
)

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

ืฉื™ืžื•ืฉ ื‘ืžืžืฉืงื™ API ืฆื™ื‘ื•ืจื™ื™ื (PublicAPI)

ืงืฆื•ื•ืช ืฆื™ื‘ื•ืจื™ื™ื ืื™ื ื ื“ื•ืจืฉื™ื ืื™ืžื•ืช:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Make public API calls.
# tenantId and urlId are required (positional); everything else is optional.
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  options = GetCommentsPublicOptions(
    direction: SortDirections.DESC
  )
)

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

ืฉื™ืžื•ืฉ ื‘ืžืžืฉืงื™ API ืœืžื•ื“ืจืฆื™ื” (ModerationAPI)

ืงืฆื•ื•ืช ื”ืžื•ื“ืจืฆื™ื” ืžื ื™ืขื™ื ืืช ืœื•ื— ื”ื‘ืงืจื” ืฉืœ ื”ืžื ื—ื” ื•ืžืื•ืžืชื™ื ื‘ืขื–ืจืช ืืกื™ืžื•ืŸ SSO ืœืžื ื—ื” ื”ืคื•ืขืœ:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# List comments in the moderation dashboard.
# This operation has no required parameters, so everything is optional.
let (response, httpResponse) = getApiComments(
  httpClient = client,
  options = GetApiCommentsOptions(
    count: 30,
    tenantId: "your-tenant-id",
    sso: "your-sso-token"
  )
)

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

ื‘ืขื™ื•ืช ื ืคื•ืฆื•ืช

  1. ืฉื’ื™ืืช ืื™ืžื•ืช 401: ื•ื“ื ืฉื”ื’ื“ืจืช ืืช ื›ื•ืชืจืช x-api-key ื‘-HttpClient ืฉืœืš ืœืคื ื™ ื‘ื™ืฆื•ืข ื‘ืงืฉื•ืช DefaultAPI: client.headers["x-api-key"] = "your-api-key"
  2. ืžื—ืœืงืช API ืฉื’ื•ื™ื”: ื”ืฉืชืžืฉ ื‘-api_default ืœื‘ืงืฉื•ืช ืžืื•ืžืชื•ืช ื‘ืฆื“ ื”ืฉืจืช, api_public ืœื‘ืงืฉื•ืช ื‘ืฆื“ ื”ืœืงื•ื—/ืฆื™ื‘ื•ืจื™ื•ืช, ื•-api_moderation ืœื‘ืงืฉื•ืช ืฉืœ ืœื•ื— ื”ื‘ืงืจื” ืฉืœ ื”ืžื ื—ื”.

ื‘ื™ืฆื•ืข ืงืจื™ืื•ืช API Internal Link

All API methods in this SDK return tuples of (Option[ResponseType], Response). The first element contains the parsed response if successful, and the second element is the raw HTTP response.

Required parameters and the request body are passed positionally. The remaining optional parameters are collected into a single Api<Operation>Options object, which is the last argument. Operations with no optional parameters take no options object.

ื“ื•ื’ืžื”: ื”ื‘ืืช ืชื’ื•ื‘ื•ืช

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",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    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"

ื”ืขืจื•ืช Internal Link

ืžื–ื”ื™ ืฉื™ื“ื•ืจ

ืชืจืื• ืฉืขืœื™ื›ื ืœื”ืขื‘ื™ืจ broadcastId ื‘ื—ืœืง ืžืงืจื™ืื•ืช ื”-API. ื›ืฉืชืงื‘ืœื• ืื™ืจื•ืขื™ื, ืชืงื‘ืœื• ื—ื–ืจื” ืืช ื”-ID ื”ื–ื”, ื›ืš ืฉืชื“ืขื• ืœื”ืชืขืœื ืžื”ืื™ืจื•ืข ืื ืืชื ืžืชื›ื ื ื™ื ืœื™ื™ืฉื ืฉื™ื ื•ื™ื™ื ื‘ืื•ืคืŸ ืื•ืคื˜ื™ืžื™ ื‘ืฆื“ ื”ืœืงื•ื— (ืฉืืชื ื›ื ืจืื” ืชืจืฆื• ืœืขืฉื•ืช ืฉื›ืŸ ื–ื” ืžืกืคืง ืืช ื—ื•ื•ื™ื™ืช ื”ืžืฉืชืžืฉ ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ). ื”ืขื‘ื™ืจื• ื›ืืŸ UUID. ื”-ID ืฆืจื™ืš ืœื”ื™ื•ืช ื™ื™ื—ื•ื“ื™ ืžืกืคื™ืง ื›ื“ื™ ืฉืœื ื™ื•ืคื™ืข ืคืขืžื™ื™ื ื‘ืžื”ืœืš ื”ืคืขืœื” ืื—ืช ืฉืœ ื”ื“ืคื“ืคืŸ.

SSO (Single Sign-On)

ืœื“ื•ื’ืžืื•ืช ืฉืœ SSO, ืจืื• ืœืžื˜ื”.

ืฉื™ืžื•ืฉ ื‘-SSO Internal Link


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

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

ืื’ืจื’ืฆื™ื” Internal Link

ืžืื’ื“ ืžืกืžื›ื™ื ืขืœโ€‘ื™ื“ื™ ืงื™ื‘ื•ืฅ ืฉืœื”ื (ืื ืžืชืงื‘ืœ groupBy) ื•ื”ื—ืœืช ืžืกืคืจ ืคืขื•ืœื•ืช.
ืคืขื•ืœื•ืช ืฉื•ื ื•ืช (ืœืžืฉืœ sum, countDistinct, avg, ื•ื›ื“') ื ืชืžื›ื•ืช.

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
aggregationRequestAggregationRequestืœื
optionsAggregateOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AggregateResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœืื’ืจื’ืฆื™ื”
Copy Copy
1
2let (aggResp, httpResp) = client.aggregate(tenantId = "my-tenant-123", aggregationRequest = AggregationRequest(), options = AggregateOptions())
3if aggResp.isSome:
4 let response = aggResp.get()
5 echo response
6echo httpResp
7

ืงื‘ืœืช ื™ื•ืžื ื™ ื‘ื™ืงื•ืจืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetAuditLogsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetAuditLogsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getAuditLogs
Copy Copy
1
2let (auditOpt, httpResp) = client.getAuditLogs(tenantId = "my-tenant-123", options = GetAuditLogsOptions())
3if auditOpt.isSome:
4 let audit = auditOpt.get()
5 echo audit
6

ื”ืชื ืชืงื•ืช (ืฆื™ื‘ื•ืจื™) Internal Link

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

logoutPublic ื“ื•ื’ืžื”
Copy Copy
1
2let (responseOpt, httpResponse) = client.logoutPublic(tenantId = "my-tenant-123", userId = "user-456")
3if responseOpt.isSome:
4 let emptyResponse = responseOpt.get()
5

ื—ืกื™ืžื” ืžืชื•ืš ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[BlockSuccess]

ื“ื•ื’ืžื”

blockFromCommentPublic ื“ื•ื’ืžื”
Copy Copy
1
2let (blockOpt, httpResp) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if blockOpt.isSome:
10 let block = blockOpt.get()
11

ื‘ื™ื˜ื•ืœ ื—ืกื™ืžื” ืžืชื•ืš ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UnblockSuccess]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช unBlockCommentPublic
Copy Copy
1
2let (unblockResult, httpResp) = client.unBlockCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if unblockResult.isSome:
10 let result = unblockResult.get()
11

ื‘ื“ื™ืงืช ืชื’ื•ื‘ื•ืช ื—ืกื•ืžื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdsstringNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CheckBlockedCommentsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ checkedCommentsForBlocked
Copy Copy
1
2let (maybeResponse, httpResponse) = client.checkedCommentsForBlocked(
3 tenantId = "my-tenant-123",
4 commentIds = "cmt-1,cmt-2",
5 sso = ""
6)
7
8if maybeResponse.isSome:
9 let response = maybeResponse.get()
10 discard response
11

ื—ืกื™ืžืช ืžืฉืชืžืฉ ืžืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
blockFromCommentParamsBlockFromCommentParamsNo
optionsBlockUserFromCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[BlockSuccess]

ื“ื•ื’ืžื”

blockUserFromComment ื“ื•ื’ืžื”
Copy Copy
1
2let params = BlockFromCommentParams()
3let opts = BlockUserFromCommentOptions()
4let (blockResult, httpResp) = client.blockUserFromComment(
5 tenantId = "my-tenant-123",
6 id = "comment-456",
7 blockFromCommentParams = params,
8 options = opts
9)
10if blockResult.isSome:
11 let success = blockResult.get()
12 discard success
13

ื™ืฆื™ืจืช ืชื’ื•ื‘ื” ืฆื™ื‘ื•ืจื™ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
broadcastIdstringืœื
commentDataCommentDataืœื
optionsCreateCommentPublicOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[SaveCommentsResponseWithPresence]

ื“ื•ื’ืžื”

createCommentPublic ื“ื•ื’ืžื”
Copy Copy
1
2let
3 tenantId = "my-tenant-123"
4 urlId = "news/article-title"
5 broadcastId = "broadcast-456"
6 commentData = CommentData()
7 options = CreateCommentPublicOptions()
8let (maybeResp, httpResp) = client.createCommentPublic(
9 tenantId = tenantId,
10 urlId = urlId,
11 broadcastId = broadcastId,
12 commentData = commentData,
13 options = options)
14
15if maybeResp.isSome:
16 let resp = maybeResp.get()
17 echo resp
18

ืžื—ื™ืงืช ืชื’ื•ื‘ื” Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
optionsDeleteCommentOptionsืœื

Response

ืžื—ื–ื™ืจื™ื: Option[DeleteCommentResult]

Example

ื“ื•ื’ืžืช deleteComment
Copy Copy
1
2let (delResult, httpResponse) = client.deleteComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 options = DeleteCommentOptions()
6)
7
8if delResult.isSome:
9 let result = delResult.get()
10 echo result
11

ืžื—ื™ืงืช ืชื’ื•ื‘ื” (ืฆื™ื‘ื•ืจื™) Internal Link

Parameters

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
broadcastIdstringืœื
optionsDeleteCommentPublicOptionsืœื

Response

ืžื—ื–ื™ืจ: Option[PublicAPIDeleteCommentResponse]

Example

ื“ื•ื’ืžืช deleteCommentPublic
Copy Copy
1
2let (responseOpt, httpResp) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "",
6 options = DeleteCommentPublicOptions())
7if responseOpt.isSome:
8 let resp = responseOpt.get()
9 echo resp
10

ืžื—ื™ืงืช ื”ืฆื‘ืขืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
voteIdstringNo
urlIdstringYes
broadcastIdstringNo
optionsDeleteCommentVoteOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteDeleteResponse]

ื“ื•ื’ืžื”

deleteCommentVote ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 voteId = "vote-789",
6 urlId = "news/article-title",
7 broadcastId = "broadcast-001",
8 options = DeleteCommentVoteOptions()
9)
10
11if response.isSome:
12 let voteDelete = response.get()
13

ื“ื™ื•ื•ื— ืขืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
idstringNo
optionsFlagCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[FlagCommentResponse]

ื“ื•ื’ืžื”

flagComment ื“ื•ื’ืžื”
Copy Copy
1
2let options = FlagCommentOptions(reason: "spam content", note: "Automated posting detected", isSpam: true, categories: @["spam"])
3let (flagRes, httpRes) = client.flagComment(tenantId = "my-tenant-123", id = "cmt-789", options = options)
4if flagRes.isSome:
5 let res = flagRes.get()
6 discard res
7

ืงื‘ืœืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetCommentResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getComment
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-789")
3if response.isSome:
4 let comment = response.get()
5 discard comment
6

ืงื‘ืœืช ืชื’ื•ื‘ื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetCommentsOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetCommentsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getComments
Copy Copy
1
2let options = GetCommentsOptions(
3 urlId = "news/article-title",
4 page = 0,
5 pageSize = 20,
6 sort = "newest",
7 includeDeleted = false,
8 includeReplies = true,
9 userIds = @[],
10 tags = @[]
11)
12
13let (response, httpResponse) = client.getComments(tenantId = "my-tenant-123", options = options)
14
15if response.isSome:
16 let comments = response.get()
17 discard comments
18

ืงื‘ืœืช ืชื’ื•ื‘ื•ืช (ืฆื™ื‘ื•ืจื™) Internal Link

req tenantId urlId

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
optionsGetCommentsPublicOptionsืœื

ืชื’ื•ื‘ื”

Returns: Option[GetCommentsResponseWithPresencePublicComment]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ getCommentsPublic
Copy Copy
1
2let (optResp, httpResp) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetCommentsPublicOptions(
6 page = 0,
7 pageSize = 10,
8 includeDeleted = false,
9 tags = @[]
10 )
11)
12
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp
16

ืงื‘ืœืช ื˜ืงืกื˜ ืฉืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
optionsGetCommentTextOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PublicAPIGetCommentTextResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getCommentText
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = GetCommentTextOptions()
6)
7
8if maybeResponse.isSome:
9 let response = maybeResponse.get()
10

ืงื‘ืœืช ืฉืžื•ืช ืžืฉืชืžืฉ ืฉื”ืฆื‘ื™ืขื• ืขืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
dirintืœื
ssostring = ""ืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetCommentVoteUserNamesSuccessResponse]

ื“ื•ื’ืžื”

getCommentVoteUserNames ื“ื•ื’ืžื”
Copy Copy
1
2let (voteNamesOpt, httpRes) = client.getCommentVoteUserNames(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 dir = 0,
6 sso = ""
7)
8
9if voteNamesOpt.isSome:
10 let voteNames = voteNamesOpt.get()
11 echo voteNames
12

ื ืขื™ืœืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
broadcastIdstringืœื
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘lockComment
Copy Copy
1
2let (lockResult, httpRes) = client.lockComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 broadcastId = "",
6 sso = "")
7
8if lockResult.isSome:
9 let resp = lockResult.get()
10 discard resp
11

ื”ืฆืžื“ืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
broadcastIdstringืœื
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ChangeCommentPinStatusResponse]

ื“ื•ื’ืžื”

pinComment ื“ื•ื’ืžื”
Copy Copy
1
2let (pinResult, httpResp) = client.pinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = "",
7)
8
9if pinResult.isSome:
10 let response = pinResult.get()
11 echo response
12

ืฉืžื™ืจืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createCommentParamsCreateCommentParamsNo
optionsSaveCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื™ื: Option[APISaveCommentResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช saveComment
Copy Copy
1
2let commentParams = CreateCommentParams(
3 body: "Great read, thanks!",
4 name: "Alice Smith",
5 email: "alice@example.com",
6 parentId: ""
7)
8
9let saveOpts = SaveCommentOptions(
10 isPreview: false,
11 isApproved: true,
12 skipSpamCheck: false
13)
14
15let (apiResponse, httpResponse) = client.saveComment(
16 tenantId = "my-tenant-123",
17 createCommentParams = commentParams,
18 options = saveOpts
19)
20
21if apiResponse.isSome:
22 let saved = apiResponse.get()
23 echo saved
24

ืฉืžื™ืจืช ืชื’ื•ื‘ื•ืช ื‘ืืฆื•ื•ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
createCommentParamsseq[CreateCommentParams]ืœื
optionsSaveCommentsBulkOptions): (Option[seq[SaveCommentsBulkResponse]]ืœื
idstringืœื
fromNamestringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ saveCommentsBulk
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 options = SaveCommentsBulkOptions(),
6 id = "",
7 fromName = ""
8)
9
10if response.isSome:
11 let result = response.get()
12

ื”ื’ื“ืจืช ื˜ืงืกื˜ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
broadcastIdstringืœื
commentTextUpdateRequestCommentTextUpdateRequestืœื
optionsSetCommentTextOptionsืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PublicAPISetCommentTextResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ setCommentText
Copy Copy
1
2let commentUpdate = CommentTextUpdateRequest(text: "Updated comment text")
3let opts = SetCommentTextOptions()
4let (response, httpResponse) = client.setCommentText(
5 tenantId = "my-tenant-123",
6 commentId = "cmt-456",
7 broadcastId = "broadcast-789",
8 commentTextUpdateRequest = commentUpdate,
9 options = opts)
10if response.isSome:
11 let result = response.get()
12

ื‘ื™ื˜ื•ืœ ื—ืกื™ืžืช ืžืฉืชืžืฉ ืžืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
unBlockFromCommentParamsUnBlockFromCommentParamsNo
optionsUnBlockUserFromCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UnblockSuccess]

ื“ื•ื’ืžื”

unBlockUserFromComment ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 unBlockFromCommentParams = UnBlockFromCommentParams(userId = "user-789", commentId = "cmt-321"),
6 options = UnBlockUserFromCommentOptions(),
7)
8
9if response.isSome:
10 let unblockSuccess = response.get()
11

ื‘ื™ื˜ื•ืœ ื“ื™ื•ื•ื— ืขืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
optionsUnFlagCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[FlagCommentResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช unFlagComment
Copy Copy
1
2let (flagRespOpt, httpResp) = client.unFlagComment(tenantId = "my-tenant-123", id = "comment-456", options = UnFlagCommentOptions())
3if flagRespOpt.isSome:
4 let flagResp = flagRespOpt.get()
5

ืฉื—ืจื•ืจ ื ืขื™ืœืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช unLockComment
Copy Copy
1
2let (maybeEmpty, httpResp) = client.unLockComment(tenantId = "my-tenant-123", commentId = "comment-456", broadcastId = "", sso = "")
3if maybeEmpty.isSome:
4 let emptyResp = maybeEmpty.get()
5 echo "Comment unlocked"
6else:
7 echo "Failed to unlock comment"
8

ื”ืกืจืช ื”ืฆืžื“ืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
broadcastIdstringืœื
ssostring = ""ืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ChangeCommentPinStatusResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช unPinComment
Copy Copy
1
2let (responseOpt, httpResponse) = client.unPinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = ""
7)
8
9if responseOpt.isSome:
10 let resp = responseOpt.get()
11 echo resp
12

ืขื“ื›ื•ืŸ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
updatableCommentParamsUpdatableCommentParamsNo
optionsUpdateCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื ืœโ€‘updateComment
Copy Copy
1
2let commentParams = UpdatableCommentParams(content: "Updated comment content")
3let updateOpts = UpdateCommentOptions(force: false)
4
5let (respOpt, httpResp) = client.updateComment(
6 tenantId = "my-tenant-123",
7 id = "comment-456",
8 updatableCommentParams = commentParams,
9 options = updateOpts
10)
11
12if respOpt.isSome:
13 let resp = respOpt.get()
14

ื”ืฆื‘ืขืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringNo
voteBodyParamsVoteBodyParamsNo
optionsVoteCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช voteComment
Copy Copy
1
2let (voteRespOpt, httpResp) = client.voteComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-98765",
5 urlId = "blog/how-to-code",
6 broadcastId = "",
7 voteBodyParams = VoteBodyParams(),
8 options = VoteCommentOptions()
9)
10
11if voteRespOpt.isSome:
12 let voteResp = voteRespOpt.get()
13

ืงื‘ืœืช ืชื’ื•ื‘ื•ืช ืขื‘ื•ืจ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
optionsGetCommentsForUserOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetCommentsForUserResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ getCommentsForUser
Copy Copy
1
2let (maybeResp, httpResp) = client.getCommentsForUser(options = GetCommentsForUserOptions(
3 tenantId = "my-tenant-123",
4 userId = "user-456",
5 page = 0,
6 pageSize = 20,
7 includeDeleted = false,
8 commentIds = @[]
9))
10
11if maybeResp.isSome:
12 let resp = maybeResp.get()
13 discard resp
14

ื”ื•ืกืคืช ื”ื’ื“ืจืช ื“ื•ืžื™ื™ืŸ Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ืžื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
addDomainConfigParamsAddDomainConfigParamsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AddDomainConfigResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช addDomainConfig
Copy Copy
1
2let (respOpt, httpResp) = client.addDomainConfig(
3 tenantId = "my-tenant-123",
4 addDomainConfigParams = default(AddDomainConfigParams)
5)
6
7if respOpt.isSome:
8 let cfg = respOpt.get()
9

ืžื—ื™ืงืช ื”ื’ื“ืจืช ื“ื•ืžื™ื™ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
domainstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[DeleteDomainConfigResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” deleteDomainConfig
Copy Copy
1
2let (optResp, httpResp) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

ืงื‘ืœืช ื”ื’ื“ืจืช ื“ื•ืžื™ื™ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
domainstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetDomainConfigResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getDomainConfig
Copy Copy
1
2let (configOpt, httpResp) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if configOpt.isSome:
4 let cfg = configOpt.get()
5 discard cfg
6

ืงื‘ืœืช ื”ื’ื“ืจื•ืช ื“ื•ืžื™ื™ืŸ Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetDomainConfigsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getDomainConfigs
Copy Copy
1
2let (domainConfigsOpt, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if domainConfigsOpt.isSome:
4 let domainConfigs = domainConfigsOpt.get()
5 echo domainConfigs
6

ืขื“ื›ื•ืŸ ื—ืœืงื™ ืฉืœ ื”ื’ื“ืจืช ื“ื•ืžื™ื™ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
domainToUpdatestringืœื
patchDomainConfigParamsPatchDomainConfigParamsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PatchDomainConfigResponse]

ื“ื•ื’ืžื”

patchDomainConfig ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.patchDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "news.mywebsite.com",
5 patchDomainConfigParams = PatchDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

ื”ื—ืœืคืช ื”ื’ื“ืจืช ื“ื•ืžื™ื™ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
domainToUpdatestringืœื
updateDomainConfigParamsUpdateDomainConfigParamsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PutDomainConfigResponse]

ื“ื•ื’ืžื”

putDomainConfig ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.putDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "example.com",
5 updateDomainConfigParams = UpdateDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

ื™ืฆื™ืจืช ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createEmailTemplateBodyCreateEmailTemplateBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateEmailTemplateResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createEmailTemplate
Copy Copy
1
2let createBody = CreateEmailTemplateBody(
3 name: "Welcome Email",
4 subject: "Welcome to FastComments",
5 htmlBody: "<p>Hello, thank you for joining us!</p>",
6 isActive: true,
7 tags: @[]
8)
9
10let (optResp, httpResp) = client.createEmailTemplate(
11 tenantId = "my-tenant-123",
12 createEmailTemplateBody = createBody
13)
14
15if optResp.isSome:
16 let emailTemplate = optResp.get()
17

ืžื—ื™ืงืช ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteEmailTemplate ื“ื•ื’ืžื”
Copy Copy
1
2let (respOpt, httpResp) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5 echo "Email template deleted"
6else:
7 echo "Failed to delete email template"
8

ืžื—ื™ืงืช ืฉื’ื™ืืช ืขื™ื‘ื•ื“ ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
errorIdstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteEmailTemplateRenderError ื“ื•ื’ืžื”
Copy Copy
1
2let (apiRes, httpRes) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email",
5 errorId = "render-err-456"
6)
7
8if apiRes.isSome:
9 let empty = apiRes.get()
10

ืงื‘ืœืช ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetEmailTemplateResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if response.isSome:
4 let tmpl = response.get()
5

ืงื‘ืœืช ื”ื’ื“ืจื•ืช ืชื‘ื ื™ื•ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetEmailTemplateDefinitionsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getEmailTemplateDefinitions
Copy Copy
1
2let (responseOpt, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if responseOpt.isSome:
4 let definitions = responseOpt.get()
5 echo definitions
6

ืงื‘ืœืช ืฉื’ื™ืื•ืช ืขื™ื‘ื•ื“ ืฉืœ ืชื‘ื ื™ื•ืช ืื™ืžื™ื™ืœ Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
skipfloat64No

Response

ืžื—ื–ื™ืจ: Option[GetEmailTemplateRenderErrorsResponse]

Example

getEmailTemplateRenderErrors ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.getEmailTemplateRenderErrors(
3 tenantId = "my-tenant-123",
4 id = "welcome-template",
5 skip = 0.0
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 # ื”ืฉืชืžืฉ ื‘ืชื’ื•ื‘ื” ืœืคื™ ื”ืฆื•ืจืš
11else:
12 # ื˜ืคืœ ื‘ืžืฆื‘ ืฉื‘ื• ืื™ืŸ ืชื’ื•ื‘ื”
13 discard
14

ืงื‘ืœืช ืชื‘ื ื™ื•ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
skipfloat64ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetEmailTemplatesResponse]

ื“ื•ื’ืžื”

getEmailTemplates ื“ื•ื’ืžื”
Copy Copy
1
2let (emailTemplatesOpt, httpResp) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if emailTemplatesOpt.isSome:
4 let templates = emailTemplatesOpt.get()
5 echo templates
6

ืขื™ื‘ื•ื“ ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืื˜ื™ืคื•ืกื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyNo
localestring = ""No

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[RenderEmailTemplateResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช renderEmailTemplate
Copy Copy
1
2let body = RenderEmailTemplateBody()
3let (responseOpt, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = body, locale = "en-US")
4if responseOpt.isSome:
5 let response = responseOpt.get()
6 discard response
7discard httpResponse
8

ืขื“ื›ื•ืŸ ืชื‘ื ื™ืช ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
idstringNo
updateEmailTemplateBodyUpdateEmailTemplateBodyNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateEmailTemplate
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 subject: "Welcome to FastComments",
4 body: "Hello \{{user_name}}, thanks for joining!",
5 enabled: true,
6)
7
8let (maybeResp, httpResp) = client.updateEmailTemplate(
9 tenantId = "my-tenant-123",
10 id = "welcome-email",
11 updateEmailTemplateBody = updateBody,
12)
13
14if maybeResp.isSome:
15 let resp = maybeResp.get()
16

ืงื‘ืœืช ื™ื•ืžืŸ ืื™ืจื•ืขื™ื Internal Link

ื‘ืงืฉื” tenantId urlId userIdWS

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
userIdWSstringืœื
startTimeint64ืœื
endTimeint64ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetEventLogResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getEventLog
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

ืงื‘ืœืช ื™ื•ืžืŸ ืื™ืจื•ืขื™ื ื’ืœื•ื‘ืœื™ Internal Link

req tenantId urlId userIdWS

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

ืชื’ื•ื‘ื”

Returns: Option[GetEventLogResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘getGlobalEventLog
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "user-456",
6 startTime = 1700000000'i64,
7 endTime = 1700003600'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

ื™ืฆื™ืจืช ืคื•ืกื˜ ื‘ืคื™ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
createFeedPostParamsCreateFeedPostParamsืœื
optionsCreateFeedPostOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateFeedPostsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” createFeedPost
Copy Copy
1
2let (respOpt, httpResp) = client.createFeedPost(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(),
5 options = CreateFeedPostOptions()
6)
7
8if respOpt.isSome:
9 let feedPost = respOpt.get()
10

ื™ืฆื™ืจืช ืคื•ืกื˜ ื‘ืคื™ื“ (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
optionsCreateFeedPostPublicOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateFeedPostResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createFeedPostPublic
Copy Copy
1
2let params = CreateFeedPostParams(
3 urlId: "news/big-event",
4 title: "Big Event Happened",
5 content: "Full article content goes here.",
6 tags: @["news", "event"]
7)
8
9let opts = CreateFeedPostPublicOptions(
10 sendNotifications: false,
11 allowComments: true
12)
13
14let (response, httpResponse) = client.createFeedPostPublic(
15 tenantId = "my-tenant-123",
16 createFeedPostParams = params,
17 options = opts
18)
19
20if response.isSome:
21 let post = response.get()
22 echo post
23

ืžื—ื™ืงืช ืคื•ืกื˜ ื‘ืคื™ื“ (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
postIdstringืœื
optionsDeleteFeedPostPublicOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[DeleteFeedPostPublicResponse]

ื“ื•ื’ืžื”

deleteFeedPostPublic ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-42",
5 options = DeleteFeedPostPublicOptions()
6)
7
8if response.isSome:
9 let deleteResp = response.get()
10

ืงื‘ืœืช ืคื•ืกื˜ื™ื ื‘ืคื™ื“ Internal Link

req tenantId afterId

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetFeedPostsOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetFeedPostsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getFeedPosts
Copy Copy
1
2let (feedResponseOpt, httpResp) = client.getFeedPosts(tenantId = "my-tenant-123", options = GetFeedPostsOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5 echo feedResponse
6

ืงื‘ืœืช ืคื•ืกื˜ื™ื ื‘ืคื™ื“ (ืฆื™ื‘ื•ืจื™) Internal Link


req tenantId afterId

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetFeedPostsPublicOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PublicFeedPostsResponse]

ื“ื•ื’ืžื”

getFeedPostsPublic ื“ื•ื’ืžื”
Copy Copy
1
2let (feedResponseOpt, httpResponse) = client.getFeedPostsPublic(tenantId = "my-tenant-123", options = GetFeedPostsPublicOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5

ืงื‘ืœืช ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืคื•ืกื˜ื™ื ื‘ืคื™ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
postIdsseq[string]No
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[FeedPostsStatsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getFeedPostsStats
Copy Copy
1
2let (statsOpt, httpResponse) = client.getFeedPostsStats(
3 tenantId = "my-tenant-123",
4 postIds = @["post-abc", "post-def"],
5 sso = "sso-token",
6)
7
8if statsOpt.isSome:
9 let stats = statsOpt.get()
10 # ื”ืฉืชืžืฉ ื‘ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื‘ื”ืชืื ืœืฆื•ืจืš
11
12
13

ืงื‘ืœืช ืจื™ืืงื˜ื™ื ืฉืœ ืžืฉืชืžืฉ (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetUserReactsPublicOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UserReactsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getUserReactsPublic
Copy Copy
1
2let opts = GetUserReactsPublicOptions(
3 limit = 20,
4 offset = 0,
5 includeDeleted = false
6)
7
8let (response, httpResponse) = client.getUserReactsPublic(
9 tenantId = "my-tenant-123",
10 options = opts
11)
12
13if response.isSome:
14 let userReacts = response.get()
15

ืชื’ื•ื‘ื” ืขืœ ืคื•ืกื˜ ื‘ืคื™ื“ (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
postIdstringNo
reactBodyParamsReactBodyParamsNo
optionsReactFeedPostPublicOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ReactFeedPostResponse]

ื“ื•ื’ืžื”

reactFeedPostPublic ื“ื•ื’ืžื”
Copy Copy
1
2let reactParams = ReactBodyParams()
3let (optResp, httpResp) = client.reactFeedPostPublic(
4 tenantId = "my-tenant-123",
5 postId = "post-456",
6 reactBodyParams = reactParams,
7 options = ReactFeedPostPublicOptions()
8)
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

ืขื“ื›ื•ืŸ ืคื•ืกื˜ ื‘ืคื™ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
feedPostFeedPostืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateFeedPost
Copy Copy
1
2let feedPost = FeedPost(
3 title: "Breaking News",
4 content: "Updated story content",
5 tags: @["news", "update"]
6)
7
8let (apiRes, httpRes) = client.updateFeedPost(
9 tenantId = "my-tenant-123",
10 id = "post-456",
11 feedPost = feedPost
12)
13
14if apiRes.isSome:
15 let res = apiRes.get()
16

ืขื“ื›ื•ืŸ ืคื•ืกื˜ ื‘ืคื™ื“ (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
postIdstringNo
updateFeedPostParamsUpdateFeedPostParamsNo
optionsUpdateFeedPostPublicOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateFeedPostResponse]

ื“ื•ื’ืžื”

updateFeedPostPublic ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.updateFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-789",
5 updateFeedPostParams = UpdateFeedPostParams(),
6 options = UpdateFeedPostPublicOptions()
7)
8
9if response.isSome:
10 let post = response.get()
11

ื“ื™ื•ื•ื— ืขืœ ืชื’ื•ื‘ื” (ืฆื™ื‘ื•ืจื™) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
isFlaggedboolืœื
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœ-flagCommentPublic
Copy Copy
1
2let (optResp, httpResp) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 isFlagged = true,
6 sso = ""
7)
8
9if optResp.isSome:
10 let empty = optResp.get()
11 discard empty
12

ืงื‘ืœืช GIF ื’ื“ื•ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
largeInternalURLSanitizedstringNo

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GifGetLargeResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ getGifLarge
Copy Copy
1
2let (gifOpt, httpResp) = client.getGifLarge(
3 tenantId = "my-tenant-123",
4 largeInternalURLSanitized = "https://cdn.example.com/gifs/large123.gif")
5if gifOpt.isSome:
6 let gif = gifOpt.get()
7 echo gif
8

ื—ื™ืคื•ืฉ GIFื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
searchstringืœื
optionsGetGifsSearchOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetGifsSearchResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getGifsSearch
Copy Copy
1
2let opts = GetGifsSearchOptions(limit = 10, rating = "g")
3let (responseOpt, httpResponse) = client.getGifsSearch(tenantId = "my-tenant-123", search = "funny cats", options = opts)
4if responseOpt.isSome:
5 let resp = responseOpt.get()
6 # ื”ืฉืชืžืฉ ื‘ืชื’ื•ื‘ื” ืœืคื™ ื”ืฆื•ืจืš
7

ืงื‘ืœืช GIFื™ื ืคื•ืคื•ืœืจื™ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetGifsTrendingOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetGifsTrendingResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getGifsTrending
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getGifsTrending(
3 tenantId = "my-tenant-123",
4 options = GetGifsTrendingOptions()
5)
6
7if maybeResponse.isSome:
8 let gifs = maybeResponse.get()
9 echo gifs
10

ื”ื•ืกืคืช ื”ืืฉื˜ืื’ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createHashTagBodyCreateHashTagBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateHashTagResponse]

ื“ื•ื’ืžื”

addHashTag ื“ื•ื’ืžื”
Copy Copy
1
2let (hashTagOpt, httpResp) = client.addHashTag(
3 tenantId = "my-tenant-123",
4 createHashTagBody = CreateHashTagBody(),
5)
6
7if hashTagOpt.isSome:
8 let tag = hashTagOpt.get()
9

ื”ื•ืกืคืช ื”ืืฉื˜ืื’ื™ื ื‘ืืฆื•ื•ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื“ืจื•ืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
bulkCreateHashTagsBodyBulkCreateHashTagsBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[BulkCreateHashTagsResponse]

ื“ื•ื’ืžื”

addHashTagsBulk ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.addHashTagsBulk(
3 tenantId = "my-tenant-123",
4 bulkCreateHashTagsBody = BulkCreateHashTagsBody(
5 hashTags = @["news", "technology"]
6 )
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11

ืžื—ื™ืงืช ื”ืืฉื˜ืื’ Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
tagstringNo
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

Response

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

Example

deleteHashTag ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResp, httpResp) = client.deleteHashTag(tenantId = "my-tenant-123", tag = "sports", deleteHashTagRequestBody = DeleteHashTagRequestBody())
3if apiResp.isSome:
4 let emptyResp = apiResp.get()
5

ืงื‘ืœืช ื”ืืฉื˜ืื’ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
pagefloat64ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetHashTagsResponse]

ื“ื•ื’ืžื”

getHashTags ื“ื•ื’ืžื”
Copy Copy
1
2let (hashTagsOpt, httpResp) = client.getHashTags(tenantId = "my-tenant-123", page = 0.0)
3if hashTagsOpt.isSome:
4 let hashTags = hashTagsOpt.get()
5 echo hashTags
6else:
7 echo "No hashtags found"
8

ืขื“ื›ื•ืŸ ื—ืœืงื™ ืฉืœ ื”ืืฉื˜ืื’ Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
tagstringืœื
updateHashTagBodyUpdateHashTagBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UpdateHashTagResponse]

ื“ื•ื’ืžื”

patchHashTag ื“ื•ื’ืžื”
Copy Copy
1
2let updateBody = UpdateHashTagBody()
3let (optResp, httpResp) = client.patchHashTag(
4 tenantId = "my-tenant-123",
5 tag = "news",
6 updateHashTagBody = updateBody
7)
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11else:
12 echo "No response"
13

ืžื—ื™ืงืช ื”ืฆื‘ืขืช ืžื•ื“ืจืฆื™ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
voteIdstringNo
optionsDeleteModerationVoteOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteDeleteResponse]

ื“ื•ื’ืžื”

deleteModerationVote ื“ื•ื’ืžื”
Copy Copy
1
2let (respOpt, httpResp) = client.deleteModerationVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 voteId = "vote-abc123",
6 options = DeleteModerationVoteOptions()
7)
8
9if respOpt.isSome:
10 let resp = respOpt.get()
11

ืงื‘ืœืช ืชื’ื•ื‘ื•ืช ื“ืจืš ื”-API Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetApiCommentsOptionsNo

Response

ืžื—ื–ื™ืจ: Option[ModerationAPIGetCommentsResponse]

Example

ื“ื•ื’ืžืช getApiComments
Copy Copy
1
2let (maybeResp, httpResp) = client.getApiComments(tenantId = "my-tenant-123", options = GetApiCommentsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 # ื ื™ืชืŸ ืœื‘ืฆืข ืขื™ื‘ื•ื“ ื ื•ืกืฃ ืขื `resp`
6

ืงื‘ืœืช ืกื˜ื˜ื•ืก ื™ื™ืฆื•ื API Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetApiExportStatusOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationExportStatusResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ getApiExportStatus
Copy Copy
1
2let (exportStatusOpt, httpResp) = client.getApiExportStatus(
3 tenantId = "my-tenant-123",
4 options = GetApiExportStatusOptions()
5)
6if exportStatusOpt.isSome:
7 let exportStatus = exportStatusOpt.get()
8 # ื”ืฉืชืžืฉ ื‘โ€‘exportStatus ืœืคื™ ื”ืฆื•ืจืš
9

ืงื‘ืœืช ืžื–ื”ื™ API Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetApiIdsOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationAPIGetCommentIdsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getApiIds
Copy Copy
1
2let opts = GetApiIdsOptions()
3let (maybeResponse, httpResponse) = client.getApiIds(tenantId = "my-tenant-123", options = opts)
4if maybeResponse.isSome:
5 let response = maybeResponse.get()
6 echo response
7

ืงื‘ืœืช ืžืฉืชืžืฉื™ื ืฉื ื—ืกืžื• ืžืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetBannedUsersFromCommentResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getBanUsersFromComment
Copy Copy
1
2let (response, httpResponse) = client.getBanUsersFromComment(tenantId = "my-tenant-001", commentId = "cmt-123456", sso = "")
3if response.isSome:
4 let banInfo = response.get()
5 echo banInfo
6

ืงื‘ืœืช ืกื˜ื˜ื•ืก ื—ืกื™ืžืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetCommentBanStatusResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getCommentBanStatus
Copy Copy
1
2let (banStatusOpt, httpResp) = client.getCommentBanStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 sso = "")
6
7if banStatusOpt.isSome:
8 let banStatus = banStatusOpt.get()
9 echo banStatus
10

ืงื‘ืœืช ืชื’ื™ื•ืช-ื‘ื ื•ืช ืฉืœ ืชื’ื•ื‘ื” Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
ssostring = ""ืœื

Response

ืžื—ื–ื™ืจ: Option[ModerationAPIChildCommentsResponse]

Example

ื“ื•ื’ืžืช getCommentChildren
Copy Copy
1
2let (childRespOpt, httpResp) = client.getCommentChildren(tenantId = "my-tenant-123", commentId = "cmt-456789", sso = "")
3if childRespOpt.isSome:
4 let childResp = childRespOpt.get()
5 echo childResp
6

ืงื‘ืœืช ืกืคื™ืจื” Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetCountOptionsNo

Response

ืžื—ื–ื™ืจ: Option[ModerationAPICountCommentsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getCount
Copy Copy
1
2let (countOpt, httpResponse) = client.getCount(tenantId = "my-tenant-123", options = GetCountOptions())
3if countOpt.isSome:
4 let count = countOpt.get()
5

ืงื‘ืœืช ืกืคื™ืจื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetBannedUsersCountResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getCounts
Copy Copy
1
2let (maybeCounts, httpRes) = client.getCounts(tenantId = "my-tenant-123", sso = "")
3if maybeCounts.isSome:
4 let counts = maybeCounts.get()
5 echo counts
6else:
7 echo "No counts returned"
8

ืงื‘ืœืช ืœื•ื’ื™ื Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
ssostring = ""ืœื

Response

ืžื—ื–ื™ืจ: Option[ModerationAPIGetLogsResponse]

Example

getLogs ื“ื•ื’ืžื”
Copy Copy
1
2let (logsOpt, httpRes) = client.getLogs(tenantId = "my-tenant-123", commentId = "cmt-789", sso = "")
3if logsOpt.isSome:
4 let logs = logsOpt.get()
5 echo logs
6

ืงื‘ืœืช ืชื’ื™ ื™ื“ื ื™ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantManualBadgesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getManualBadges
Copy Copy
1
2let (manualBadgesOpt, httpResponse) = client.getManualBadges(tenantId = "my-tenant-123", sso = "")
3if manualBadgesOpt.isSome:
4 let manualBadges = manualBadgesOpt.get()
5 echo manualBadges
6

ืงื‘ืœืช ืชื’ื™ ื™ื“ื ื™ื™ื ืขื‘ื•ืจ ืžืฉืชืžืฉ Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringื›ืŸ
optionsGetManualBadgesForUserOptionsืœื

Response

ืžื—ื–ื™ืจ: Option[GetUserManualBadgesResponse]

Example

ื“ื•ื’ืžืช getManualBadgesForUser
Copy Copy
1
2let (userBadgesOpt, httpResp) = client.getManualBadgesForUser(
3 tenantId = "my-tenant-123",
4 options = GetManualBadgesForUserOptions()
5)
6if userBadgesOpt.isSome:
7 let badges = userBadgesOpt.get()
8 echo badges
9

ืงื‘ืœืช ืชื’ื™ื™ืช ืžื•ื“ืจืฆื™ื” Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsGetModerationCommentOptionsNo

Response

ืžื—ื–ื™ืจ: Option[ModerationAPICommentResponse]

Example

ื“ื•ื’ืžืช getModerationComment
Copy Copy
1
2let (maybeComment, httpResponse) = client.getModerationComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(GetModerationCommentOptions)
6)
7
8if maybeComment.isSome:
9 let comment = maybeComment.get()
10 echo comment
11

ืงื‘ืœืช ื˜ืงืกื˜ ืชื’ื™ื™ืช ืžื•ื“ืจืฆื™ื” Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[GetCommentTextResponse]

ื“ื•ื’ืžื”

getModerationCommentText ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.getModerationCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456abc",
5 sso = ""
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

ืงื‘ืœืช ืกื™ื›ื•ื ื˜ืจื ื—ืกื™ืžื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
optionsGetPreBanSummaryOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PreBanSummary]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getPreBanSummary
Copy Copy
1
2let (preBanSummaryOpt, httpResponse) = client.getPreBanSummary(tenantId = "my-tenant-123", commentId = "cmt-456", options = GetPreBanSummaryOptions())
3if preBanSummaryOpt.isSome:
4 let summary = preBanSummaryOpt.get()
5

ืงื‘ืœืช ืกื™ื›ื•ื ื—ื™ืคื•ืฉ ืชื’ื•ื‘ื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
optionsGetSearchCommentsSummaryOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationCommentSearchResponse]

ื“ื•ื’ืžื”

getSearchCommentsSummary ื“ื•ื’ืžื”
Copy Copy
1
2let (summaryOpt, httpResp) = client.getSearchCommentsSummary(
3 tenantId = "my-tenant-123",
4 options = GetSearchCommentsSummaryOptions()
5)
6
7if summaryOpt.isSome:
8 let summary = summaryOpt.get()
9 echo summary
10

ืงื‘ืœืช ื“ืคื™ ื—ื™ืคื•ืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetSearchPagesOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationPageSearchResponse]

ื“ื•ื’ืžื”

getSearchPages ื“ื•ื’ืžื”
Copy Copy
1
2let (searchResp, httpResp) = client.getSearchPages(
3 tenantId = "my-tenant-123",
4 options = GetSearchPagesOptions(
5 page: 1,
6 pageSize: 20,
7 query: "spam"
8 )
9)
10
11if searchResp.isSome:
12 let resp = searchResp.get()
13

ืงื‘ืœืช ืืชืจื™ ื—ื™ืคื•ืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetSearchSitesOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationSiteSearchResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getSearchSites
Copy Copy
1
2let (searchResult, httpResp) = client.getSearchSites(tenantId = "my-tenant-123", options = GetSearchSitesOptions())
3if searchResult.isSome:
4 let siteResp = searchResult.get()
5

ืงื‘ืœืช ื”ืฆืขื•ืช ื—ื™ืคื•ืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetSearchSuggestOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationSuggestResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘getSearchSuggest
Copy Copy
1
2let (suggestOpt, httpResp) = client.getSearchSuggest(
3 tenantId = "my-tenant-123",
4 options = GetSearchSuggestOptions(),
5)
6
7if suggestOpt.isSome:
8 let suggest = suggestOpt.get()
9 echo suggest
10

ืงื‘ืœืช ืžืฉืชืžืฉื™ื ื‘ื—ื™ืคื•ืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetSearchUsersOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationUserSearchResponse]

ื“ื•ื’ืžื”

getSearchUsers ื“ื•ื’ืžื”
Copy Copy
1
2let (searchRes, httpRes) = client.getSearchUsers(tenantId = "my-tenant-123", options = default(GetSearchUsersOptions))
3if searchRes.isSome:
4 let data = searchRes.get()
5 echo data
6

ืงื‘ืœืช ืžื“ื“ ืืžื•ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetTrustFactorOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetUserTrustFactorResponse]

ื“ื•ื’ืžื”

getTrustFactor ื“ื•ื’ืžื”
Copy Copy
1
2let (trustOpt, httpResp) = client.getTrustFactor(tenantId = "my-tenant-123", options = GetTrustFactorOptions())
3if trustOpt.isSome:
4 let trust = trustOpt.get()
5 discard trust
6

ืงื‘ืœืช ื”ืขื“ืคืช ื—ืกื™ืžืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIModerateGetUserBanPreferencesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getUserBanPreference
Copy Copy
1
2let (maybePref, httpResp) = client.getUserBanPreference(tenantId = "my-tenant-123", sso = "")
3if maybePref.isSome:
4 let pref = maybePref.get()
5 echo pref
6

ืงื‘ืœืช ืคืจื•ืคื™ืœ ืคื ื™ืžื™ ืฉืœ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetUserInternalProfileOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetUserInternalProfileResponse]

ื“ื•ื’ืžื”

getUserInternalProfile ื“ื•ื’ืžื”
Copy Copy
1
2let (profileOpt, httpResp) = client.getUserInternalProfile(
3 tenantId = "my-tenant-123",
4 options = GetUserInternalProfileOptions()
5)
6
7if profileOpt.isSome:
8 let profile = profileOpt.get()
9

ื”ืชืืžืช ื”ืฆื‘ืขื•ืช ืขืœ ืชื’ื•ื‘ื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsNo
optionsPostAdjustCommentVotesOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AdjustVotesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘postAdjustCommentVotes
Copy Copy
1
2let (adjustRespOpt, httpResp) = client.postAdjustCommentVotes(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-789",
5 adjustCommentVotesParams = AdjustCommentVotesParams(),
6 options = PostAdjustCommentVotesOptions()
7)
8
9if adjustRespOpt.isSome:
10 let adjustResp = adjustRespOpt.get()
11

ื‘ื™ืฆื•ืข ื™ื™ืฆื•ื ื“ืจืš ื”-API Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsPostApiExportOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationExportResponse]

ื“ื•ื’ืžื”

postApiExport ื“ื•ื’ืžื”
Copy Copy
1
2let (optExport, httpResp) = client.postApiExport(tenantId = "my-tenant-123", options = PostApiExportOptions())
3if optExport.isSome:
4 let export = optExport.get()
5 echo export
6

ื”ื˜ืœืช ื—ืกื™ืžื” ืขืœ ืžืฉืชืžืฉ ืžืชื•ืš ืชื’ื•ื‘ื” Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
optionsPostBanUserFromCommentOptionsืœื

Response

ืžื—ื–ื™ืจ: Option[BanUserFromCommentResult]

Example

postBanUserFromComment ื“ื•ื’ืžื”
Copy Copy
1
2let (banResult, httpResp) = client.postBanUserFromComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 options = PostBanUserFromCommentOptions()
6)
7
8if banResult.isSome:
9 let result = banResult.get()
10 echo result
11

ื‘ื™ื˜ื•ืœ ื—ืกื™ืžืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช postBanUserUndo
Copy Copy
1
2let (apiResp, httpResp) = client.postBanUserUndo(
3 tenantId = "my-tenant-123",
4 banUserUndoParams = BanUserUndoParams(userId = "user-456"),
5 sso = ""
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10

ื‘ื™ืฆื•ืข ืืฆื•ื•ื” ืฉืœ ืกื™ื›ื•ื ื˜ืจื ื—ืกื™ืžื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsNo
optionsPostBulkPreBanSummaryOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[BulkPreBanSummary]

ื“ื•ื’ืžื”

postBulkPreBanSummary ื“ื•ื’ืžื”
Copy Copy
1
2let bulkParams = BulkPreBanParams(emailAddresses: @["spam@example.com"], ipAddresses: @["203.0.113.5"])
3let opt = PostBulkPreBanSummaryOptions(dryRun: false, maxResults: 0)
4let (summaryOpt, httpResp) = client.postBulkPreBanSummary(tenantId = "my-tenant-123", bulkPreBanParams = bulkParams, options = opt)
5if summaryOpt.isSome:
6 let _ = summaryOpt.get()
7

ืงื‘ืœืช ืชื’ื•ื‘ื•ืช ืœืคื™ ืžื–ื”ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื—ื•ืฅืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentsByIdsParamsCommentsByIdsParamsืœื
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ModerationAPIChildCommentsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช postCommentsByIds
Copy Copy
1
2let tenantId = "my-tenant-123"
3let params = CommentsByIdsParams(commentIds = @["cmt-001", "cmt-002"])
4let (maybeResp, httpResp) = client.postCommentsByIds(tenantId = tenantId, commentsByIdsParams = params, sso = "")
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7 # ื”ืฉืชืžืฉ ื‘ืชื’ื•ื‘ื” ืœืคื™ ื”ืฆื•ืจืš
8

ืกื™ืžื•ืŸ ืชื’ื•ื‘ื” (POST) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
optionsPostFlagCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

postFlagComment ื“ื•ื’ืžื”
Copy Copy
1
2let opts = PostFlagCommentOptions()
3let (response, httpResponse) = client.postFlagComment(
4 tenantId = "my-tenant-123",
5 commentId = "comment-987654",
6 options = opts,
7)
8if response.isSome:
9 let result = response.get()
10

ื”ืกืจืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
optionsPostRemoveCommentOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PostRemoveCommentApiResponse]

ื“ื•ื’ืžื”

postRemoveComment ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResponseOpt, httpResp) = client.postRemoveComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 options = PostRemoveCommentOptions()
6)
7
8if apiResponseOpt.isSome:
9 let apiResponse = apiResponseOpt.get()
10

ืฉื—ื–ื•ืจ ืชื’ื•ื‘ื” ืฉื ืžื—ืงื” Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
optionsPostRestoreDeletedCommentOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช postRestoreDeletedComment
Copy Copy
1
2let (respOpt, httpResp) = client.postRestoreDeletedComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = default(PostRestoreDeletedCommentOptions)
6)
7
8if respOpt.isSome:
9 let empty = respOpt.get()
10 echo "Comment restored"
11

ื”ื’ื“ืจืช ืกื˜ื˜ื•ืก ืื™ืฉื•ืจ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentApprovalStatusOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[SetCommentApprovedResponse]

ื“ื•ื’ืžื”

postSetCommentApprovalStatus ื“ื•ื’ืžื”
Copy Copy
1
2let (approvedOpt, httpResp) = client.postSetCommentApprovalStatus(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 options = PostSetCommentApprovalStatusOptions()
6)
7
8if approvedOpt.isSome:
9 let approved = approvedOpt.get()
10 echo approved
11

ื”ื’ื“ืจืช ืกื˜ื˜ื•ืก ืกืงื™ืจืช ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
optionsPostSetCommentReviewStatusOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

postSetCommentReviewStatus ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResp, httpResp) = client.postSetCommentReviewStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-7890",
5 options = PostSetCommentReviewStatusOptions()
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10 discard
11else:
12 discard
13

ื”ื’ื“ืจืช ืกื˜ื˜ื•ืก ื“ื•ืืจ ื–ื‘ืœ ืœืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentSpamStatusOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

postSetCommentSpamStatus ื“ื•ื’ืžื”
Copy Copy
1
2let defaultOpts = PostSetCommentSpamStatusOptions()
3let (maybeResp, httpResp) = client.postSetCommentSpamStatus(tenantId = "my-tenant-123", commentId = "cmt-456789", options = defaultOpts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6

ื”ื’ื“ืจืช ื˜ืงืกื˜ ืฉืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsNo
optionsPostSetCommentTextOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[SetCommentTextResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช postSetCommentText
Copy Copy
1
2let (responseOpt, httpResponse) = client.postSetCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 setCommentTextParams = SetCommentTextParams(),
6 options = PostSetCommentTextOptions()
7)
8
9if responseOpt.isSome:
10 let updatedComment = responseOpt.get()
11

ื‘ื™ื˜ื•ืœ ื“ื™ื•ื•ื— ืขืœ ืชื’ื•ื‘ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
optionsPostUnFlagCommentOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

postUnFlagComment ื“ื•ื’ืžื”
Copy Copy
1
2let (maybeResp, httpResp) = client.postUnFlagComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(PostUnFlagCommentOptions)
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

ื”ืฆื‘ืขื” (POST) Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
commentIdstringYes
optionsPostVoteOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ postVote
Copy Copy
1
2let (voteOpt, httpResp) = client.postVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-789",
5 options = default(PostVoteOptions)
6)
7
8if voteOpt.isSome:
9 let vote = voteOpt.get()
10

ื”ืขื ืงืช ืชื’ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
badgeIdstringNo
optionsPutAwardBadgeOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AwardUserBadgeResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช putAwardBadge
Copy Copy
1
2let (response, httpResponse) = client.putAwardBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "gold-badge",
5 options = PutAwardBadgeOptions()
6)
7
8if response.isSome:
9 let award = response.get()
10

ืกื’ื™ืจืช ืฉืจืฉื•ืจ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืื˜ื™ืคื•ืกื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช putCloseThread
Copy Copy
1
2let (respOpt, httpResp) = client.putCloseThread(tenantId = "my-tenant-123", urlId = "news/fastcomments-integration", sso = "")
3if respOpt.isSome:
4 let empty = respOpt.get()
5 echo "Thread successfully closed"
6

ื”ืกืจืช ืชื’ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
badgeIdstringืœื
optionsPutRemoveBadgeOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[RemoveUserBadgeResponse]

ื“ื•ื’ืžื”

putRemoveBadge ื“ื•ื’ืžื”
Copy Copy
1
2let (maybeResp, httpResp) = client.putRemoveBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "badge-456",
5 options = PutRemoveBadgeOptions()
6)
7
8if maybeResp.isSome:
9 let badgeResp = maybeResp.get()
10

ืคืชื™ื—ืช ืฉืจืฉื•ืจ ืžื—ื“ืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช putReopenThread
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putReopenThread(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 sso = ""
6)
7
8if apiRespOpt.isSome:
9 let emptyResp = apiRespOpt.get()
10 discard
11

ื”ื’ื“ืจืช ืžื“ื“ ืืžื•ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsSetTrustFactorOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[SetUserTrustFactorResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช setTrustFactor
Copy Copy
1
2let opts = SetTrustFactorOptions(userId = "user-456", trustFactor = 5, reason = "spam detection")
3let (trustResponse, httpResponse) = client.setTrustFactor(tenantId = "my-tenant-123", options = opts)
4if trustResponse.isSome:
5 let result = trustResponse.get()
6

ื™ืฆื™ืจืช ืžืžื•ื ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
createModeratorBodyCreateModeratorBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateModeratorResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createModerator
Copy Copy
1
2let (moderatorRes, httpResp) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = CreateModeratorBody())
3if moderatorRes.isSome:
4 let moderator = moderatorRes.get()
5

ืžื—ื™ืงืช ืžืžื•ื ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
sendEmailstring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteModerator ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResp, httpResp) = client.deleteModerator(
3 tenantId = "my-tenant-123",
4 id = "mod-789",
5 sendEmail = "admin@mydomain.com",
6)
7
8if apiResp.isSome:
9 let empty = apiResp.get()
10 echo "Moderator removed"
11

ืงื‘ืœืช ืžืžื•ื ื” Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

Response

ืžื—ื–ื™ืจ: Option[GetModeratorResponse]

Example

ื“ื•ื’ืžืช getModerator
Copy Copy
1
2let (moderatorOpt, httpResponse) = client.getModerator(tenantId = "my-tenant-123", id = "moderator-456")
3if moderatorOpt.isSome:
4 let moderator = moderatorOpt.get()
5 discard moderator
6

ืงื‘ืœืช ืžืžื•ื ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
skipfloat64No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetModeratorsResponse]

ื“ื•ื’ืžื”

getModerators ื“ื•ื’ืžื”
Copy Copy
1
2let (moderatorsOpt, httpResp) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if moderatorsOpt.isSome:
4 let moderators = moderatorsOpt.get()
5 echo moderators
6

ืขื“ื›ื•ืŸ ืžืžื•ื ื” Internal Link

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateModeratorBodyUpdateModeratorBodyNo

ืชื’ื•ื‘ื”

Returns: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateModerator
Copy Copy
1
2let body = UpdateModeratorBody(name = "John Doe", email = "john@example.com", isActive = true)
3let (apiResult, httpResp) = client.updateModerator(tenantId = "my-tenant-123", id = "mod-456", updateModeratorBody = body)
4if apiResult.isSome:
5 let result = apiResult.get()
6

ืžื—ื™ืงืช ืกืคื™ืจืช ื”ืชืจืื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteNotificationCount
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if apiRespOpt.isSome:
4 let _ = apiRespOpt.get()
5

ืงื‘ืœืช ืกืคื™ืจืช ื”ืชืจืื•ืช ืžื˜ืžื•ืŸ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[GetCachedNotificationCountResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ getCachedNotificationCount
Copy Copy
1
2let (cachedCountOpt, httpResp) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "article-456")
3if cachedCountOpt.isSome:
4 let cachedCount = cachedCountOpt.get()
5 echo cachedCount
6

ืงื‘ืœืช ืกืคื™ืจืช ื”ืชืจืื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetNotificationCountOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetNotificationCountResponse]

ื“ื•ื’ืžื”

getNotificationCount ื“ื•ื’ืžื”
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotificationCount(tenantId = "my-tenant-123", options = GetNotificationCountOptions())
3if notifOpt.isSome:
4 let notif = notifOpt.get()
5 echo notif
6

ืงื‘ืœืช ื”ืชืจืื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
optionsGetNotificationsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetNotificationsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getNotifications
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotifications(tenantId = "my-tenant-123", options = GetNotificationsOptions())
3if notifOpt.isSome:
4 let notifications = notifOpt.get()
5

ืขื“ื›ื•ืŸ ื”ืชืจืื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
updateNotificationBodyUpdateNotificationBodyNo
userIdstring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateNotification
Copy Copy
1
2let body = UpdateNotificationBody(message: "Your comment was approved", isRead: false)
3let (optResp, httpResp) = client.updateNotification(
4 tenantId = "my-tenant-123",
5 id = "notif-789",
6 updateNotificationBody = body,
7 userId = "user-42"
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

ื™ืฆื™ืจืช ืชื’ื•ื‘ืช ื“ืฃ V1 Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
titlestring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateV1PageReact]

ื“ื•ื’ืžื”

createV1PageReact ื“ื•ื’ืžื”
Copy Copy
1
2let (pageOpt, httpResp) = client.createV1PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 title = "Breaking News: Nim Takes Over"
6)
7
8if pageOpt.isSome:
9 let page = pageOpt.get()
10 discard page
11 discard httpResp
12

ื™ืฆื™ืจืช ืชื’ื•ื‘ืช ื“ืฃ V2 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes
idstringNo
titlestring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[CreateV1PageReact]

ื“ื•ื’ืžื”

createV2PageReact ื“ื•ื’ืžื”
Copy Copy
1
2let (pageResult, httpResponse) = client.createV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "page-456",
6 title = "Breaking News",
7)
8
9if pageResult.isSome:
10 let page = pageResult.get()
11 # ื”ืฉืชืžืฉ ื‘-`page` ืœืคื™ ื”ืฆื•ืจืš
12

ืžื—ื™ืงืช ืชื’ื•ื‘ืช ื“ืฃ V1 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateV1PageReact]

ื“ื•ื’ืžื”

deleteV1PageReact ื“ื•ื’ืžื”
Copy Copy
1
2let (reactOpt, httpResp) = client.deleteV1PageReact(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactOpt.isSome:
4 let react = reactOpt.get()
5

ืžื—ื™ืงืช ืชื’ื•ื‘ืช ื“ืฃ V2 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateV1PageReact]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” deleteV2PageReact
Copy Copy
1
2let (maybeReact, httpResp) = client.deleteV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "react-456",
6)
7
8if maybeReact.isSome:
9 let react = maybeReact.get()
10 echo react
11

ืงื‘ืœืช ืœื™ื™ืงื™ื ืœืขืžื•ื“ V1 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetV1PageLikes]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘getV1PageLikes
Copy Copy
1
2let (response, httpResponse) = client.getV1PageLikes(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let pageLikes = response.get()
5 # ื”ืฉืชืžืฉ ื‘โ€‘pageLikes ืœืคื™ ื”ืฆื•ืจืš
6

ืงื‘ืœืช ืจื™ืืงื˜ื™ื ืœืขืžื•ื“ V2 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetV2PageReacts]

ื“ื•ื’ืžื”

getV2PageReacts ื“ื•ื’ืžื”
Copy Copy
1
2let (reactsOpt, httpResp) = client.getV2PageReacts(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactsOpt.isSome:
4 let reacts = reactsOpt.get()
5 echo reacts
6

ืงื‘ืœืช ืžืฉืชืžืฉื™ ืจื™ืืงื˜ื™ื ืœืขืžื•ื“ V2 Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetV2PageReactUsersResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื getV2PageReactUsers
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getV2PageReactUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "user-456"
6)
7
8if maybeResponse.isSome:
9 let resp = maybeResponse.get()
10 echo resp
11

ื”ื•ืกืคืช ืขืžื•ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createAPIPageDataCreateAPIPageDataืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AddPageAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช addPage
Copy Copy
1
2let pageData = CreateAPIPageData(
3 urlId = "news/article-2024",
4 title = "Breaking News: Nim Takes Over",
5 description = "An in-depth article about Nim's rise.",
6 tags = @["nim", "programming", "news"]
7)
8
9let (addPageResp, httpResp) = client.addPage(
10 tenantId = "my-tenant-123",
11 createAPIPageData = pageData
12)
13
14if addPageResp.isSome:
15 let resp = addPageResp.get()
16 echo resp
17

ืžื—ื™ืงืช ืขืžื•ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[DeletePageAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deletePage
Copy Copy
1
2let (deleteRespOpt, httpResp) = client.deletePage(tenantId = "my-tenant-123", id = "news/article-title")
3if deleteRespOpt.isSome:
4 let deleteResp = deleteRespOpt.get()
5 discard deleteResp
6discard httpResp
7

ืงื‘ืœืช ืžืฉืชืžืฉื™ื ืœื ืžืงื•ื•ื ื™ื Internal Link


ื”ืžืชื’ื™ืจื™ื ื”ืงื•ื“ืžื™ื ื‘ื“ืฃ ืฉืื™ื ื ืžื—ื•ื‘ืจื™ื ื›ืขืช. ืžืžื•ื™ืŸ ืœืคื™ displayName.
ื”ืฉืชืžืฉ ื‘ื–ื” ืœืื—ืจ ืฉื ื™ืฆืœื• /users/online ื›ื“ื™ ืœื”ืฆื™ื’ ื—ืœืง "Members".
ื“ืฃ ืื™ื ื“ืงืก ืขื cursor ืขืœ commenterName: ื”ืฉืจืช ืžืชื ื”ืœ ืขืœ ื”ื—ืœืง ื”ื—ืœืงื™ {tenantId, urlId, commenterName}
ืžืื™ื ื“ืงืก ืื—ืจื™ ืฉื ื‘ืืžืฆืขื•ืช $gt, ืœืœื ืขืœื•ืช $skip.

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsGetOfflineUsersOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PageUsersOfflineResponse]

ื“ื•ื’ืžื

ื“ื•ื’ืžืช getOfflineUsers
Copy Copy
1
2let (offlineResp, httpResponse) = client.getOfflineUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetOfflineUsersOptions()
6)
7if offlineResp.isSome:
8 let offline = offlineResp.get()
9 echo offline)
10

ืงื‘ืœืช ืžืฉืชืžืฉื™ื ืžืงื•ื•ื ื™ื Internal Link

ืฆื•ืคื™ื ืžืงื•ื•ื ื™ื ืฉืœ ื“ืฃ: ืื ืฉื™ื ืฉื”ื—ื™ื‘ื•ืจ WebSocket ืฉืœื”ื ืžื ื•ื™ ืœื“ืฃ ื‘ืจื’ืข ื–ื”. ืžื—ื–ื™ืจ anonCount + totalCount (ืžื ื•ื™ื™ื ื‘ื—ื“ืจ ื›ื•ืœื•, ื›ื•ืœืœ ืฆื•ืคื™ ืื ื•ื ื™ืžื™ ืฉืื™ื ื ื ืกืคืจื™ื).

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes
optionsGetOnlineUsersOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PageUsersOnlineResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getOnlineUsers
Copy Copy
1
2let opts = GetOnlineUsersOptions()
3let (onlineUsersOpt, httpResp) = client.getOnlineUsers(tenantId = "my-tenant-123", urlId = "news/article-title", options = opts)
4if onlineUsersOpt.isSome:
5 let onlineUsers = onlineUsersOpt.get()
6 echo onlineUsers
7

ืงื‘ืœืช ืขืžื•ื“ ืœืคื™ URL/ID Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetPageByURLIdAPIResponse]

ื“ื•ื’ืžื”

getPageByURLId ื“ื•ื’ืžื”
Copy Copy
1
2let (pageOpt, httpRes) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title")
3if pageOpt.isSome:
4 let page = pageOpt.get()
5 echo page
6

ืงื‘ืœืช ื“ืคื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetPagesAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getPages
Copy Copy
1
2let (pagesOpt, httpResp) = client.getPages(tenantId = "my-tenant-123")
3if pagesOpt.isSome:
4 let pages = pagesOpt.get()
5 echo pages
6else:
7 echo "No pages returned"
8echo httpResp
9

ืงื‘ืœืช ื“ืคื™ื (ืฆื™ื‘ื•ืจื™) Internal Link

ืจืฉื™ืžืช ื“ืคื™ื ืขื‘ื•ืจ ืฉื•ื›ืจ. ืžืฉืžืฉ ืืช ืœืงื•ื— ื”โ€‘desktop ืฉืœ FChat ืœืžืœื ืืช ืจืฉื™ืžืช ื”ื—ื“ืจื™ื ืฉืœื•. ื“ื•ืจืฉ enableFChat ืœื”ื™ื•ืช true ื‘ืชืฆื•ืจื” ื”ืžื•ืชืืžืช ืฉื ืคืชืจื” ืขื‘ื•ืจ ื›ืœ ื“ืฃ. ื“ืคื™ื ื”ื“ื•ืจืฉื™ื SSO ืžืกื•ื ื ื™ื ืขืœ ืคื™ ื’ื™ืฉืช ืงื‘ื•ืฆืช ื”ืžืฉืชืžืฉ ื”ืžื‘ืงืฉ.

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetPagesPublicOptionsืœื

Response

ืžื—ื–ื™ืจ: Option[GetPublicPagesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getPagesPublic
Copy Copy
1
2let (response, httpResponse) = client.getPagesPublic(tenantId = "my-tenant-123", options = GetPagesPublicOptions())
3if response.isSome:
4 let pages = response.get()
5 echo pages
6

ืงื‘ืœืช ืžื™ื“ืข ืขืœ ืžืฉืชืžืฉื™ื Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser.
Used by the comment widget to enrich users that just appeared via a presence event.
No page context: privacy is enforced uniformly (private profiles are masked).

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idsstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PageUsersInfoResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getUsersInfo
Copy Copy
1
2let (usersInfoOpt, httpResp) = client.getUsersInfo(tenantId = "my-tenant-123", ids = "user42")
3if usersInfoOpt.isSome:
4 let usersInfo = usersInfoOpt.get()
5

ืขื“ื›ื•ืŸ ื—ืœืงื™ ืฉืœ ืขืžื•ื“ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateAPIPageDataUpdateAPIPageDataืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PatchPageAPIResponse]

ื“ื•ื’ืžื”

patchPage ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.patchPage(
3 tenantId = "my-tenant-123",
4 id = "news/article-456",
5 updateAPIPageData = UpdateAPIPageData(title = "Updated article title", description = "Revised description")
6)
7
8if response.isSome:
9 let resp = response.get()
10

ืžื—ื™ืงืช ืื™ืจื•ืข Webhook ื‘ื”ืžืชื ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deletePendingWebhookEvent
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "event-456")
3if response.isSome:
4 let empty = response.get()
5

ืงื‘ืœืช ืžืกืคืจ ืื™ืจื•ืขื™ Webhook ื‘ื”ืžืชื ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetPendingWebhookEventCountOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetPendingWebhookEventCountResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getPendingWebhookEventCount
Copy Copy
1
2let (pendingCountOpt, httpResponse) = client.getPendingWebhookEventCount(tenantId = "my-tenant-123", options = GetPendingWebhookEventCountOptions())
3if pendingCountOpt.isSome:
4 let pendingCount = pendingCountOpt.get()
5 echo pendingCount
6

ืงื‘ืœืช ืื™ืจื•ืขื™ Webhook ื‘ื”ืžืชื ื” Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetPendingWebhookEventsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetPendingWebhookEventsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getPendingWebhookEvents
Copy Copy
1
2let (maybeResp, httpResp) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 options = GetPendingWebhookEventsOptions()
5)
6
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9

ื™ืฆื™ืจืช ื”ื’ื“ืจืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createQuestionConfigBodyCreateQuestionConfigBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateQuestionConfigResponse]

ื“ื•ื’ืžื”

createQuestionConfig ื“ื•ื’ืžื”
Copy Copy
1
2let configBody = CreateQuestionConfigBody()
3let (maybeResp, httpResp) = client.createQuestionConfig(
4 tenantId = "my-tenant-123",
5 createQuestionConfigBody = configBody,
6)
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9 # ื”ืฉืชืžืฉ ื‘ืชื’ื•ื‘ื” ืœืคื™ ื”ืฆื•ืจืš
10

ืžื—ื™ืงืช ื”ื’ื“ืจืช ืฉืืœื” Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteQuestionConfig ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResult, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "question-config-456")
3if apiResult.isSome:
4 let empty = apiResult.get()
5

ืงื‘ืœืช ื”ื’ื“ืจืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetQuestionConfigResponse]

ื“ื•ื’ืžื”

getQuestionConfig ื“ื•ื’ืžื”
Copy Copy
1
2let (questionConfigOpt, httpResp) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "question-987")
3if questionConfigOpt.isSome:
4 let config = questionConfigOpt.get()
5 echo config
6

ืงื‘ืœืช ื”ื’ื“ืจื•ืช ืฉืืœื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
skipfloat64No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetQuestionConfigsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘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 configs
6

ืขื“ื›ื•ืŸ ื”ื’ื“ืจืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateQuestionConfigBodyUpdateQuestionConfigBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืฉืœ updateQuestionConfig
Copy Copy
1
2let (apiResp, httpResp) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7
8if apiResp.isSome:
9 let resp = apiResp.get()
10

ื™ืฆื™ืจืช ืชื•ืฆืืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateQuestionResultResponse]

ื“ื•ื’ืžื”

createQuestionResult ื“ื•ื’ืžื”
Copy Copy
1
2let tenantId = "my-tenant-123"
3let body = CreateQuestionResultBody()
4let (optResult, httpResp) = client.createQuestionResult(tenantId = tenantId, createQuestionResultBody = body)
5if optResult.isSome:
6 let result = optResult.get()
7 echo result
8

ืžื—ื™ืงืช ืชื•ืฆืืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteQuestionResult
Copy Copy
1
2let (maybeResult, httpResp) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if maybeResult.isSome:
4 let result = maybeResult.get()
5

ืงื‘ืœืช ืชื•ืฆืืช ืฉืืœื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetQuestionResultResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getQuestionResult
Copy Copy
1
2let (optResult, httpResp) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if optResult.isSome:
4 let result = optResult.get()
5 discard result
6

ืงื‘ืœืช ืชื•ืฆืื•ืช ืฉืืœื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
optionsGetQuestionResultsOptionsNo

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetQuestionResultsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getQuestionResults
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 options = GetQuestionResultsOptions()
5)
6
7if response.isSome:
8 let results = response.get()
9 echo results
10

ืขื“ื›ื•ืŸ ืชื•ืฆืืช ืฉืืœื” Internal Link


Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateQuestionResultBodyUpdateQuestionResultBodyืœื

Response

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœupdateQuestionResult
Copy Copy
1
2let (optResp, httpResp) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10

ืื’ืจื’ืฆื™ื™ืช ืชื•ืฆืื•ืช ืฉืืœื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsAggregateQuestionResultsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AggregateQuestionResultsResponse]

ื“ื•ื’ืžื”

aggregateQuestionResults ื“ื•ื’ืžื”
Copy Copy
1
2let opts = AggregateQuestionResultsOptions()
3let (aggResultOpt, httpResp) = client.aggregateQuestionResults(tenantId = "my-tenant-123", options = opts)
4if aggResultOpt.isSome:
5 let aggResult = aggResultOpt.get()
6

ืื’ืจื’ืฆื™ื” ื‘ื›ืžื•ืช ืœืชื•ืฆืื•ืช ืฉืืœื•ืช Internal Link

Parameters

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNo
forceRecalculateboolNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[BulkAggregateQuestionResultsResponse]

ื“ื•ื’ืžื”

bulkAggregateQuestionResults ื“ื•ื’ืžื”
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest()
3let (maybeResult, httpResp) = client.bulkAggregateQuestionResults(
4 tenantId = "my-tenant-123",
5 bulkAggregateQuestionResultsRequest = request,
6 forceRecalculate = false)
7
8if maybeResult.isSome:
9 let result = maybeResult.get()
10

ืฉื™ืœื•ื‘ ืชื’ื•ื‘ื•ืช ืขื ืชื•ืฆืื•ืช ืฉืืœื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsCombineCommentsWithQuestionResultsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CombineQuestionResultsWithCommentsResponse]

ื“ื•ื’ืžื”

combineCommentsWithQuestionResults ื“ื•ื’ืžื”
Copy Copy
1
2let (combineOpt, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 options = default(CombineCommentsWithQuestionResultsOptions)
5)
6
7if combineOpt.isSome:
8 let combineResult = combineOpt.get()
9

ื”ื•ืกืคืช ืžืฉืชืžืฉ SSO Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createAPISSOUserDataCreateAPISSOUserDataืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[AddSSOUserAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช addSSOUser
Copy Copy
1
2let (optResp, httpResp) = client.addSSOUser(tenantId = "my-tenant-123", createAPISSOUserData = CreateAPISSOUserData())
3if optResp.isSome:
4 let userResp = optResp.get()
5

ืžื—ื™ืงืช ืžืฉืชืžืฉ SSO Internal Link

Parameters

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
optionsDeleteSSOUserOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[DeleteSSOUserAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteSSOUser
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteSSOUserOptions()
6)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10

ืงื‘ืœืช ืžืฉืชืžืฉ SSO ืœืคื™ ืื™ืžื™ื™ืœ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
emailstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetSSOUserByEmailAPIResponse]

ื“ื•ื’ืžื”

getSSOUserByEmail ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "john.doe@example.com")
3if optResp.isSome:
4 let user = optResp.get()
5 discard user
6

ืงื‘ืœืช ืžืฉืชืžืฉ SSO ืœืคื™ ืžื–ื”ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetSSOUserByIdAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getSSOUserById
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserById(tenantId = "my-tenant-123", id = "user-456")
3if response.isSome:
4 let userInfo = response.get()
5 discard userInfo
6

ืงื‘ืœืช ืžืฉืชืžืฉื™ SSO Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
skipintืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetSSOUsersResponse]

ื“ื•ื’ืžื”

getSSOUsers ื“ื•ื’ืžื”
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getSSOUsers(tenantId = "my-tenant-123", skip = 0)
3if maybeResponse.isSome:
4 let users = maybeResponse.get()
5 echo users
6else:
7 echo "No SSO users found"
8echo httpResponse.statusCode
9

ืขื“ื›ื•ืŸ ื—ืœืงื™ ืฉืœ ืžืฉืชืžืฉ SSO Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateAPISSOUserDataUpdateAPISSOUserDataืœื
updateCommentsboolืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PatchSSOUserAPIResponse]

ื“ื•ื’ืžื”

patchSSOUser ื“ื•ื’ืžื”
Copy Copy
1
2let updateData = UpdateAPISSOUserData()
3let (responseOpt, httpResponse) = client.patchSSOUser(
4 tenantId = "my-tenant-123",
5 id = "user-789",
6 updateAPISSOUserData = updateData,
7 updateComments = true)
8if responseOpt.isSome:
9 let response = responseOpt.get()
10 echo response
11echo httpResponse.statusCode
12

ื”ื—ืœืคืช ืžืฉืชืžืฉ SSO Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateAPISSOUserDataUpdateAPISSOUserDataืœื
updateCommentsboolืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[PutSSOUserAPIResponse]

ื“ื•ื’ืžื”

putSSOUser ื“ื•ื’ืžื”
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateAPISSOUserData = default(UpdateAPISSOUserData),
6 updateComments = false)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10 echo apiResp
11

ื™ืฆื™ืจืช ืžื ื•ื™ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateSubscriptionAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createSubscription
Copy Copy
1
2let (respOpt, httpResp) = client.createSubscription(
3 tenantId = "my-tenant-123",
4 createAPIUserSubscriptionData = default(CreateAPIUserSubscriptionData),
5)
6
7if respOpt.isSome:
8 let resp = respOpt.get()
9

ืžื—ื™ืงืช ืžื ื•ื™ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
userIdstring = ""No

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[DeleteSubscriptionAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteSubscription
Copy Copy
1
2let (maybeResp, httpResp) = client.deleteSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-789",
5 userId = ""
6)
7
8if maybeResp.isSome:
9 let apiResult = maybeResp.get()
10 # ื”ืฉืชืžืฉ ื‘โ€‘apiResult ืœืคื™ ื”ืฆื•ืจืš
11

ืงื‘ืœืช ืžื ื•ื™ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
userIdstring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetSubscriptionsAPIResponse]

ื“ื•ื’ืžื”

getSubscriptions ื“ื•ื’ืžื”
Copy Copy
1
2let (subscriptionsOpt, httpResp) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "user-456")
3if subscriptionsOpt.isSome:
4 let subscriptions = subscriptionsOpt.get()
5 echo subscriptions
6

ืขื“ื›ื•ืŸ ืžื ื•ื™ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNo
userIdstring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UpdateSubscriptionAPIResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateSubscription
Copy Copy
1
2let subscriptionData = UpdateAPIUserSubscriptionData(
3 planId = "premium-plan",
4 isActive = true,
5 expiresAt = "2025-01-01",
6)
7
8let (responseOpt, httpResponse) = client.updateSubscription(
9 tenantId = "my-tenant-123",
10 id = "sub-456",
11 updateAPIUserSubscriptionData = subscriptionData,
12 userId = "user-789",
13)
14
15if responseOpt.isSome:
16 let subscriptionResult = responseOpt.get()
17

ืงื‘ืœืช ืฉื™ืžื•ืฉ ื™ื•ืžื™ ืฉืœ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetTenantDailyUsagesOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantDailyUsagesResponse]

ื“ื•ื’ืžื”

getTenantDailyUsages ื“ื•ื’ืžื”
Copy Copy
1
2let (respOpt, httpResp) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 options = default(GetTenantDailyUsagesOptions),
5)
6if respOpt.isSome:
7 let usage = respOpt.get()
8 echo usage
9 echo httpResp.statusCode
10

ื™ืฆื™ืจืช ื—ื‘ื™ืœืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[CreateTenantPackageResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘createTenantPackage
Copy Copy
1
2let (responseOpt, httpResponse) = client.createTenantPackage(
3 tenantId = "my-tenant-123",
4 createTenantPackageBody = CreateTenantPackageBody()
5)
6
7if responseOpt.isSome:
8 let response = responseOpt.get()
9

ืžื—ื™ืงืช ื—ื‘ื™ืœืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteTenantPackage ื“ื•ื’ืžื”
Copy Copy
1
2let (apiResponse, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-456def")
3if apiResponse.isSome:
4 let emptyResponse = apiResponse.get()
5

ืงื‘ืœืช ื—ื‘ื™ืœืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantPackageResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTenantPackage
Copy Copy
1
2let (pkgOpt, httpResp) = client.getTenantPackage(tenantId = "my-tenant-123", id = "premium-plan")
3if pkgOpt.isSome:
4 let pkg = pkgOpt.get()
5 echo pkg
6

ืงื‘ืœืช ื—ื‘ื™ืœื•ืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
skipfloat64ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantPackagesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTenantPackages
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if maybeResp.isSome:
4 let packages = maybeResp.get()
5 echo packages
6 echo httpResp.statusCode
7

ื”ื—ืœืคืช ื—ื‘ื™ืœืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
replaceTenantPackageBodyReplaceTenantPackageBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

replaceTenantPackage ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.replaceTenantPackage(
3 tenantId = "my-tenant-123",
4 id = "pkg-456",
5 replaceTenantPackageBody = ReplaceTenantPackageBody()
6)
7if optResp.isSome:
8 let resp = optResp.get()
9 discard resp
10

ืขื“ื›ื•ืŸ ื—ื‘ื™ืœืช ื˜ื ื ื˜ Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateTenantPackageBodyUpdateTenantPackageBodyืœื

Response

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

updateTenantPackage ื“ื•ื’ืžื”
Copy Copy
1
2let body = UpdateTenantPackageBody()
3let (optResp, httpResp) = client.updateTenantPackage(
4 tenantId = "my-tenant-123",
5 id = "premium-plan",
6 updateTenantPackageBody = body
7)
8if optResp.isSome:
9 let empty = optResp.get()
10

ื™ืฆื™ืจืช ืžืฉืชืžืฉ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyNo

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateTenantUserResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createTenantUser
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userBody = CreateTenantUserBody(
4 email: "john.doe@example.com",
5 name: "John Doe",
6 password: "s3cr3tP@ss",
7 role: "admin"
8)
9let (optResp, httpResp) = client.createTenantUser(
10 tenantId = tenantId,
11 createTenantUserBody = userBody
12)
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp.userId
16

ืžื—ื™ืงืช ืžืฉืชืžืฉ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsDeleteTenantUserOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteTenantUser ื“ื•ื’ืžื”
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteTenantUserOptions(),
6)
7if response.isSome:
8 let empty = response.get()
9 echo "User successfully deleted"
10

ืงื‘ืœืช ืžืฉืชืžืฉ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจื”: Option[GetTenantUserResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTenantUser
Copy Copy
1
2let (maybeUser, httpResp) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-456")
3if maybeUser.isSome:
4 let user = maybeUser.get()
5 echo user
6

ืงื‘ืœืช ืžืฉืชืžืฉื™ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
skipfloat64ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantUsersResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getTenantUsers
Copy Copy
1
2let (response, httpResponse) = client.getTenantUsers(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let data = response.get()
5 echo data
6

ื”ื—ืœืคืช ืžืฉืชืžืฉ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
replaceTenantUserBodyReplaceTenantUserBodyืœื
updateCommentsstring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

replaceTenantUser ื“ื•ื’ืžื”
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody()
3let (response, httpResponse) = client.replaceTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 replaceTenantUserBody = replaceBody,
7 updateComments = "")
8if response.isSome:
9 let empty = response.get()
10

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
redirectURLstring = ""ืœื

ืชื’ื•ื‘ื”

Returns: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช sendLoginLink
Copy Copy
1
2let (maybeResp, httpResp) = client.sendLoginLink(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 redirectURL = "https://myapp.example.com/login-success"
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

ืขื“ื›ื•ืŸ ืžืฉืชืžืฉ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateTenantUserBodyUpdateTenantUserBodyืœื
updateCommentsstring = ""ืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateTenantUser
Copy Copy
1
2let updateBody = UpdateTenantUserBody()
3let (optResp, httpResp) = client.updateTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 updateTenantUserBody = updateBody,
7 updateComments = "Changed role to moderator",
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

ื™ืฆื™ืจืช ื˜ื ื ื˜ Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
createTenantBodyCreateTenantBodyNo

Response

ืžื—ื–ื™ืจ: Option[CreateTenantResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createTenant
Copy Copy
1
2let (maybeResp, httpResp) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 discard resp
6discard httpResp
7

ืžื—ื™ืงืช ื˜ื ื ื˜ Internal Link


ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
surestring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

deleteTenant ื“ื•ื’ืžื”
Copy Copy
1
2let (respOpt, httpResp) = client.deleteTenant(tenantId = "my-tenant-123", id = "tenant-to-delete", sure = "yes")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5

ืงื‘ืœืช ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getTenant
Copy Copy
1
2let (tenantResponse, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "config-001")
3if tenantResponse.isSome:
4 let tenant = tenantResponse.get()
5 echo tenant
6

ืงื‘ืœืช ื˜ื ื ื˜ื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetTenantsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTenantsResponse]

ืœื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTenants
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenants(tenantId = "my-tenant-123", options = GetTenantsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 echo resp
6

ืขื“ื›ื•ืŸ ื˜ื ื ื˜ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
updateTenantBodyUpdateTenantBodyNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptyResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateTenant
Copy Copy
1
2let updateBody = UpdateTenantBody(
3 name: "My Tenant",
4 description: "Tenant for news site",
5 isActive: true,
6 allowedDomains: @["example.com", "news.com"]
7)
8
9let (apiResp, httpResp) = client.updateTenant(
10 tenantId = "my-tenant-123",
11 id = "tenant-456",
12 updateTenantBody = updateBody
13)
14
15if apiResp.isSome:
16 let emptyResp = apiResp.get()
17

ืฉื™ื ื•ื™ ืžืฆื‘ ื›ืจื˜ื™ืก Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
userIdstringNo
idstringNo
changeTicketStateBodyChangeTicketStateBodyNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ChangeTicketStateResponse]

ื“ื•ื’ืžื”

changeTicketState ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.changeTicketState(
3 tenantId = "my-tenant-001",
4 userId = "user-42",
5 id = "ticket-12345",
6 changeTicketStateBody = ChangeTicketStateBody(state = "closed")
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

ื™ืฆื™ืจืช ื›ืจื˜ื™ืก Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
userIdstringืœื
createTicketBodyCreateTicketBodyืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[CreateTicketResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createTicket
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userId = "user-456"
4let ticketBody = CreateTicketBody()
5let (responseOpt, httpResponse) = client.createTicket(tenantId = tenantId, userId = userId, createTicketBody = ticketBody)
6if responseOpt.isSome:
7 let ticketResponse = responseOpt.get()
8

ืงื‘ืœืช ื›ืจื˜ื™ืก Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo
userIdstring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTicketResponse]

ื“ื•ื’ืžื”

getTicket ื“ื•ื’ืžื”
Copy Copy
1
2let (ticketOpt, httpResp) = client.getTicket(tenantId = "my-tenant-123", id = "ticket-456", userId = "")
3if ticketOpt.isSome:
4 let ticket = ticketOpt.get()
5 discard ticket
6

ืงื‘ืœืช ื›ืจื˜ื™ืกื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetTicketsOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTicketsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTickets
Copy Copy
1
2let (ticketsOpt, httpResp) = client.getTickets(tenantId = "my-tenant-123", options = GetTicketsOptions())
3if ticketsOpt.isSome:
4 let tickets = ticketsOpt.get()
5 # ื”ืฉืชืžืฉ ื‘ื›ืจื˜ื™ืกื™ื ืœืคื™ ื”ืฆื•ืจืš
6

ืงื‘ืœืช ืชืจื’ื•ืžื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
namespacestringืœื
componentstringืœื
optionsGetTranslationsOptionsืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetTranslationsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getTranslations
Copy Copy
1
2let opts = GetTranslationsOptions()
3let (maybeResp, httpResp) = client.getTranslations(namespace = "my-tenant-123", component = "news/article-title", options = opts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6 echo resp
7

ื”ืขืœืืช ืชืžื•ื ื” Internal Link

Upload and resize an image

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
filestringNo
optionsUploadImageOptionsNo

Response

Returns: Option[UploadImageResponse]

Example

uploadImage ื“ื•ื’ืžื”
Copy Copy
1
2let (uploadResult, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "images/avatar.jpg",
5 options = UploadImageOptions()
6)
7
8if uploadResult.isSome:
9 let result = uploadResult.get()
10 # ื”ืฉืชืžืฉ ื‘ืชื•ืฆืื” ืœืคื™ ื”ืฆื•ืจืš
11

ืงื‘ืœืช ื”ืชืงื“ืžื•ืช ืชื’ ืžืฉืชืžืฉ ืœืคื™ ืžื–ื”ื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetUserBadgeProgressResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getUserBadgeProgressById
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "badge-456")
3if badgeProgressOpt.isSome:
4 let badgeProgress = badgeProgressOpt.get()
5 echo badgeProgress
6

ืงื‘ืœืช ื”ืชืงื“ืžื•ืช ืชื’ ืžืฉืชืžืฉ ืœืคื™ ืžื–ื”ื” ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
userIdstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetUserBadgeProgressResponse]

ื“ื•ื’ืžื”

getUserBadgeProgressByUserId ื“ื•ื’ืžื”
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-456")
3if badgeProgressOpt.isSome:
4 let progress = badgeProgressOpt.get()
5 echo progress
6

ืงื‘ืœืช ืจืฉื™ืžืช ื”ืชืงื“ืžื•ืช ืชื’ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserBadgeProgressListOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetUserBadgeProgressListResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getUserBadgeProgressList
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", options = GetUserBadgeProgressListOptions())
3if response.isSome:
4 let badgeProgress = response.get()
5

ื™ืฆื™ืจืช ืชื’ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
createUserBadgeParamsCreateUserBadgeParamsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APICreateUserBadgeResponse]

ื“ื•ื’ืžื”

createUserBadge ื“ื•ื’ืžื”
Copy Copy
1
2let (badgeRespOpt, httpResp) = client.createUserBadge(tenantId = "my-tenant-123", createUserBadgeParams = default(CreateUserBadgeParams))
3if badgeRespOpt.isSome:
4 let badgeResp = badgeRespOpt.get()
5

ืžื—ื™ืงืช ืชื’ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
idstringNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptySuccessResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteUserBadge
Copy Copy
1
2let (apiResponse, httpResponse) = client.deleteUserBadge(tenantId = "my-tenant-123", id = "badge-456")
3if apiResponse.isSome:
4 let success = apiResponse.get()
5

ืงื‘ืœืช ืชื’ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetUserBadgeResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getUserBadge
Copy Copy
1
2let (badgeOpt, httpResp) = client.getUserBadge(tenantId = "my-tenant-123", id = "user-789")
3if badgeOpt.isSome:
4 let badge = badgeOpt.get()
5 echo badge
6else:
7 echo "No badge found"
8echo httpResp.statusCode
9

ืงื‘ืœืช ืชื’ื™ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
optionsGetUserBadgesOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIGetUserBadgesResponse]

ื“ื•ื’ืžื”

getUserBadges ื“ื•ื’ืžื”
Copy Copy
1
2let opts = GetUserBadgesOptions()
3let (badgesOpt, httpResp) = client.getUserBadges(tenantId = "my-tenant-123", options = opts)
4if badgesOpt.isSome:
5 let badges = badgesOpt.get()
6

ืขื“ื›ื•ืŸ ืชื’ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
updateUserBadgeParamsUpdateUserBadgeParamsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[APIEmptySuccessResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateUserBadge
Copy Copy
1
2let params = UpdateUserBadgeParams()
3let (maybeResp, httpResp) = client.updateUserBadge(tenantId = "my-tenant-123", id = "user-456", updateUserBadgeParams = params)
4if maybeResp.isSome:
5 let success = maybeResp.get()
6

ืงื‘ืœืช ืกืคื™ืจืช ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
ssostring = ""ืœื

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetUserNotificationCountResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getUserNotificationCount
Copy Copy
1
2let (optResp, httpResp) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

ืงื‘ืœืช ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืื˜ื™ืคื•ืกื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
optionsGetUserNotificationsOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetMyNotificationsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœโ€‘getUserNotifications
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getUserNotifications(tenantId = "my-tenant-123", options = GetUserNotificationsOptions())
3if maybeResponse.isSome:
4 let notifications = maybeResponse.get()
5

ืืชื—ื•ืœ ืกืคื™ืจืช ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[ResetUserNotificationsResponse]

ื“ื•ื’ืžื”

resetUserNotificationCount ื“ื•ื’ืžื”
Copy Copy
1
2let (resetRespOpt, httpResp) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "user-456")
3if resetRespOpt.isSome:
4 let resetResp = resetRespOpt.get()
5 echo resetResp
6else:
7 echo "Reset notification count response not available"
8

ืืชื—ื•ืœ ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื“ืจื•ืฉืชื™ืื•ืจ
tenantIdstringYes
optionsResetUserNotificationsOptionsNo

ืชื’ื•ื‘ื”

Returns: Option[ResetUserNotificationsResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” ืœ-resetUserNotifications
Copy Copy
1
2let (maybeResp, httpResp) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 options = ResetUserNotificationsOptions())
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7

ืขื“ื›ื•ืŸ ืกื˜ื˜ื•ืก ืžื ื•ื™ ืชื’ื•ื‘ื” ืฉืœ ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link


ื”ืคืขืœ ืื• ื‘ื˜ืœ ื”ืชืจืื•ืช ืขื‘ื•ืจ ืชื’ื•ื‘ื” ืกืคืฆื™ืคื™ืช.

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
notificationIdstringNo
optedInOrOutstringNo
commentIdstringYes
ssostring = ""No

Response

ืžื—ื–ื™ืจ: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Example

updateUserNotificationCommentSubscriptionStatus ื“ื•ื’ืžื”
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 optedInOrOut = "opted-in",
6 commentId = "comment-789",
7 sso = ""
8)
9
10if optResp.isSome:
11 let resp = optResp.get()
12

ืขื“ื›ื•ืŸ ืกื˜ื˜ื•ืก ืžื ื•ื™ ื“ืฃ ืฉืœ ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ
urlstringืœื
pageTitlestringืœื
subscribedOrUnsubscribedstringืœื
ssostring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 url = "https://example.com/news/article-456",
6 pageTitle = "Breaking News: Something Happened",
7 subscribedOrUnsubscribed = "subscribed",
8 sso = ""
9)
10
11if optResp.isSome:
12 let resp = optResp.get()
13 # ื”ืžืฉืš ืขื™ื‘ื•ื“ ืขื resp
14

ืขื“ื›ื•ืŸ ืกื˜ื˜ื•ืก ื”ืชืจืื•ืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
notificationIdstringNo
newStatusstringNo
ssostring = ""No

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[UpdateUserNotificationStatusResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช updateUserNotificationStatus
Copy Copy
1
2let (respOpt, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 newStatus = "read",
6 sso = ""
7)
8if respOpt.isSome:
9 let status = respOpt.get()
10

ืงื‘ืœืช ืžืฆื‘ื™ ื ื•ื›ื—ื•ืช ืžืฉืชืžืฉื™ื Internal Link

Parameters

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdWSstringืœื
userIdsstringืœื

Response

ืžื—ื–ื™ืจ: Option[GetUserPresenceStatusesResponse]

Example

ื“ื•ื’ืžื” ืœ-getUserPresenceStatuses
Copy Copy
1
2let (presenceOpt, httpResp) = client.getUserPresenceStatuses(tenantId = "my-tenant-123", urlIdWS = "news/article-title", userIds = "user42")
3if presenceOpt.isSome:
4 let presence = presenceOpt.get()
5

ื—ื™ืคื•ืฉ ืžืฉืชืžืฉื™ื Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes
optionsSearchUsersOptionsNo

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[SearchUsersResult]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช searchUsers
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = SearchUsersOptions()
6)
7
8if response.isSome:
9 let result = response.get()
10

ืงื‘ืœืช ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetUserResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžื” getUser
Copy Copy
1
2let (userOpt, httpResp) = client.getUser(tenantId = "my-tenant-123", id = "user-456")
3if userOpt.isSome:
4 let user = userOpt.get()
5 echo user
6else:
7 echo "User not found"
8

ื™ืฆื™ืจืช ื”ืฆื‘ืขื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
commentIdstringื›ืŸ
directionstringืœื
optionsCreateVoteOptionsืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช createVote
Copy Copy
1
2let (voteOpt, httpResp) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 direction = "up",
6 options = CreateVoteOptions()
7)
8
9if voteOpt.isSome:
10 let vote = voteOpt.get()
11 echo vote
12

ืžื—ื™ืงืช ื”ืฆื‘ืขื” Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringื›ืŸ
idstringืœื
editKeystring = ""ืœื

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[VoteDeleteResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช deleteVote
Copy Copy
1
2let (voteRespOpt, httpResp) = client.deleteVote(tenantId = "my-tenant-123", id = "comment-456", editKey = "")
3if voteRespOpt.isSome:
4 let voteResp = voteRespOpt.get()
5 discard voteResp
6 discard httpResp
7

ืงื‘ืœืช ื”ืฆื‘ืขื•ืช Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื—ื•ื‘ื”ืชื™ืื•ืจ
tenantIdstringื›ืŸ
urlIdstringื›ืŸ

ืชื’ื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetVotesResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getVotes
Copy Copy
1
2let (optVotes, httpResp) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/article-42")
3if optVotes.isSome:
4 let votes = optVotes.get()
5 discard votes
6

ืงื‘ืœืช ื”ืฆื‘ืขื•ืช ืขื‘ื•ืจ ืžืฉืชืžืฉ Internal Link

ืคืจืžื˜ืจื™ื

ืฉืืกื•ื’ื ื“ืจืฉืชื™ืื•ืจ
tenantIdstringYes
urlIdstringYes
optionsGetVotesForUserOptionsNo

ืชืฉื•ื‘ื”

ืžื—ื–ื™ืจ: Option[GetVotesForUserResponse]

ื“ื•ื’ืžื”

ื“ื•ื’ืžืช getVotesForUser
Copy Copy
1
2let (optResp, httpResp) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetVotesForUserOptions()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

ื–ืงื•ืง ืœืขื–ืจื”?

ืื ืชื™ืชืงืœ ื‘ื‘ืขื™ื•ืช ืื• ืื ื™ืฉ ืœืš ืฉืืœื•ืช ืœื’ื‘ื™ Nim SDK, ืื ื:

ืชืจื•ืžื•ืช

ืชืจื•ืžื•ืช ืžืชืงื‘ืœื•ืช ื‘ื‘ืจื›ื”! ืื ื ื‘ืงืจ ื‘ืžืื’ืจ ื”-GitHub ืœืงื‘ืœืช ื”ื ื—ื™ื•ืช ืœืชืจื•ืžื”.