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

Использование Nimble

nimble install fastcomments

Сборка из исходников

nimble build

Содержимое библиотеки

Эта библиотека содержит сгенерированный клиент API и утилиты SSO, упрощающие работу с API.

Публичные и защищённые API

Для клиента API существуют два модуля API, api_default и api_public. api_default содержит методы, которые требуют ваш API-ключ, а api_public содержит вызовы API, которые можно выполнять прямо из браузера/мобильного устройства и т.д. без аутентификации.

Быстрый старт 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"

# Выполнить аутентифицированные вызовы API
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  direction = SortDirections.DESC
)

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

Использование публичных API (PublicAPI)

Публичные конечные точки не требуют аутентификации:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Выполнить публичные вызовы API
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  page = 0,
  direction = SortDirections.DESC,
  sso = "",
  skip = 0,
  skipChildren = 0,
  limit = 0,
  limitChildren = 0,
  countChildren = false,
  fetchPageForCommentId = "",
  includeConfig = false,
  countAll = false,
  includei10n = false,
  locale = "",
  modules = "",
  isCrawler = false,
  includeNotificationCount = false,
  asTree = false,
  maxTreeDepth = 0,
  useFullTranslationIds = false,
  parentId = "",
  searchText = "",
  hashTags = @[],
  userId = "",
  customConfigStr = "",
  afterCommentId = "",
  beforeCommentId = ""
)

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

Распространенные проблемы

  1. 401 ошибка аутентификации: Убедитесь, что вы установили заголовок x-api-key на вашем HttpClient перед выполнением запросов DefaultAPI: client.headers["x-api-key"] = "your-api-key"
  2. Неверный класс API: Используйте api_default для серверных аутентифицированных запросов, api_public для клиентских/публичных запросов.

Вызовы API Internal Link

Все методы API в этом SDK возвращают кортежи (Option[ResponseType], Response). Первый элемент содержит разобранный ответ в случае успеха, а второй элемент — необработанный HTTP-ответ.

Пример: Получение комментариев

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

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

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

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

Заметки Internal Link

Идентификаторы трансляций

Вы увидите, что в некоторых вызовах API нужно передать broadcastId. Когда вы получаете события, вы получите этот ID обратно, так что вы сможете игнорировать событие, если планируете оптимистично применять изменения на клиенте (что, вероятно, стоит сделать, поскольку это обеспечивает лучший пользовательский опыт). Передайте здесь UUID. ID должен быть достаточно уникальным, чтобы не появляться дважды в одной сессии браузера.

SSO (Единый вход)

Примеры 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

Параметры

Имя Тип Обязательно Описание
tenantId string Да
aggregationRequest AggregationRequest Нет
parentTenantId string Нет
includeStats bool Нет

Ответ

Возвращает: Option[AggregationResponse]

Пример

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

Получить журналы аудита Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
limit float64 Нет
skip float64 Нет
order SORTDIR Нет
after float64 Нет
before float64 Нет

Ответ

Возвращает: Option[GetAuditLogs_200_response]

Пример

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

Заблокировать по публичному комментарию Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
publicBlockFromCommentParams PublicBlockFromCommentParams Нет
sso string Нет

Ответ

Возвращает: Option[BlockFromCommentPublic_200_response]

Пример

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

Разблокировать комментарий (публичный) Internal Link


Параметры

Name Type Required Description
tenantId string Да
commentId string Да
publicBlockFromCommentParams PublicBlockFromCommentParams Нет
sso string Нет

Ответ

Возвращает: Option[UnBlockCommentPublic_200_response]

Пример

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

Проверить комментарии на блокировку Internal Link

Параметры

Name Type Required Description
tenantId string Да
commentIds string Нет
sso string Нет

Ответ

Возвращает: Option[CheckedCommentsForBlocked_200_response]

Пример

checkedCommentsForBlocked Пример
Copy Copy
1
2let (response, httpResponse) = client.checkedCommentsForBlocked(
3 tenantId = "my-tenant-123",
4 commentIds = "",
5 sso = ""
6)
7if response.isSome:
8 let checked = response.get()
9 echo "Checked comments received for tenant my-tenant-123"
10 echo checked
11else:
12 echo "No checked comments (HTTP status: ", $httpResponse.statusCode, ")"
13

Заблокировать пользователя по комментарию Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
blockFromCommentParams BlockFromCommentParams Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[BlockFromCommentPublic_200_response]

Пример

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

Создать публичный комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
broadcastId string Нет
commentData CommentData Нет
sessionId string Нет
sso string Нет

Ответ

Возвращает: Option[CreateCommentPublic_200_response]

Пример

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

Удалить комментарий Internal Link

Параметры

Имя Type Обязательно Описание
tenantId string Да
id string Нет
contextUserId string Нет
isLive bool Нет

Ответ

Возвращает: Option[DeleteComment_200_response]

Пример

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

Удалить публичный комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
broadcastId string Нет
editKey string Нет
sso string Нет

Ответ

Возвращает: Option[DeleteCommentPublic_200_response]

Пример

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

Удалить голос за комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
voteId string Нет
urlId string Да
broadcastId string Нет
editKey string Нет
sso string Нет

Ответ

Возвращает: Option[DeleteCommentVote_200_response]

Пример

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

Пометить комментарий Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[FlagComment_200_response]

Пример

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

Получить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetComment_200_response]

Пример

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

Получить комментарии Internal Link

Параметры

Name Type Required Description
tenantId string Да
page int Нет
limit int Нет
skip int Нет
asTree bool Нет
skipChildren int Нет
limitChildren int Нет
maxTreeDepth int Нет
urlId string Да
userId string Нет
anonUserId string Нет
contextUserId string Нет
hashTag string Нет
parentId string Нет
direction SortDirections Нет

Ответ

Возвращает: Option[GetComments_200_response]

Пример

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

Получить публичные комментарии Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
page int Нет
direction SortDirections Нет
sso string Нет
skip int Нет
skipChildren int Нет
limit int Нет
limitChildren int Нет
countChildren bool Нет
fetchPageForCommentId string Нет
includeConfig bool Нет
countAll bool Нет
includei10n bool Нет
locale string Нет
modules string Нет
isCrawler bool Нет
includeNotificationCount bool Нет
asTree bool Нет
maxTreeDepth int Нет
useFullTranslationIds bool Нет
parentId string Нет
searchText string Нет
hashTags seq[string] Нет
userId string Нет
customConfigStr string Нет
afterCommentId string Нет
beforeCommentId string Нет

Ответ

Возвращает: Option[GetCommentsPublic_200_response]

Пример

Пример getCommentsPublic
Copy Copy
1
2let (response, httpResponse) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/world/article-2025",
5 page = 1,
6 direction = SortDirections(0),
7 sso = "sso_token_abc",
8 skip = 0,
9 skipChildren = 0,
10 limit = 20,
11 limitChildren = 5,
12 countChildren = false,
13 fetchPageForCommentId = "cmt_789",
14 includeConfig = true,
15 countAll = false,
16 includei10n = true,
17 locale = "en-US",
18 modules = "reactions,moderation",
19 isCrawler = false,
20 includeNotificationCount = true,
21 asTree = true,
22 maxTreeDepth = 3,
23 useFullTranslationIds = false,
24 parentId = "parent_123",
25 searchText = "openAI integration",
26 hashTags = @["ai", "technology"],
27 userId = "user_456",
28 customConfigStr = "{}",
29 afterCommentId = "cmt_100",
30 beforeCommentId = ""
31)
32
33if response.isSome:
34 let comments = response.get()
35 discard comments
36else:
37 discard httpResponse
38

Получить текст комментария Internal Link

Параметры

Name Type Required Description
tenantId string Да
commentId string Да
editKey string Нет
sso string Нет

Ответ

Возвращает: Option[GetCommentText_200_response]

Пример

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

Получить имена пользователей, голосовавших за комментарий Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
commentId string Да
dir int Нет
sso string Нет

Ответ

Возвращает: Option[GetCommentVoteUserNames_200_response]

Пример

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

Заблокировать комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[LockComment_200_response]

Пример

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

Закрепить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[PinComment_200_response]

Пример

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

Сохранить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createCommentParams CreateCommentParams Нет
isLive bool Нет
doSpamCheck bool Нет
sendEmails bool Нет
populateNotifications bool Нет

Ответ

Возвращает: Option[SaveComment_200_response]

Пример

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

Массовое сохранение комментариев Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
createCommentParams seq[CreateCommentParams] Нет
isLive bool Нет
doSpamCheck bool Нет
sendEmails bool Нет
populateNotifications bool): (Option[seq[SaveComment_200_response]] Нет
id string Нет
unBlockFromCommentParams UnBlockFromCommentParams Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[UnBlockCommentPublic_200_response]

Пример

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

Установить текст комментария Internal Link

Параметры

Name Type Обязательный Описание
tenantId string Да
commentId string Да
broadcastId string Нет
commentTextUpdateRequest CommentTextUpdateRequest Нет
editKey string Нет
sso string Нет

Ответ

Возвращает: Option[SetCommentText_200_response]

Пример

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

Разблокировать пользователя по комментарию Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
unBlockFromCommentParams UnBlockFromCommentParams Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[UnBlockCommentPublic_200_response]

Пример

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

Снять флаг с комментария Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[FlagComment_200_response]

Пример

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

Разблокировать комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[LockComment_200_response]

Пример

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

Открепить комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[PinComment_200_response]

Пример

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

Обновить комментарий Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет
updatableCommentParams UpdatableCommentParams Нет
contextUserId string Нет
doSpamCheck bool Нет
isLive bool Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Проголосовать за комментарий Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
urlId string Да
broadcastId string Нет
voteBodyParams VoteBodyParams Нет
sessionId string Нет
sso string Нет

Ответ

Возвращает: Option[VoteComment_200_response]

Пример

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

Добавить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
addDomainConfigParams AddDomainConfigParams Нет

Response

Возвращает: Option[AddDomainConfig_200_response]

Пример

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

Удалить конфигурацию домена Internal Link

Параметры

Name Type Required Description
tenantId string Да
domain string Нет

Ответ

Возвращает: Option[DeleteDomainConfig_200_response]

Пример

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

Получить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
domain string Нет

Ответ

Возвращает: Option[GetDomainConfig_200_response]

Пример

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

Получить конфигурации доменов Internal Link


Параметры

Имя Тип Обязательно Описание
tenantId string Да

Ответ

Возвращает: Option[GetDomainConfigs_200_response]

Пример

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

Частично обновить конфигурацию домена Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
domainToUpdate string Нет
patchDomainConfigParams PatchDomainConfigParams Нет

Ответ

Возвращает: Option[GetDomainConfig_200_response]

Пример

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

Заменить конфигурацию домена Internal Link

Параметры

Name Type Required Description
tenantId string Да
domainToUpdate string Нет
updateDomainConfigParams UpdateDomainConfigParams Нет

Ответ

Возвращает: Option[GetDomainConfig_200_response]

Пример

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

Создать шаблон письма Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
createEmailTemplateBody CreateEmailTemplateBody Нет

Ответ

Возвращает: Option[CreateEmailTemplate_200_response]

Пример

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

Удалить шаблон письма Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Удалить ошибку рендеринга шаблона письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
errorId string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить шаблон письма Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetEmailTemplate_200_response]

Пример

Пример getEmailTemplate
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email-01")
3if response.isSome:
4 let template = response.get()
5 echo "Template ID: ", template.id
6 echo "Subject: ", template.subject
7 echo "Body: ", template.body
8

Получить определения шаблонов писем Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да

Ответ

Возвращает: Option[GetEmailTemplateDefinitions_200_response]

Пример

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

Получить ошибки рендеринга шаблонов писем Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
skip float64 Нет

Ответ

Возвращает: Option[GetEmailTemplateRenderErrors_200_response]

Пример

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

Получить шаблоны писем Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
skip float64 Нет

Ответ

Возвращает: Option[GetEmailTemplates_200_response]

Пример

Пример getEmailTemplates
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let templates = response.get()
5 echo templates
6else:
7 echo "No templates returned"
8

Сформировать шаблон письма Internal Link

Параметры

Name Type Required Description
tenantId string Да
renderEmailTemplateBody RenderEmailTemplateBody Нет
locale string Нет

Ответ

Возвращает: Option[RenderEmailTemplate_200_response]

Пример

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

Обновить шаблон письма Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет
updateEmailTemplateBody UpdateEmailTemplateBody Нет

Response

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить журнал событий Internal Link

Параметры

Name Type Required Description
tenantId string Да
urlId string Да
userIdWS string Нет
startTime int64 Нет
endTime int64 Нет

Ответ

Возвращает: Option[GetEventLog_200_response]

Пример

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

Получить глобальный журнал событий Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
urlId string Да
userIdWS string Нет
startTime int64 Нет
endTime int64 Нет

Ответ

Возвращает: Option[GetEventLog_200_response]

Пример

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

Создать запись в ленте Internal Link

Параметры

Name Type Required Description
tenantId string Да
createFeedPostParams CreateFeedPostParams Нет
broadcastId string Нет
isLive bool Нет
doSpamCheck bool Нет
skipDupCheck bool Нет

Ответ

Возвращает: Option[CreateFeedPost_200_response]

Пример

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

Создать публичную запись в ленте Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createFeedPostParams CreateFeedPostParams Нет
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[CreateFeedPostPublic_200_response]

Пример

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

Удалить публичную запись в ленте Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
postId string Нет
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[DeleteFeedPostPublic_200_response]

Пример

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

Получить записи ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
afterId string Нет
limit int Нет
tags seq[string] Нет

Ответ

Возвращает: Option[GetFeedPosts_200_response]

Пример

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

Получить публичные записи ленты Internal Link

Параметры

Name Type Required Description
tenantId string Да
afterId string Нет
limit int Нет
tags seq[string] Нет
sso string Нет
isCrawler bool Нет
includeUserInfo bool Нет

Ответ

Возвращает: Option[GetFeedPostsPublic_200_response]

Пример

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

Получить статистику записей ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
postIds seq[string] Нет
sso string Нет

Ответ

Возвращает: Option[GetFeedPostsStats_200_response]

Пример

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

Получить реакции пользователей (публично) Internal Link

Параметры

Имя Тип Требуется Описание
tenantId string Да
postIds seq[string] Нет
sso string Нет

Ответ

Возвращает: Option[GetUserReactsPublic_200_response]

Пример

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

Поставить реакцию на публичную запись ленты Internal Link

Параметры

Имя Тип Обязательное Описание
tenantId string Да
postId string Нет
reactBodyParams ReactBodyParams Нет
isUndo bool Нет
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[ReactFeedPostPublic_200_response]

Пример

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

Обновить запись ленты Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
feedPost FeedPost Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Обновить публичную запись ленты Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
postId string Нет
updateFeedPostParams UpdateFeedPostParams Нет
broadcastId string Нет
sso string Нет

Ответ

Возвращает: Option[CreateFeedPostPublic_200_response]

Пример

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

Пометить публичный комментарий Internal Link

Параметры

Имя Тип Обязательное Описание
tenantId string Да
commentId string Да
isFlagged bool Нет
sso string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Добавить хэштег Internal Link


Параметры

Имя Тип Обязательно Описание
tenantId string Да
createHashTagBody CreateHashTagBody Нет

Ответ

Возвращает: Option[AddHashTag_200_response]

Пример

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

Массовое добавление хэштегов Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
bulkCreateHashTagsBody BulkCreateHashTagsBody Нет

Ответ

Возвращает: Option[AddHashTagsBulk_200_response]

Пример

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

Удалить хэштег Internal Link

Параметры

Name Type Required Description
tag string Нет
tenantId string Да
deleteHashTagRequest DeleteHashTagRequest Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить хэштеги Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
page float64 Нет

Ответ

Возвращает: Option[GetHashTags_200_response]

Пример

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

Частично обновить хэштег Internal Link

Параметры

Имя Тип Обязательный Описание
tag string Нет
tenantId string Да
updateHashTagBody UpdateHashTagBody Нет

Ответ

Возвращает: Option[PatchHashTag_200_response]

Пример

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

Создать модератора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createModeratorBody CreateModeratorBody Нет

Ответ

Возвращает: Option[CreateModerator_200_response]

Пример

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

Удалить модератора Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
sendEmail string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить модератора Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetModerator_200_response]

Пример

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

Получить модераторов Internal Link

Параметры

Name Type Required Description
tenantId string Да
skip float64 Нет

Ответ

Возвращает: Option[GetModerators_200_response]

Пример

Пример getModerators
Copy Copy
1
2let (response, httpResponse) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let moderators = response.get()
5 echo "Moderators fetched successfully"
6 echo moderators
7

Обновить модератора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateModeratorBody UpdateModeratorBody Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Удалить счётчик уведомлений Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить кэшированный счётчик уведомлений Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetCachedNotificationCount_200_response]

Пример

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

Получить количество уведомлений Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Yes
userId string No
urlId string Yes
fromCommentId string No
viewed bool No

Ответ

Возвращает: Option[GetNotificationCount_200_response]

Пример

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

Получить уведомления Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
userId string Нет
urlId string Да
fromCommentId string Нет
viewed bool Нет
skip float64 Нет

Ответ

Возвращает: Option[GetNotifications_200_response]

Пример

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

Обновить уведомление Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateNotificationBody UpdateNotificationBody Нет
userId string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Добавить страницу Internal Link

Параметры

Name Type Required Description
tenantId string Да
createAPIPageData CreateAPIPageData Нет

Ответ

Возвращает: Option[AddPageAPIResponse]

Пример

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

Удалить страницу Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[DeletePageAPIResponse]

Пример

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

Получить страницу по URL ID Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да

Ответ

Возвращает: Option[GetPageByURLIdAPIResponse]

Пример

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

Получить страницы Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да

Ответ

Возвращает: Option[GetPagesAPIResponse]

Пример

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

Частично обновить страницу Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateAPIPageData UpdateAPIPageData Нет

Ответ

Возвращает: Option[PatchPageAPIResponse]

Пример

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

Удалить ожидающее событие вебхука Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

Пример использования deletePendingWebhookEvent
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "wh_evt_6f1e3b2a")
3if response.isSome:
4 let flagResp = response.get()
5 discard flagResp
6

Получить количество ожидающих событий вебхуков Internal Link

Параметры

Name Type Required Description
tenantId string Да
commentId string Да
externalId string Нет
eventType string Нет
domain string Нет
attemptCountGT float64 Нет

Ответ

Возвращает: Option[GetPendingWebhookEventCount_200_response]

Пример

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

Получить ожидающие события вебхуков Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
commentId string Да
externalId string Нет
eventType string Нет
domain string Нет
attemptCountGT float64 Нет
skip float64 Нет

Ответ

Возвращает: Option[GetPendingWebhookEvents_200_response]

Пример

Пример getPendingWebhookEvents
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0,
9 skip = 0.0
10)
11if response.isSome:
12 let pending = response.get()
13 discard pending
14 echo "Received pending webhook events"
15else:
16 echo "No pending webhook events"
17

Создать конфигурацию вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createQuestionConfigBody CreateQuestionConfigBody Нет

Ответ

Возвращает: Option[CreateQuestionConfig_200_response]

Пример

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

Удалить конфигурацию вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить конфигурацию вопроса Internal Link


Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetQuestionConfig_200_response]

Пример

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

Получить конфигурации вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
skip float64 Нет

Ответ

Возвращает: Option[GetQuestionConfigs_200_response]

Пример

Пример getQuestionConfigs
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfigs(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let configs = response.get()
5 discard configs
6

Обновить конфигурацию вопроса Internal Link

Параметры

Name Type Обязательный Описание
tenantId string Да
id string Нет
updateQuestionConfigBody UpdateQuestionConfigBody Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Создать результат вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createQuestionResultBody CreateQuestionResultBody Нет

Ответ

Возвращает: Option[CreateQuestionResult_200_response]

Пример

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

Удалить результат вопроса Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить результат вопроса Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetQuestionResult_200_response]

Пример

Пример getQuestionResult
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if response.isSome:
4 let result = response.get()
5 echo "Received question result:"
6 echo result
7else:
8 echo "No question result returned"
9

Получить результаты вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
userId string Нет
startDate string Нет
questionId string Нет
questionIds string Нет
skip float64 Нет

Ответ

Возвращает: Option[GetQuestionResults_200_response]

Пример

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

Обновить результат вопроса Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
updateQuestionResultBody UpdateQuestionResultBody Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Агрегировать результаты вопросов Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
questionId string Нет
questionIds seq[string] Нет
urlId string Да
timeBucket AggregateTimeBucket Нет
startDate string Нет
forceRecalculate bool Нет

Ответ

Возвращает: Option[AggregateQuestionResults_200_response]

Пример

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

Массовая агрегация результатов вопросов Internal Link

Параметры

Name Type Обязательный Описание
tenantId string Да
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Нет
forceRecalculate bool Нет

Ответ

Возвращает: Option[BulkAggregateQuestionResults_200_response]

Пример

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

Объединить комментарии с результатами вопросов Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
questionId string Нет
questionIds seq[string] Нет
urlId string Да
startDate string Нет
forceRecalculate bool Нет
minValue float64 Нет
maxValue float64 Нет
limit float64 Нет

Ответ

Возвращает: Option[CombineCommentsWithQuestionResults_200_response]

Пример

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

Добавить SSO-пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createAPISSOUserData CreateAPISSOUserData Нет

Ответ

Возвращает: Option[AddSSOUserAPIResponse]

Пример

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

Удалить SSO-пользователя Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет
deleteComments bool Нет
commentDeleteMode string Нет

Ответ

Возвращает: Option[DeleteSSOUserAPIResponse]

Пример

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

Получить SSO-пользователя по email Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
email string Нет

Ответ

Возвращает: Option[GetSSOUserByEmailAPIResponse]

Пример

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

Получить SSO-пользователя по ID Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetSSOUserByIdAPIResponse]

Пример

Пример использования getSSOUserById
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserById(tenantId = "my-tenant-123", id = "user-789")
3if response.isSome:
4 let ssoUser: GetSSOUserByIdAPIResponse = response.get()
5 echo "SSO user retrieved: ", $ssoUser
6else:
7 echo "No SSO user found, HTTP status: ", httpResponse.statusCode
8

Получить SSO-пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
skip int Нет

Ответ

Возвращает: Option[GetSSOUsers_200_response]

Пример

Пример использования getSSOUsers
Copy Copy
1
2let (response, httpResponse) = client.getSSOUsers(tenantId = "my-tenant-123", skip = 0)
3if response.isSome:
4 let ssoUsers = response.get()
5 echo "Fetched SSO users:"
6 echo ssoUsers
7else:
8 echo "No SSO users returned, HTTP status: ", httpResponse.statusCode
9

Частично обновить SSO-пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateAPISSOUserData UpdateAPISSOUserData Нет
updateComments bool Нет

Ответ

Возвращает: Option[PatchSSOUserAPIResponse]

Пример

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

Заменить SSO-пользователя Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
updateAPISSOUserData UpdateAPISSOUserData Нет
updateComments bool Нет

Ответ

Возвращает: Option[PutSSOUserAPIResponse]

Пример

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

Создать подписку Internal Link

Параметры

Name Type Обязательный Описание
tenantId string Да
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Нет

Ответ

Возвращает: Option[CreateSubscriptionAPIResponse]

Пример

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

Удалить подписку Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет
userId string Нет

Ответ

Возвращает: Option[DeleteSubscriptionAPIResponse]

Пример

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

Получить подписки Internal Link

Параметры

Name Type Required Description
tenantId string Да
userId string Нет

Ответ

Возвращает: Option[GetSubscriptionsAPIResponse]

Пример

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

Получить ежедневное использование арендатора Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
yearNumber float64 Нет
monthNumber float64 Нет
dayNumber float64 Нет
skip float64 Нет

Ответ

Возвращает: Option[GetTenantDailyUsages_200_response]

Пример

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

Создать пакет арендатора Internal Link

Параметры

Name Type Required Description
tenantId string Да
createTenantPackageBody CreateTenantPackageBody Нет

Ответ

Возвращает: Option[CreateTenantPackage_200_response]

Пример

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

Удалить пакет арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить пакет арендатора Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetTenantPackage_200_response]

Пример

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

Получить пакеты арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
skip float64 Нет

Ответ

Возвращает: Option[GetTenantPackages_200_response]

Пример

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

Заменить пакет арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Yes
id string No
replaceTenantPackageBody ReplaceTenantPackageBody No

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Обновить пакет арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateTenantPackageBody UpdateTenantPackageBody Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Создать пользователя арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createTenantUserBody CreateTenantUserBody Нет

Ответ

Возвращает: Option[CreateTenantUser_200_response]

Пример

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

Удалить пользователя арендатора Internal Link


Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
deleteComments string Нет
commentDeleteMode string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить пользователя арендатора Internal Link


Параметры

Name Type Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetTenantUser_200_response]

Пример

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

Получить пользователей арендатора Internal Link

Параметры

Name Type Required Description
tenantId string Yes
skip float64 No

Ответ

Возвращает: Option[GetTenantUsers_200_response]

Пример

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

Заменить пользователя арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
replaceTenantUserBody ReplaceTenantUserBody Нет
updateComments string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Параметры

Name Type Required Description
tenantId string Да
id string Нет
redirectURL string Нет

Response

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Обновить пользователя арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateTenantUserBody UpdateTenantUserBody Нет
updateComments string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Создать арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
createTenantBody CreateTenantBody Нет

Ответ

Возвращает: Option[CreateTenant_200_response]

Пример

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

Удалить арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
sure string Нет

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Получить арендатора Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetTenant_200_response]

Пример

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

Получить арендаторов Internal Link


Параметры

Имя Тип Обязательный Описание
tenantId string Да
meta string Нет
skip float64 Нет

Ответ

Возвращает: Option[GetTenants_200_response]

Пример

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

Обновить арендатора Internal Link

Параметры

Name Type Required Description
tenantId string Yes
id string No
updateTenantBody UpdateTenantBody No

Ответ

Возвращает: Option[FlagCommentPublic_200_response]

Пример

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

Загрузить изображение Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
file string Нет
sizePreset SizePreset Нет
urlId string Да

Ответ

Возвращает: Option[UploadImageResponse]

Пример

Пример использования uploadImage
Copy Copy
1
2let (response, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "assets/images/comment-avatar.jpg",
5 sizePreset = SizePreset.small,
6 urlId = "news/article-2025-11-22"
7)
8if response.isSome:
9 let upload = response.get()
10 echo "Uploaded image id: ", upload.id
11 echo "Uploaded image url: ", upload.url
12

Получить прогресс бейджа пользователя по ID Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetUserBadgeProgressById_200_response]

Пример

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

Получить прогресс бейджа по ID пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
userId string Нет

Ответ

Возвращает: Option[GetUserBadgeProgressById_200_response]

Пример

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

Получить список прогресса бейджей пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
userId string Нет
limit float64 Нет
skip float64 Нет

Ответ

Возвращает: Option[GetUserBadgeProgressList_200_response]

Пример

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

Создать бейдж пользователя Internal Link

Параметры

Name Type Required Description
tenantId string Да
createUserBadgeParams CreateUserBadgeParams Нет

Ответ

Возвращает: Option[CreateUserBadge_200_response]

Пример

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

Удалить бейдж пользователя Internal Link

Параметры

Name Type Required Description
tenantId string Да
id string Нет

Ответ

Возвращает: Option[UpdateUserBadge_200_response]

Пример

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

Получить бейдж пользователя Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetUserBadge_200_response]

Пример

Пример использования getUserBadge
Copy Copy
1
2let (response, httpResponse) = client.getUserBadge(tenantId = "my-tenant-123", id = "")
3
4if response.isSome:
5 let badge = response.get()
6 discard badge
7

Получить бейджи пользователей Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
userId string Нет
badgeId string Нет
displayedOnComments bool Нет
limit float64 Нет
skip float64 Нет

Ответ

Возвращает: Option[GetUserBadges_200_response]

Пример

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

Обновить бейдж пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
id string Нет
updateUserBadgeParams UpdateUserBadgeParams Нет

Ответ

Возвращает: Option[UpdateUserBadge_200_response]

Пример

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

Получить количество уведомлений пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
sso string Нет

Ответ

Возвращает: Option[GetUserNotificationCount_200_response]

Пример

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

Получить уведомления пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
pageSize int Нет
afterId string Нет
includeContext bool Нет
afterCreatedAt int64 Нет
unreadOnly bool Нет
dmOnly bool Нет
noDm bool Нет
includeTranslations bool Нет
sso string Нет

Ответ

Возвращает: Option[GetUserNotifications_200_response]

Пример

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

Сбросить количество уведомлений пользователя Internal Link

Параметры

Name Type Required Description
tenantId string Да
sso string Нет

Ответ

Возвращает: Option[ResetUserNotifications_200_response]

Пример

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

Сбросить уведомления пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
afterId string Нет
afterCreatedAt int64 Нет
unreadOnly bool Нет
dmOnly bool Нет
noDm bool Нет
sso string Нет

Ответ

Возвращает: Option[ResetUserNotifications_200_response]

Пример

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

Обновить статус подписки пользователя на комментарии Internal Link

Параметры

Имя Тип Обязательное Описание
tenantId string Да
notificationId string Нет
optedInOrOut string Нет
commentId string Да
sso string Нет

Ответ

Возвращает: Option[UpdateUserNotificationStatus_200_response]

Пример

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

Обновить статус подписки пользователя на страницу Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
url string Нет
pageTitle string Нет
subscribedOrUnsubscribed string Нет
sso string Нет

Ответ

Возвращает: Option[UpdateUserNotificationStatus_200_response]

Пример

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

Обновить статус уведомления пользователя Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
notificationId string Нет
newStatus string Нет
sso string Нет

Ответ

Возвращает: Option[UpdateUserNotificationStatus_200_response]

Пример

Пример updateUserNotificationStatus
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 newStatus = "read",
6 sso = "sso-abc-789"
7)
8if response.isSome:
9 let updateResp = response.get()
10 discard updateResp
11

Получить статусы присутствия пользователей Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
urlIdWS string Нет
userIds string Нет

Ответ

Возвращает: Option[GetUserPresenceStatuses_200_response]

Пример

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

Поиск пользователей Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
usernameStartsWith string Нет
mentionGroupIds seq[string] Нет
sso string Нет

Ответ

Возвращает: Option[SearchUsers_200_response]

Пример

Пример использования searchUsers
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 usernameStartsWith = "jo",
6 mentionGroupIds = @["editors", "sports-team"],
7 sso = "sso-abc-456"
8)
9
10if response.isSome:
11 let users = response.get()
12 echo "Users found: ", users
13else:
14 echo "No users found; HTTP status: ", httpResponse.status
15

Получить пользователя Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
id string Нет

Ответ

Возвращает: Option[GetUser_200_response]

Пример

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

Создать голос Internal Link

Параметры

Имя Тип Обязательный Описание
tenantId string Да
commentId string Да
direction string Нет
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[VoteComment_200_response]

Пример

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

Удалить голос Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Yes
id string No
editKey string No

Ответ

Возвращает: Option[DeleteCommentVote_200_response]

Пример

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

Получить голоса Internal Link

Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да

Ответ

Возвращает: Option[GetVotes_200_response]

Пример

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

Получить голоса пользователя Internal Link


Параметры

Имя Тип Обязательно Описание
tenantId string Да
urlId string Да
userId string Нет
anonUserId string Нет

Ответ

Возвращает: Option[GetVotesForUser_200_response]

Пример

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

Нужна помощь?

Если вы столкнулись с какими-либо проблемами или у вас есть вопросы по Nim SDK, пожалуйста:

Участие в проекте

Вклады приветствуются! Пожалуйста, посетите репозиторий на GitHub для получения руководства по участию.