FastComments.com

FastComments SDK для C++


Це офіційний C++ SDK для FastComments.

Офіційний C++ SDK для FastComments API

Репозиторій

Переглянути на GitHub


Вимоги Internal Link


  • C++17 або новіша
  • CMake 3.14 або новіша
  • OpenSSL
  • C++ REST SDK (cpprestsdk)
  • Boost
  • Google Test (автоматично завантажується для тестування)

Встановлення Internal Link

Install Dependencies

sudo apt install libcpprest-dev libboost-all-dev

Building from Source

mkdir build
cd build
cmake ..
make

Installing

sudo make install

Library Contents

Ця бібліотека містить згенерований клієнт API та утиліти SSO, які спрощують роботу з API.

Public vs Secured APIs

Для клієнта API є три класи, DefaultApi, PublicApi та ModerationApi. DefaultApi містить методи, які вимагають ваш API‑ключ, а PublicApi містить методи, які можна викликати безпосередньо з браузера/мобільного пристрою тощо без автентифікації. ModerationApi надає широкий набір живих та швидких API модерації. Кожен метод ModerationApi приймає параметр sso і може автентифікуватися за допомогою SSO або кукі сесії FastComments.com.

Примітки Internal Link


Ідентифікатори трансляцій

Ви побачите, що у деяких викликах API потрібно передавати broadcastId. Коли ви отримуєте події, ви отримаєте цю ID назад, тож ви знатимете, що можна ігнорувати подію, якщо плануєте оптімістично застосовувати зміни на клієнті (що, ймовірно, вам захочеться зробити, оскільки це забезпечує найкращий досвід). Передайте тут UUID. Ідентифікатор має бути достатньо унікальним, щоб не повторитися двічі в сесії браузера.

SSO (Єдиний вхід)

Для прикладів SSO див. нижче.

Використання SSO Internal Link

Просте SSO

#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>

using namespace fastcomments::sso;

int main() {
    SimpleSSOUserData user("user-123", "user@example.com", "https://example.com/avatar.jpg");
    FastCommentsSSO sso = FastCommentsSSO::newSimple(user);
    std::string token = sso.createToken();

    std::cout << "SSO Token: " << token << std::endl;
    return 0;
}

Захищене SSO

#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>

using namespace fastcomments::sso;

int main() {
    SecureSSOUserData user("user-123", "user@example.com", "johndoe", "https://example.com/avatar.jpg");

    std::string apiKey = "your-api-key";
    FastCommentsSSO sso = FastCommentsSSO::newSecure(apiKey, user);
    std::string token = sso.createToken();

    std::cout << "Secure SSO Token: " << token << std::endl;
    return 0;
}

aggregate Internal Link

Агрегує документи шляхом групування їх (якщо вказано groupBy) та застосуванням декількох операцій. Підтримуються різні операції (наприклад, sum, countDistinct, avg тощо).

Parameters

НазваТипОбов'язковоОпис
tenantIdstringТак
aggregationRequestAggregationRequestТак
optionsconst AggregateOptions&Так

Response

Повертає: AggregateResponse

Приклад

Приклад агрегування
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4AggregationRequest aggregationRequest;
5aggregationRequest.setMetric(U("commentCount"));
6aggregationRequest.setStartDate(U("2023-01-01T00:00:00Z"));
7aggregationRequest.setEndDate(U("2023-12-31T23:59:59Z"));
8aggregationRequest.setFilters({ U("status:approved") });
9
10AggregateOptions options;
11options.limit = boost::optional<int>(100);
12options.includeMetadata = boost::optional<bool>(true);
13
14api->aggregate(tenantId, aggregationRequest, options)
15 .then([](pplx::task<std::shared_ptr<AggregateResponse>> task) {
16 try {
17 auto response = task.get();
18 // обробити відповідь
19 } catch (const std::exception& e) {
20 // обробити помилку
21 }
22 });
23

getAuditLogs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetAuditLogsOptions&Yes

Response

Повертає: GetAuditLogsResponse

Example

Приклад getAuditLogs
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4GetAuditLogsOptions options;
5options.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z"), utility::datetime::RFC_1123));
6options.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z"), utility::datetime::RFC_1123));
7options.limit = boost::optional<int>(100);
8
9api->getAuditLogs(tenantId, options).then([](pplx::task<std::shared_ptr<GetAuditLogsResponse>> t) {
10 try {
11 auto response = t.get();
12 // використати response
13 } catch (const std::exception& e) {
14 // обробити помилку
15 }
16});
17

logoutPublic Internal Link

Відповідь

Повертає: APIEmptyResponse

Приклад

logoutPublic Приклад
Copy Copy
1
2api->logoutPublic()
3 .then([](std::shared_ptr<APIEmptyResponse> /*resp*/) {
4 std::cout << "Logout successful\n";
5 })
6 .then([](pplx::task<void> t) {
7 try {
8 t.get();
9 } catch (const std::exception& e) {
10 std::cerr << "Logout failed: " << e.what() << std::endl;
11 }
12 });
13

blockFromCommentPublic Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

Відповідь

Повертає: BlockSuccess

Приклад

blockFromCommentPublic Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-987654");
4PublicBlockFromCommentParams blockParams;
5blockParams.reason = utility::conversions::to_string_t("spam");
6blockParams.durationHours = 24;
7boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-abc123");
8api->blockFromCommentPublic(tenantId, commentId, blockParams, sso)
9 .then([](std::shared_ptr<BlockSuccess> result){
10 auto successCopy = std::make_shared<BlockSuccess>(*result);
11 });
12

unBlockCommentPublic Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

Відповідь

Повертає: UnblockSuccess

Приклад

unBlockCommentPublic Приклад
Copy Copy
1
2auto blockParams = PublicBlockFromCommentParams();
3blockParams.reason = U("spam");
4api->unBlockCommentPublic(
5 U("my-tenant-123"),
6 U("comment-789"),
7 blockParams,
8 boost::optional<utility::string_t>(U("sso-token-abc"))
9).then([](std::shared_ptr<UnblockSuccess> result){ });
10

checkedCommentsForBlocked Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
commentIdsstringТак
ssostringНі

Відповідь

Повертає: CheckBlockedCommentsResponse

Приклад

checkedCommentsForBlocked Приклад
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentIds = U("cmt-001,cmt-002");
4boost::optional<utility::string_t> sso = U("user@example.com");
5
6api->checkedCommentsForBlocked(tenantId, commentIds, sno).then([](std::shared_ptr<CheckBlockedCommentsResponse> resp){
7 (void)resp;
8});
9

blockUserFromComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes
blockFromCommentParamsBlockFromCommentParamsYes
optionsconst BlockUserFromCommentOptions&Yes

Відповідь

Повертає: BlockSuccess

Приклад

blockUserFromComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-789");
4BlockFromCommentParams params;
5params.reason = utility::conversions::to_string_t("Inappropriate content");
6params.durationDays = boost::optional<int>(30);
7BlockUserFromCommentOptions options;
8options.notifyUser = boost::optional<bool>(true);
9
10api->blockUserFromComment(tenantId, commentId, params, options)
11 .then([](std::shared_ptr<BlockSuccess> result){ })
12 .then([](pplx::task<void> t){ try { t.get(); } catch (const std::exception&) { } });
13

createCommentPublic Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
urlIdstringYes
broadcastIdstringYes
commentDataCommentDataYes
optionsconst CreateCommentPublicOptions&Yes

Відповідь

Повертає: SaveCommentsResponseWithPresence

Приклад

Приклад createCommentPublic
Copy Copy
1
2auto comment = CommentData();
3comment.body = U("This is a test comment");
4comment.authorName = U("John Doe");
5comment.authorEmail = U("john.doe@example.com");
6
7CreateCommentPublicOptions opts;
8opts.replyToCommentId = boost::optional<utility::string_t>(U("parent-123"));
9
10api->createCommentPublic(
11 U("my-tenant-123"),
12 U("article-456"),
13 U("broadcast-789"),
14 comment,
15 opts).then([](std::shared_ptr<SaveCommentsResponseWithPresence> res){
16 auto commentId = res->commentId;
17 });
18

deleteComment Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
optionsconst DeleteCommentOptions&Так

Відповідь

Повертає: DeleteCommentResult

Приклад

deleteComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-789");
4DeleteCommentOptions options;
5options.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Inappropriate content"));
6options.force = boost::optional<bool>(true);
7api->deleteComment(tenantId, commentId, options).then([](pplx::task<std::shared_ptr<DeleteCommentResult>> task){
8 try{
9 auto result = task.get();
10 }catch(const std::exception&){
11 }
12});
13

deleteCommentPublic Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
commentIdstringТак
broadcastIdstringТак
optionsconst DeleteCommentPublicOptions&Так

Відповідь

Повертає: PublicAPIDeleteCommentResponse

Приклад

Приклад deleteCommentPublic
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("comment-456"));
4auto broadcastId = utility::string_t(U("broadcast-789"));
5DeleteCommentPublicOptions options;
6options.force = boost::optional<bool>(true);
7options.reason = boost::optional<utility::string_t>(U("Inappropriate content"));
8api->deleteCommentPublic(tenantId, commentId, broadcastId, options)
9 .then([](pplx::task<std::shared_ptr<PublicAPIDeleteCommentResponse>> t){
10 try{
11 auto resp = t.get();
12 }catch(const std::exception& e){
13 }
14 });
15

deleteCommentVote Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
commentIdstringТак
voteIdstringТак
urlIdstringТак
broadcastIdstringТак
optionsconst DeleteCommentVoteOptions&Так

Відповідь

Повертає: VoteDeleteResponse

Приклад

Приклад deleteCommentVote
Copy Copy
1
2auto options = DeleteCommentVoteOptions{};
3options.reason = boost::optional<utility::string_t>(U("spam"));
4options.adminOverride = boost::optional<bool>(true);
5
6api->deleteCommentVote(
7 U("my-tenant-123"),
8 U("cmt-456789"),
9 U("vote-987"),
10 U("url-abc123"),
11 U("broadcast-001"),
12 options
13).then([](std::shared_ptr<VoteDeleteResponse> resp){
14 if (resp) {
15 std::cout << "Deleted vote, code: " << resp->code << std::endl;
16 }
17});
18

flagComment Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
idstringYes
optionsconst FlagCommentOptions&Yes

Відповідь

Повертає: FlagCommentResponse

Приклад

Приклад flagComment
Copy Copy
1
2auto opts = std::make_shared<FlagCommentOptions>();
3opts->reason = utility::conversions::to_string_t("spam");
4opts->note = boost::optional<utility::string_t>(utility::conversions::to_string_t("User posted duplicate links"));
5
6api->flagComment(utility::conversions::to_string_t("my-tenant-123"),
7 utility::conversions::to_string_t("comment-456"),
8 *opts)
9 .then([](pplx::task<std::shared_ptr<FlagCommentResponse>> t) {
10 auto resp = t.get();
11 });
12

getComment Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIGetCommentResponse

Приклад

getComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-456");
4boost::optional<int> maxDepth = boost::none;
5api->getComment(tenantId, commentId).then([](pplx::task<std::shared_ptr<APIGetCommentResponse>> t){
6 try{
7 auto resp = t.get();
8 }catch(const std::exception&){
9 }
10});
11

getComments Internal Link

Parameters

НазваТипОбов'язковийОпис
tenantIdstringYes
optionsconst GetCommentsOptions&Yes

Response

Повертає: APIGetCommentsResponse

Example

getComments Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetCommentsOptions options;
4options.page = 1;
5options.limit = 50;
6options.sort = U("newest");
7options.authorEmail = boost::optional<utility::string_t>(U("user@example.com"));
8api->getComments(tenantId, options).then([](pplx::task<std::shared_ptr<APIGetCommentsResponse>> task) {
9 try {
10 auto response = task.get();
11 // використайте відповідь за потребою
12 } catch (const std::exception& e) {
13 // обробити помилку
14 }
15});
16

getCommentsPublic Internal Link


запит tenantId urlId

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
urlIdstringТак
optionsconst GetCommentsPublicOptions&Так

Відповідь

Повертає: GetCommentsResponseWithPresence_PublicComment_

Приклад

getCommentsPublic Приклад
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto urlId = U("article-456");
4GetCommentsPublicOptions opts;
5opts.pageSize = 20;
6opts.includeDeleted = false;
7api->getCommentsPublic(tenantId, urlId, opts).then([](std::shared_ptr<GetCommentsResponseWithPresence_PublicComment_> resp) {
8 (void)resp;
9});
10

getCommentText Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst GetCommentTextOptions&Так

Відповідь

Повертає: PublicAPIGetCommentTextResponse

Приклад

Приклад getCommentText
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4auto options = std::make_shared<GetCommentTextOptions>();
5options->language = boost::optional<utility::string_t>(U("en"));
6options->includeDeleted = boost::optional<bool>(false);
7api->getCommentText(tenantId, commentId, *options).then([](pplx::task<std::shared_ptr<PublicAPIGetCommentTextResponse>> task){
8 try{
9 auto response = task.get();
10 (void)response;
11 }catch(...){}
12});
13

getCommentVoteUserNames Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
commentIdstringYes
dirint32_tYes
ssostringNo

Відповідь

Повертає: GetCommentVoteUserNamesSuccessResponse

Приклад

Приклад getCommentVoteUserNames
Copy Copy
1
2auto task = api->getCommentVoteUserNames(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("comment-456"),
5 static_cast<int32_t>(1),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("sso-token"))
7).then([](pplx::task<std::shared_ptr<GetCommentVoteUserNamesSuccessResponse>> t){
8 try{
9 auto response = t.get();
10 }catch(const std::exception&){ }
11});
12

lockComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
broadcastIdstringТак
ssostringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

lockComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-987");
4auto broadcastId = utility::conversions::to_string_t("broadcast-654");
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-xyz");
6
7api->lockComment(tenantId, commentId, broadcastId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

pinComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
broadcastIdstringТак
ssostringНі

Відповідь

Повертає: ChangeCommentPinStatusResponse

Приклад

pinComment Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4utility::string_t broadcastId = U("broadcast-789");
5boost::optional<utility::string_t> sso = U("sso-token-abc");
6
7api->pinComment(tenantId, commentId, broadcastId, sso)
8 .then([](pplx::task<std::shared_ptr<ChangeCommentPinStatusResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception&) {
12 }
13 });
14

saveComment Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
optionsconst SaveCommentOptions&Yes

Відповідь

Повертає: APISaveCommentResponse

Приклад

saveComment Приклад
Copy Copy
1
2CreateCommentParams commentParams;
3commentParams.body = utility::string_t(U("Great article!"));
4commentParams.author = utility::string_t(U("jane.doe@example.com"));
5commentParams.parentId = boost::optional<utility::string_t>(utility::string_t(U("parent-789")));
6
7SaveCommentOptions options;
8options.preview = boost::optional<bool>(false);
9
10api->saveComment(utility::string_t(U("my-tenant-123")), commentParams, options)
11 .then([](std::shared_ptr<APISaveCommentResponse> response) {
12 auto commentId = response->commentId;
13 });
14

setCommentText Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
commentIdstringТак
broadcastIdstringТак
commentTextUpdateRequestCommentTextUpdateRequestТак
optionsconst SetCommentTextOptions&Так

Відповідь

Повертає: PublicAPISetCommentTextResponse

Приклад

Приклад setCommentText
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentId = U("cmt-456");
4auto broadcastId = U("brd-789");
5
6CommentTextUpdateRequest updateReq;
7updateReq.text = U("Updated comment content");
8updateReq.isEdited = boost::make_optional(true);
9
10SetCommentTextOptions opts;
11opts.notifySubscribers = boost::make_optional(true);
12
13api->setCommentText(tenantId, commentId, broadcastId, updateReq, opts)
14 .then([](std::shared_ptr<PublicAPISetCommentTextResponse> resp) {
15 });
16

unBlockUserFromComment Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак
unBlockFromCommentParamsUnBlockFromCommentParamsТак
optionsconst UnBlockUserFromCommentOptions&Так

Відповідь

Повертає: UnblockSuccess

Приклад

unBlockUserFromComment Приклад
Copy Copy
1
2auto params = std::make_shared<UnBlockFromCommentParams>();
3params->commentId = U("cmt-12345");
4params->reason = U("resolved");
5UnBlockUserFromCommentOptions opts;
6opts.notifyUser = boost::optional<bool>(true);
7api->unBlockUserFromComment(U("my-tenant-123"), U("user-456"), *params, opts)
8 .then([](pplx::task<std::shared_ptr<UnblockSuccess>> t){
9 try{
10 auto result = t.get();
11 }catch(...){}
12 });
13

unFlagComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes
optionsconst UnFlagCommentOptions&Yes

Відповідь

Повертає: FlagCommentResponse

Приклад

unFlagComment Приклад
Copy Copy
1
2auto options = UnFlagCommentOptions{};
3options.reason = boost::optional<utility::string_t>(U("Resolved by moderator"));
4api->unFlagComment(U("my-tenant-123"), U("comment-456"), options)
5 .then([](std::shared_ptr<FlagCommentResponse> response) {
6 if (response) {
7 auto status = response->status;
8 // обробити статус за потреби
9 }
10 })
11 .then([](pplx::task<void> previous) {
12 try {
13 previous.get();
14 } catch (const std::exception& e) {
15 // обробити помилку
16 }
17 });
18

unLockComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

unLockComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4auto broadcastId = utility::conversions::to_string_t("broadcast-001");
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("john.doe@example.com");
6
7api->unLockComment(tenantId, commentId, broadcastId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12});
13

unPinComment Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
commentIdstringТак
broadcastIdstringТак
ssostringНі

Відповідь

Повертає: ChangeCommentPinStatusResponse

Приклад

unPinComment Приклад
Copy Copy
1
2auto task = api->unPinComment(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("cmt-456789"),
5 utility::conversions::to_string_t("broadcast-001"),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("user@example.com"))
7);
8task.then([](std::shared_ptr<ChangeCommentPinStatusResponse> resp){
9 auto result = std::make_shared<ChangeCommentPinStatusResponse>(*resp);
10});
11

updateComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringТак
idstringТак
updatableCommentParamsUpdatableCommentParamsТак
optionsconst UpdateCommentOptions&Так

Response

Повертає: APIEmptyResponse

Example

updateComment Приклад
Copy Copy
1
2auto tenantId = utility::string_t("my-tenant-123");
3auto commentId = utility::string_t("cmt-789");
4UpdatableCommentParams updatable;
5updatable.body = utility::string_t("Edited comment content");
6updatable.isSpam = boost::optional<bool>(false);
7UpdateCommentOptions options;
8options.notify = boost::optional<bool>(true);
9api->updateComment(tenantId, commentId, updatable, options)
10 .then([](std::shared_ptr<APIEmptyResponse>) {})
11 .then([](pplx::task<void> t) { try { t.get(); } catch(const std::exception&) {} });
12

voteComment Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
optionsconst VoteCommentOptions&Yes

Відповідь

Returns: VoteResponse

Приклад

voteComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-7890");
4auto urlId = utility::conversions::to_string_t("article-456");
5auto broadcastId = utility::conversions::to_string_t("broadcast-321");
6
7VoteBodyParams voteParams;
8voteParams.upvote = true;
9voteParams.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Great insight"));
10
11VoteCommentOptions options;
12options.dryRun = boost::optional<bool>(false);
13
14api->voteComment(tenantId, commentId, urlId, broadcastId, voteParams, options)
15 .then([](pplx::task<std::shared_ptr<VoteResponse>> t) {
16 try {
17 auto response = t.get();
18 // обробити відповідь
19 } catch (const std::exception&) {
20 }
21 });
22

getCommentsForUser Internal Link

Параметри

НазваТипОбов'язковоОпис
optionsconst GetCommentsForUserOptions&Так

Відповідь

Повертає: GetCommentsForUserResponse

Приклад

Приклад getCommentsForUser
Copy Copy
1
2auto options = GetCommentsForUserOptions{
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("user@example.com"),
5 boost::optional<int>(50),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("next-page-token"))
7};
8
9api->getCommentsForUser(options).then([](pplx::task<std::shared_ptr<GetCommentsForUserResponse>> task){
10 try{
11 auto response = task.get();
12 }catch(const std::exception&){}
13});
14

addDomainConfig Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsYes

Відповідь

Повертає: AddDomainConfigResponse

Приклад

addDomainConfig Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3AddDomainConfigParams params;
4params.domain = U("example.com");
5params.adminEmail = U("admin@example.com");
6params.notes = boost::optional<utility::string_t>(U("Primary domain"));
7api->addDomainConfig(tenantId, params).then([](pplx::task<std::shared_ptr<AddDomainConfigResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

deleteDomainConfig Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
domainstringТак

Відповідь

Повертає: DeleteDomainConfigResponse

Приклад

deleteDomainConfig Приклад
Copy Copy
1
2boost::optional<utility::string_t> optTenant = U("my-tenant-123");
3boost::optional<utility::string_t> optDomain = U("example.com");
4
5api->deleteDomainConfig(optTenant.value(), optDomain.value())
6 .then([](pplx::task<std::shared_ptr<DeleteDomainConfigResponse>> task) {
7 try {
8 auto response = task.get();
9 } catch (const std::exception&) {
10 }
11 });
12

getDomainConfig Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
domainstringYes

Відповідь

Повертає: GetDomainConfigResponse

Приклад

Приклад getDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domain = U("myblog.example.com");
4
5api->getDomainConfig(tenantId, domain)
6 .then([](std::shared_ptr<GetDomainConfigResponse> response) {
7 if (!response) return;
8 boost::optional<bool> moderationEnabled = response->moderationEnabled;
9 boost::optional<std::string> theme = response->theme;
10 if (moderationEnabled && *moderationEnabled) {
11 // обробляти ввімкнену модерацію
12 }
13 if (theme) {
14 // використати значення теми
15 }
16 })
17 .wait();
18

getDomainConfigs Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes

Відповідь

Повертає: GetDomainConfigsResponse

Приклад

Приклад getDomainConfigs
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> optionalTenant = tenantId;
4api->getDomainConfigs(optionalTenant.value())
5 .then([](std::shared_ptr<GetDomainConfigsResponse> response) {
6 auto domains = response->getDomainList();
7 for (const auto& d : domains) {
8 std::cout << d << std::endl;
9 }
10 });
11

patchDomainConfig Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

Відповідь

Повертає: PatchDomainConfigResponse

Приклад

patchDomainConfig Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto domainToUpdate = utility::conversions::to_string_t("example.com");
4PatchDomainConfigParams patchDomainConfigParams;
5patchDomainConfigParams.enableComments = boost::optional<bool>(true);
6patchDomainConfigParams.moderationLevel = boost::optional<int>(2);
7patchDomainConfigParams.customHeader = boost::optional<utility::string_t>(utility::conversions::to_string_t("X-Custom-Header"));
8
9api->patchDomainConfig(tenantId, domainToUpdate, patchDomainConfigParams)
10 .then([](std::shared_ptr<PatchDomainConfigResponse> resp) {
11 // обробка успішного результату
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception& e) { /* обробка помилки */ }
15 });
16

putDomainConfig Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

Відповідь

Повертає: PutDomainConfigResponse

Приклад

putDomainConfig Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domainToUpdate = U("example.com");
4UpdateDomainConfigParams updateParams;
5updateParams.enableComments = true;
6updateParams.moderationLevel = boost::optional<int>(2);
7updateParams.customCss = boost::optional<utility::string_t>(U(".fc-comment{color:red;}"));
8api->putDomainConfig(tenantId, domainToUpdate, updateParams)
9 .then([](std::shared_ptr<PutDomainConfigResponse> resp) {
10 });
11

createEmailTemplate Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
createEmailTemplateBodyCreateEmailTemplateBodyТак

Відповідь

Повертає: CreateEmailTemplateResponse

Приклад

createEmailTemplate Приклад
Copy Copy
1
2auto body = std::make_shared<CreateEmailTemplateBody>();
3body->subject = utility::string_t("Welcome Email");
4body->htmlContent = utility::string_t("<h1>Welcome!</h1><p>Thanks for joining.</p>");
5body->fromEmail = utility::string_t("no-reply@myapp.com");
6body->replyTo = boost::optional<utility::string_t>(utility::string_t("support@myapp.com"));
7body->cc = boost::none;
8api->createEmailTemplate(utility::string_t("my-tenant-123"), *body)
9 .then([](std::shared_ptr<CreateEmailTemplateResponse> resp) {
10 std::cout << "Created template ID: " << resp->id << std::endl;
11 });
12

deleteEmailTemplate Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIEmptyResponse

Приклад

deleteEmailTemplate Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto templateId = utility::conversions::to_string_t("welcome-email-template");
4boost::optional<utility::string_t> optTenantId = tenantId;
5boost::optional<utility::string_t> optTemplateId = templateId;
6api->deleteEmailTemplate(optTenantId.value(), optTemplateId.value())
7 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t) {
8 try { t.get(); }
9 catch (const std::exception&) {}
10 });
11

deleteEmailTemplateRenderError Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
errorIdstringТак

Відповідь

Повертає: APIEmptyResponse

Приклад

deleteEmailTemplateRenderError Приклад
Copy Copy
1
2boost::optional<utility::string_t> optTemplateId = utility::conversions::to_string_t("template-456");
3api->deleteEmailTemplateRenderError(
4 utility::conversions::to_string_t("my-tenant-123"),
5 *optTemplateId,
6 utility::conversions::to_string_t("error-789"))
7 .then([](std::shared_ptr<APIEmptyResponse>) {})
8 .then([](pplx::task<void> t) {
9 try { t.get(); } catch (...) {}
10 });
11

getEmailTemplate Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: GetEmailTemplateResponse

Приклад

Приклад getEmailTemplate
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto templateId = utility::conversions::to_string_t("welcome-email");
4boost::optional<utility::string_t> language = utility::conversions::to_string_t("en-US");
5
6api->getEmailTemplate(tenantId, templateId)
7 .then([=](pplx::task<std::shared_ptr<GetEmailTemplateResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

getEmailTemplateDefinitions Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак

Відповідь

Повертає: GetEmailTemplateDefinitionsResponse

Приклад

getEmailTemplateDefinitions Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3api->getEmailTemplateDefinitions(tenantId).then([](pplx::task<std::shared_ptr<GetEmailTemplateDefinitionsResponse>> t) {
4 try {
5 auto resp = t.get();
6 boost::optional<utility::string_t> tmplName = resp ? resp->templateName : boost::none;
7 if (tmplName) {
8 std::cout << *tmplName << std::endl;
9 }
10 } catch (const std::exception& e) {
11 std::cerr << e.what() << std::endl;
12 }
13});
14

getEmailTemplateRenderErrors Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
idstringYes
skipdoubleNo

Відповідь

Повертає: GetEmailTemplateRenderErrorsResponse

Приклад

getEmailTemplateRenderErrors Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("email-template-789");
4boost::optional<double> skip = 20.0;
5
6api->getEmailTemplateRenderErrors(tenantId, id, skip)
7 .then([](pplx::task<std::shared_ptr<GetEmailTemplateRenderErrorsResponse>> task) {
8 try {
9 auto response = task.get();
10 // Використайте відповідь за потреби
11 } catch (const std::exception& ex) {
12 // Обробіть помилку
13 }
14 });
15

getEmailTemplates Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
skipdoubleНі

Відповідь

Повертає: GetEmailTemplatesResponse

Приклад

getEmailTemplates Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> skip = 10.0;
4api->getEmailTemplates(tenantId, skip)
5 .then([](std::shared_ptr<GetEmailTemplatesResponse> resp) {
6 (void)resp;
7 });
8

renderEmailTemplate Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyYes
localestringNo

Відповідь

Повертає: RenderEmailTemplateResponse

Приклад

Приклад renderEmailTemplate
Copy Copy
1
2auto body = RenderEmailTemplateBody();
3body.templateId = U("welcome-email");
4body.recipientEmail = U("user@example.com");
5boost::optional<utility::string_t> locale = U("en-US");
6
7api->renderEmailTemplate(U("my-tenant-123"), body, locale)
8 .then([](std::shared_ptr<RenderEmailTemplateResponse> resp) {
9 std::cout << "Email template rendered successfully\n";
10 });
11

updateEmailTemplate Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад updateEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email");
4UpdateEmailTemplateBody body;
5body.subject = U("Welcome to Our Platform");
6body.content = U("<p>Hello \{{userName}}, welcome aboard!</p>");
7body.isActive = boost::optional<bool>(true);
8api->updateEmailTemplate(tenantId, templateId, body)
9 .then([](std::shared_ptr<APIEmptyResponse> response) {
10 // обробка успішного виконання
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception &) { /* обробка помилки */ }
14 });
15

getEventLog Internal Link

req tenantId urlId userIdWS

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
urlIdstringТак
userIdWSstringТак
startTimeint64_tТак
endTimeint64_tНі

Відповідь

Повертає: GetEventLogResponse

Приклад

getEventLog Приклад
Copy Copy
1
2auto startTime = int64_t(1622505600);
3boost::optional<int64_t> endTime = int64_t(1622592000);
4api->getEventLog(U("my-tenant-123"), U("article-456"), U("user@example.com"), startTime, endTime)
5 .then([](std::shared_ptr<GetEventLogResponse> response){
6 auto copy = std::make_shared<GetEventLogResponse>(*response);
7 (void)copy;
8 });
9

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Параметри

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringYes
startTimeint64_tYes
endTimeint64_tNo

Відповідь

Повертає: GetEventLogResponse

Приклад

getGlobalEventLog Приклад
Copy Copy
1
2api->getGlobalEventLog(
3 U("my-tenant-123"),
4 U("article-456"),
5 U("user@example.com"),
6 1622505600,
7 boost::optional<int64_t>(1625097600)
8).then([](std::shared_ptr<GetEventLogResponse> resp) {
9 (void)resp;
10});
11

createFeedPost Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
createFeedPostParamsCreateFeedPostParamsТак
optionsconst CreateFeedPostOptions&Так

Відповідь

Повертає: CreateFeedPostsResponse

Приклад

Приклад createFeedPost
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateFeedPostParams postParams;
4postParams.content = utility::conversions::to_string_t("Excited to join FastComments!");
5postParams.authorEmail = utility::conversions::to_string_t("user@example.com");
6postParams.title = utility::conversions::to_string_t("My First Post");
7postParams.tags = boost::optional<std::vector<utility::string_t>>({ utility::conversions::to_string_t("intro") });
8
9CreateFeedPostOptions options;
10options.notifyFollowers = boost::optional<bool>(true);
11options.scheduledAt = boost::optional<utility::datetime>(utility::datetime::utc_now());
12
13api->createFeedPost(tenantId, postParams, options).then([](std::shared_ptr<CreateFeedPostsResponse> resp) {
14 auto postId = resp->postId;
15});
16

createFeedPostPublic Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
optionsconst CreateFeedPostPublicOptions&Yes

Відповідь

Повертає: CreateFeedPostResponse

Приклад

createFeedPostPublic Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4CreateFeedPostParams params;
5params.title = U("Introducing Our New Feature");
6params.content = U("We are excited to announce the release of our latest update.");
7params.authorEmail = boost::optional<utility::string_t>(U("user@example.com"));
8params.tags = boost::optional<std::vector<utility::string_t>>({U("announcement"), U("release")});
9
10CreateFeedPostPublicOptions options;
11
12api->createFeedPostPublic(tenantId, params, options)
13 .then([](std::shared_ptr<CreateFeedPostResponse> resp) {
14 if (resp) {
15 std::wcout << U("Post created with ID: ") << resp->postId << std::endl;
16 }
17 });
18

deleteFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringYes
optionsconst DeleteFeedPostPublicOptions&Yes

Response

Повертає: DeleteFeedPostPublicResponse

Example

Приклад deleteFeedPostPublic
Copy Copy
1
2auto opts = std::make_shared<DeleteFeedPostPublicOptions>();
3opts->reason = boost::optional<utility::string_t>(U("Inappropriate content"));
4api->deleteFeedPostPublic(U("my-tenant-123"), U("post-789"), *opts)
5 .then([](std::shared_ptr<DeleteFeedPostPublicResponse> resp) {
6 if (resp && resp->isSuccess()) {
7 // логіка успіху
8 }
9 });
10

getFeedPosts Internal Link

req tenantId afterId

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetFeedPostsOptions&Так

Відповідь

Повертає: GetFeedPostsResponse

Приклад

Приклад getFeedPosts
Copy Copy
1
2auto opts = std::make_shared<GetFeedPostsOptions>();
3opts->maxResults = boost::optional<int>(50);
4opts->cursor = boost::optional<utility::string_t>(U("next-cursor"));
5api->getFeedPosts(U("my-tenant-123"), *opts).then([](std::shared_ptr<GetFeedPostsResponse> resp) {
6 auto count = resp->posts.size();
7});
8

getFeedPostsPublic Internal Link

req tenantId afterId

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
optionsconst GetFeedPostsPublicOptions&Так

Відповідь

Повертає: PublicFeedPostsResponse

Приклад

Приклад getFeedPostsPublic
Copy Copy
1
2auto options = GetFeedPostsPublicOptions{};
3options.limit = boost::optional<int>{20};
4options.before = boost::optional<utility::string_t>{U("2023-01-01T00:00:00Z")};
5
6api->getFeedPostsPublic(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<PublicFeedPostsResponse>> task){
7 try{
8 auto response = task.get();
9 auto processed = std::make_shared<PublicFeedPostsResponse>(*response);
10 // Використовуйте processed за потреби
11 }catch(const std::exception&){
12 // Обробіть помилку
13 }
14});
15

getFeedPostsStats Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
postIdsvector<stringТак
ssostringНі

Відповідь

Повертає: FeedPostsStatsResponse

Приклад

getFeedPostsStats Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3std::vector<utility::string_t> postIds = {
4 utility::conversions::to_string_t("post-001"),
5 utility::conversions::to_string_t("post-002")
6};
7boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
8
9api->getFeedPostsStats(tenantId, postIds, sso)
10 .then([](std::shared_ptr<FeedPostsStatsResponse> response) {
11 (void)response;
12 });
13

getUserReactsPublic Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetUserReactsPublicOptions&Так

Відповідь

Повертає: UserReactsResponse

Приклад

Приклад getUserReactsPublic
Copy Copy
1
2auto options = GetUserReactsPublicOptions{};
3options.userId = boost::optional<utility::string_t>(U("user@example.com"));
4options.limit = boost::optional<int>(50);
5api->getUserReactsPublic(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<UserReactsResponse>> t){
6 auto response = t.get();
7});
8

reactFeedPostPublic Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
postIdstringYes
reactBodyParamsReactBodyParamsYes
optionsconst ReactFeedPostPublicOptions&Yes

Відповідь

Повертає: ReactFeedPostResponse

Приклад

reactFeedPostPublic Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto postId = utility::conversions::to_string_t("post-987");
4ReactBodyParams reactBody;
5reactBody.reaction = utility::conversions::to_string_t("love");
6reactBody.userId = utility::conversions::to_string_t("user@example.com");
7ReactFeedPostPublicOptions options;
8options.metadata = boost::optional<utility::string_t>(utility::conversions::to_string_t("mobile"));
9api->reactFeedPostPublic(tenantId, postId, reactBody, options)
10 .then([](std::shared_ptr<ReactFeedPostResponse> resp) {
11 });
12

updateFeedPost Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
idstringYes
feedPostFeedPostYes

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад updateFeedPost
Copy Copy
1
2utility::string_t tenantId = U"my-tenant-123";
3utility::string_t postId = U"post-456";
4
5FeedPost feedPost;
6feedPost.title = U"Breaking News";
7feedPost.content = U"Details of the update go here.";
8feedPost.imageUrl = boost::optional<utility::string_t>(U"https://example.com/image.jpg");
9
10api->updateFeedPost(tenantId, postId, feedPost)
11 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
12 try {
13 auto response = task.get();
14 } catch (const std::exception& ex) {
15 }
16 });
17

updateFeedPostPublic Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
postIdstringYes
updateFeedPostParamsUpdateFeedPostParamsYes
optionsconst UpdateFeedPostPublicOptions&Yes

Відповідь

Повертає: CreateFeedPostResponse

Приклад

updateFeedPostPublic Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t postId = U("post-456");
4UpdateFeedPostParams params;
5params.title = boost::optional<utility::string_t>(U("Updated Title"));
6params.body = boost::optional<utility::string_t>(U("Updated content of the post."));
7UpdateFeedPostPublicOptions options;
8options.notifyFollowers = boost::optional<bool>(true);
9api->updateFeedPostPublic(tenantId, postId, params, options)
10 .then([](std::shared_ptr<CreateFeedPostResponse> resp) {
11 auto result = resp;
12 });
13

flagCommentPublic Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
commentIdstringYes
isFlaggedboolYes
ssostringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад flagCommentPublic
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4bool isFlagged = true;
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-abc");
6
7api->flagCommentPublic(tenantId, commentId, isFlagged, sso)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception&){
12 }
13 });
14

getGifLarge Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
largeInternalURLSanitizedstringТак

Відповідь

Повертає: GifGetLargeResponse

Приклад

Приклад getGifLarge
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto largeUrl = utility::conversions::to_string_t("https://cdn.example.com/gifs/large/abc123.gif");
4
5api->getGifLarge(tenantId, largeUrl)
6 .then([&](std::shared_ptr<GifGetLargeResponse> resp) {
7 boost::optional<utility::string_t> maybeUrl;
8 if (resp && resp->url) {
9 maybeUrl = resp->url;
10 }
11 if (maybeUrl) {
12 std::wcout << *maybeUrl << std::endl;
13 }
14 });
15

getGifsSearch Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
searchstringYes
optionsconst GetGifsSearchOptions&Yes

Відповідь

Повертає: GetGifsSearchResponse

Приклад

Приклад getGifsSearch
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto search = U("funny cats");
4GetGifsSearchOptions options;
5options.limit = boost::optional<int>(10);
6options.rating = boost::optional<utility::string_t>(U("pg"));
7api->getGifsSearch(tenantId, search, options).then([](pplx::task<std::shared_ptr<GetGifsSearchResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

getGifsTrending Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
optionsconst GetGifsTrendingOptions&Yes

Відповідь

Повертає: GetGifsTrendingResponse

Приклад

getGifsTrending Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetGifsTrendingOptions options;
4options.limit = 10;
5options.rating = boost::optional<utility::string_t>(U("G"));
6api->getGifsTrending(tenantId, options).then([](std::shared_ptr<GetGifsTrendingResponse> response) {
7 for (const auto& gif : response->gifs) {
8 auto url = gif.url;
9 }
10});
11

addHashTag Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
createHashTagBodyCreateHashTagBodyТак

Відповідь

Повертає: CreateHashTagResponse

Приклад

Приклад addHashTag
Copy Copy
1
2CreateHashTagBody request;
3request.tag = utility::conversions::to_string_t("feature-request");
4request.description = utility::conversions::to_string_t("Requests for new features");
5request.relatedUrl = boost::optional<utility::string_t>(utility::conversions::to_string_t("https://example.com/feature-request"));
6
7api->addHashTag(utility::conversions::to_string_t("my-tenant-123"), request)
8 .then([](std::shared_ptr<CreateHashTagResponse> resp) {
9 (void)resp;
10 });
11

addHashTagsBulk Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyYes

Response

Повертає: BulkCreateHashTagsResponse

Example

Приклад addHashTagsBulk
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3BulkCreateHashTagsBody bulkBody;
4bulkBody.tags = { utility::string_t(U("announcement")), utility::string_t(U("feature-request")) };
5bulkBody.description = boost::optional<utility::string_t>(U("Bulk tag creation"));
6api->addHashTagsBulk(tenantId, bulkBody).then([](pplx::task<std::shared_ptr<BulkCreateHashTagsResponse>> task){
7 try{
8 auto resp = task.get();
9 }catch(const std::exception&){
10 }
11});
12

deleteHashTag Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
tagstringТак
deleteHashTagRequestBodyDeleteHashTagRequestBodyТак

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад deleteHashTag
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-001");
3auto tag = utility::conversions::to_string_t("news");
4DeleteHashTagRequestBody requestBody;
5requestBody.userId = utility::conversions::to_string_t("user-42");
6requestBody.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("User request"));
7api->deleteHashTag(tenantId, tag, requestBody)
8 .then([](std::shared_ptr<APIEmptyResponse> resp) {
9 });
10

getHashTags Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
pagedoubleНі

Відповідь

Повертає: GetHashTagsResponse

Приклад

Приклад getHashTags
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> page = 2.0;
4
5api->getHashTags(tenantId, page).then([](pplx::task<std::shared_ptr<GetHashTagsResponse>> task) {
6 try {
7 auto resultPtr = task.get();
8 auto response = std::make_shared<GetHashTagsResponse>(*resultPtr);
9 // використати response
10 } catch (const std::exception&) {
11 // обробити помилку
12 }
13});
14

patchHashTag Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
tagstringТак
updateHashTagBodyUpdateHashTagBodyТак

Відповідь

Повертає: UpdateHashTagResponse

Приклад

patchHashTag Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t tag = U("important");
4auto body = std::make_shared<UpdateHashTagBody>();
5body->name = U("important-updated");
6body->description = boost::optional<utility::string_t>(U("Updated description"));
7api->patchHashTag(tenantId, tag, *body)
8 .then([](pplx::task<std::shared_ptr<UpdateHashTagResponse>> t){
9 try{
10 auto response = t.get();
11 std::cout << "Updated tag ID: " << response->id << std::endl;
12 }catch(const std::exception& e){
13 std::cerr << "Patch failed: " << e.what() << std::endl;
14 }
15 });
16

deleteModerationVote Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
voteIdstringТак
optionsconst DeleteModerationVoteOptions&Так

Відповідь

Повертає: VoteDeleteResponse

Приклад

Приклад deleteModerationVote
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-abc123");
4auto voteId = utility::conversions::to_string_t("vote-xyz789");
5DeleteModerationVoteOptions opts;
6opts.reason = utility::conversions::to_string_t("Offensive language");
7opts.hardDelete = boost::optional<bool>(true);
8api->deleteModerationVote(tenantId, commentId, voteId, opts)
9 .then([](std::shared_ptr<VoteDeleteResponse> resp){});
10

getApiComments Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst GetApiCommentsOptions&Так

Відповідь

Повертає: ModerationAPIGetCommentsResponse

Приклад

Приклад getApiComments
Copy Copy
1
2auto options = GetApiCommentsOptions{};
3options.page = boost::make_optional(2);
4options.authorEmail = boost::make_optional<utility::string_t>(U("user@example.com"));
5options.includeDeleted = boost::make_optional(false);
6
7api->getApiComments(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<ModerationAPIGetCommentsResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

getApiExportStatus Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetApiExportStatusOptions&Так

Відповідь

Повертає: ModerationExportStatusResponse

Приклад

getApiExportStatus Приклад
Copy Copy
1
2auto opts = GetApiExportStatusOptions{};
3opts.exportId = boost::make_optional<utility::string_t>(U("export-456"));
4api->getApiExportStatus(U("my-tenant-123"), opts)
5 .then([](pplx::task<std::shared_ptr<ModerationExportStatusResponse>> t){
6 try{
7 auto status = t.get();
8 }catch(const std::exception&){
9 }
10 });
11

getApiIds Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst GetApiIdsOptions&Так

Відповідь

Повертає: ModerationAPIGetCommentIdsResponse

Приклад

Приклад getApiIds
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetApiIdsOptions options;
4options.limit = boost::optional<int>(100);
5options.cursor = boost::optional<utility::string_t>(U("next-page-token"));
6api->getApiIds(tenantId, options).then([](pplx::task<std::shared_ptr<ModerationAPIGetCommentIdsResponse>> t){
7 try{
8 auto response = t.get();
9 auto ids = response->commentIds;
10 }catch(const std::exception&){
11 }
12});
13

getBanUsersFromComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: GetBannedUsersFromCommentResponse

Приклад

Приклад getBanUsersFromComment
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("comment-456"));
4boost::optional<utility::string_t> sso = boost::make_optional(utility::string_t(U("sso-token-abc")));
5
6api->getBanUsersFromComment(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<GetBannedUsersFromCommentResponse>> task) {
7 try {
8 auto response = task.get();
9 } catch (const std::exception&) {
10 }
11});
12

getCommentBanStatus Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: GetCommentBanStatusResponse

Приклад

getCommentBanStatus Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U"my-tenant-123");
3auto commentId = utility::string_t(U"comment-456");
4boost::optional<utility::string_t> sso = utility::string_t(U"user@example.com");
5
6api->getCommentBanStatus(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<GetCommentBanStatusResponse>> t){
7 try{
8 auto response = t.get();
9 }catch(const std::exception&){ }
10});
11

getCommentChildren Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: ModerationAPIChildCommentsResponse

Приклад

Приклад getCommentChildren
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getCommentChildren(tenantId, commentId, sso)
7 .then([](pplx::task<std::shared_ptr<ModerationAPIChildCommentsResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

getCount Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
optionsconst GetCountOptions&Так

Відповідь

Повертає: ModerationAPICountCommentsResponse

Приклад

Приклад getCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetCountOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.maxResults = boost::optional<int>(100);
6api->getCount(tenantId, options).then([](pplx::task<std::shared_ptr<ModerationAPICountCommentsResponse>> task){
7 try{
8 auto resp = task.get();
9 auto copy = std::make_shared<ModerationAPICountCommentsResponse>(*resp);
10 std::cout << "Count: " << copy->count << std::endl;
11 }catch(const std::exception& e){
12 std::cerr << "Error: " << e.what() << std::endl;
13 }
14});
15

getCounts Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
ssostringNo

Відповідь

Повертає: GetBannedUsersCountResponse

Приклад

Приклад getCounts
Copy Copy
1
2api->getCounts(
3 utility::conversions::to_string_t("my-tenant-123"),
4 boost::optional<utility::string_t>(utility::conversions::to_string_t("john.doe@example.com"))
5).then([](pplx::task<std::shared_ptr<GetBannedUsersCountResponse>> t){
6 try{
7 auto response = t.get();
8 }catch(const std::exception&){
9 }
10});
11

getLogs Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: ModerationAPIGetLogsResponse

Приклад

getLogs Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getLogs(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<ModerationAPIGetLogsResponse>> t){
7 try{
8 auto response = t.get();
9 }catch(...){
10 }
11});
12

getManualBadges Internal Link

Parameters

НазваТипОбов'язковоОпис
tenantIdstringYes
ssostringNo

Відповідь

Повертає: GetTenantManualBadgesResponse

Приклад

Приклад getManualBadges
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> sso = boost::make_optional(U("user@example.com"));
4
5api->getManualBadges(tenantId, sso)
6 .then([](pplx::task<std::shared_ptr<GetTenantManualBadgesResponse>> t) {
7 try {
8 auto response = t.get();
9 // обробити відповідь, напр., response->badgeList
10 } catch (const std::exception& ex) {
11 // обробити помилку
12 }
13 });
14

getManualBadgesForUser Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetManualBadgesForUserOptions&Так

Відповідь

Повертає: GetUserManualBadgesResponse

Приклад

getManualBadgesForUser Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetManualBadgesForUserOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.includeInactive = boost::optional<bool>(true);
6api->getManualBadgesForUser(tenantId, options).then([](pplx::task<std::shared_ptr<GetUserManualBadgesResponse>> task){
7 try{
8 auto response = task.get();
9 }catch(const std::exception&){
10 }
11});
12

getModerationComment Internal Link

Параметри

Ім'яТипОбов'язковийОпис
tenantIdstringYes
commentIdstringYes
optionsconst GetModerationCommentOptions&Yes

Відповідь

Повертає: ModerationAPICommentResponse

Приклад

getModerationComment Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-456");
4GetModerationCommentOptions options;
5options.includeDeleted = boost::optional<bool>(true);
6options.locale = boost::optional<utility::string_t>(utility::conversions::to_string_t("en-US"));
7api->getModerationComment(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<ModerationAPICommentResponse>> task) {
9 try {
10 auto response = task.get();
11 // Обробити відповідь за потребою
12 } catch (const std::exception& ex) {
13 // Обробити помилку
14 }
15 });
16

getModerationCommentText Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: GetCommentTextResponse

Приклад

Приклад getModerationCommentText
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getModerationCommentText(tenantId, commentId, sso)
7 .then([](pplx::task<std::shared_ptr<GetCommentTextResponse>> t) {
8 try {
9 auto resp = t.get();
10 auto text = std::make_shared<std::string>(resp->commentText);
11 } catch (const std::exception&) {
12 }
13 });
14

getPreBanSummary Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
commentIdstringYes
optionsconst GetPreBanSummaryOptions&Yes

Відповідь

Повертає: PreBanSummary

Приклад

getPreBanSummary Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4GetPreBanSummaryOptions options;
5options.locale = boost::optional<utility::string_t>{utility::conversions::to_string_t("en-US")};
6
7api->getPreBanSummary(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<PreBanSummary>> t) {
9 try {
10 auto summary = t.get();
11 // обробити підсумок
12 } catch (const std::exception&) {
13 // обробити помилку
14 }
15 });
16

getSearchCommentsSummary Internal Link

Parameters

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetSearchCommentsSummaryOptions&Так

Response

Повертає: ModerationCommentSearchResponse

Example

Приклад getSearchCommentsSummary
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto options = std::make_shared<GetSearchCommentsSummaryOptions>();
4options->query = utility::conversions::to_string_t("spam");
5options->pageSize = boost::optional<int>(50);
6options->pageNumber = boost::optional<int>(1);
7options->fromDate = boost::none;
8api->getSearchCommentsSummary(tenantId, *options).then([](pplx::task<std::shared_ptr<ModerationCommentSearchResponse>> task){
9 try{
10 auto response = task.get();
11 }catch(const std::exception&){
12 }
13});
14

getSearchPages Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
optionsconst GetSearchPagesOptions&Yes

Відповідь

Повертає: ModerationPageSearchResponse

Приклад

Приклад getSearchPages
Copy Copy
1
2GetSearchPagesOptions options;
3options.pageNumber = boost::optional<int>(1);
4options.pageSize = boost::optional<int>(50);
5options.searchTerm = boost::optional<utility::string_t>(U("spam"));
6
7api->getSearchPages(U("my-tenant-123"), options)
8 .then([](pplx::task<std::shared_ptr<ModerationPageSearchResponse>> task) {
9 try {
10 auto response = task.get();
11 // використати відповідь
12 } catch (const std::exception& e) {
13 // обробити помилку
14 }
15 });
16

getSearchSites Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst GetSearchSitesOptions&Так

Відповідь

Повертає: ModerationSiteSearchResponse

Приклад

getSearchSites Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetSearchSitesOptions options;
4options.query = boost::make_optional(utility::string_t(U("example query")));
5options.limit = boost::make_optional(25);
6
7api->getSearchSites(tenantId, options)
8 .then([](pplx::task<std::shared_ptr<ModerationSiteSearchResponse>> t) {
9 try {
10 auto response = t.get();
11 auto respPtr = std::make_shared<ModerationSiteSearchResponse>(*response);
12 for (const auto& site : respPtr->sites) {
13 // логіка обробки
14 }
15 } catch (const std::exception&) {
16 // обробка помилок
17 }
18 });
19

getSearchSuggest Internal Link


Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetSearchSuggestOptions&Так

Відповідь

Повертає: ModerationSuggestResponse

Приклад

Приклад getSearchSuggest
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetSearchSuggestOptions opts;
4opts.query = U("search term");
5opts.limit = boost::optional<int>(5);
6opts.includeInactive = boost::optional<bool>(false);
7api->getSearchSuggest(tenantId, opts).then([](pplx::task<std::shared_ptr<ModerationSuggestResponse>> t){
8 try{
9 auto resp = t.get();
10 }catch(const std::exception&){ }
11}).wait();
12

getSearchUsers Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetSearchUsersOptions&Так

Response

Повертає: ModerationUserSearchResponse

Example

Приклад getSearchUsers
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetSearchUsersOptions opts;
4opts.query = utility::string_t(U("john.doe@example.com"));
5opts.page = boost::optional<int>(1);
6opts.pageSize = boost::optional<int>(20);
7
8api->getSearchUsers(tenantId, opts)
9 .then([](std::shared_ptr<ModerationUserSearchResponse> resp) {
10 for (const auto& user : resp->users) {
11 std::wcout << user.id << L" - " << user.email << std::endl;
12 }
13 });
14

getTrustFactor Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
optionsconst GetTrustFactorOptions&Yes

Відповідь

Повертає: GetUserTrustFactorResponse

Приклад

Приклад getTrustFactor
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetTrustFactorOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.ipAddress = boost::optional<utility::string_t>(U("203.0.113.42"));
6api->getTrustFactor(tenantId, options).then([](std::shared_ptr<GetUserTrustFactorResponse> resp) {
7 if (resp) {
8 std::cout << "Trust factor: " << resp->trustFactor << std::endl;
9 }
10});
11

getUserBanPreference Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
ssostringNo

Відповідь

Повертає: APIModerateGetUserBanPreferencesResponse

Приклад

getUserBanPreference Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
4
5api->getUserBanPreference(tenantId, sso)
6 .then([](pplx::task<std::shared_ptr<APIModerateGetUserBanPreferencesResponse>> t) {
7 try {
8 auto resp = t.get();
9 } catch (const std::exception&) {
10 }
11 });
12

getUserInternalProfile Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
optionsconst GetUserInternalProfileOptions&Yes

Відповідь

Повертає: GetUserInternalProfileResponse

Приклад

Приклад getUserInternalProfile
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetUserInternalProfileOptions options;
4options.email = boost::optional<utility::string_t>(U("user@example.com"));
5options.includeDetails = boost::optional<bool>(true);
6
7api->getUserInternalProfile(tenantId, options)
8 .then([](std::shared_ptr<GetUserInternalProfileResponse> response) {
9 if (response) {
10 auto name = response->displayName;
11 auto id = response->userId;
12 }
13 });
14

postAdjustCommentVotes Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
commentIdstringТак
adjustCommentVotesParamsAdjustCommentVotesParamsТак
optionsconst PostAdjustCommentVotesOptions&Так

Відповідь

Повертає: AdjustVotesResponse

Приклад

postAdjustCommentVotes Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4AdjustCommentVotesParams params;
5params.voteDelta = 1;
6params.userIdentifier = utility::conversions::to_string_t("user@example.com");
7params.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Helpful"));
8PostAdjustCommentVotesOptions opts;
9opts.timeout = boost::optional<int>(30);
10api->postAdjustCommentVotes(tenantId, commentId, params, opts).then([](pplx::task<std::shared_ptr<AdjustVotesResponse>> t){
11 try{
12 auto resp = t.get();
13 }catch(const std::exception& e){
14 }
15});
16

postApiExport Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst PostApiExportOptions&Так

Відповідь

Повертає: ModerationExportResponse

Приклад

postApiExport Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3PostApiExportOptions options;
4options.format = utility::string_t(U("json"));
5options.email = utility::string_t(U("reports@example.com"));
6options.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z")));
7options.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z")));
8
9api->postApiExport(tenantId, options)
10 .then([](std::shared_ptr<ModerationExportResponse> response) {
11 if (response) {
12 // обробка успішної відповіді експорту
13 }
14 })
15 .wait();
16

postBanUserFromComment Internal Link


Параметри

Ім'яТипОбов'язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst PostBanUserFromCommentOptions&Так

Відповідь

Повертає: BanUserFromCommentResult

Приклад

postBanUserFromComment Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456789");
4PostBanUserFromCommentOptions options;
5options.reason = boost::optional<utility::string_t>(U("spam"));
6options.durationDays = boost::optional<int>(30);
7
8api->postBanUserFromComment(tenantId, commentId, options)
9 .then([](std::shared_ptr<BanUserFromCommentResult> result) {
10 // обробка результату
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception& e) { /* обробка помилки */ }
14 });
15

postBanUserUndo Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsYes
ssostringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад postBanUserUndo
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3BanUserUndoParams banParams;
4banParams.userId = utility::string_t(U("user-567"));
5banParams.reason = utility::string_t(U("reinstated"));
6boost::optional<utility::string_t> sso = utility::string_t(U("sso-token-abc"));
7
8api->postBanUserUndo(tenantId, banParams, sso).then([](std::shared_ptr<APIEmptyResponse> resp){
9 // handle success
10});
11

postBulkPreBanSummary Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
bulkPreBanParamsBulkPreBanParamsТак
optionsconst PostBulkPreBanSummaryOptions&Так

Відповідь

Повертає: BulkPreBanSummary

Приклад

postBulkPreBanSummary Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3BulkPreBanParams bulkPreBanParams;
4bulkPreBanParams.emails = {
5 utility::conversions::to_string_t("spam1@example.com"),
6 utility::conversions::to_string_t("spam2@example.com")
7};
8bulkPreBanParams.reason = utility::conversions::to_string_t("spam");
9PostBulkPreBanSummaryOptions options;
10options.requestId = boost::optional<utility::string_t>(utility::conversions::to_string_t("req-456"));
11api->postBulkPreBanSummary(tenantId, bulkPreBanParams, options)
12 .then([](std::shared_ptr<BulkPreBanSummary> result) {
13 (void)result;
14 });
15

postCommentsByIds Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
commentsByIdsParamsCommentsByIdsParamsYes
ssostringNo

Відповідь

Повертає: ModerationAPIChildCommentsResponse

Приклад

Приклад postCommentsByIds
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3CommentsByIdsParams params;
4params.commentIds = {U("cmt-001"), U("cmt-002")};
5boost::optional<utility::string_t> sso = U("sso-token-abc");
6api->postCommentsByIds(tenantId, params, sso).then([](pplx::task<std::shared_ptr<ModerationAPIChildCommentsResponse>> t){
7 try{
8 auto resp = t.get();
9 auto copy = std::make_shared<ModerationAPIChildCommentsResponse>(*resp);
10 }catch(const std::exception&){ }
11});
12

postFlagComment Internal Link

Параметри

Ім'яТипОбов'язковийОпис
tenantIdstringYes
commentIdstringYes
optionsconst PostFlagCommentOptions&Yes

Відповідь

Повертає: APIEmptyResponse

Приклад

postFlagComment Приклад
Copy Copy
1
2PostFlagCommentOptions options;
3options.reason = boost::optional<utility::string_t>(U("spam"));
4options.reportedBy = boost::optional<utility::string_t>(U("moderator@example.com"));
5
6api->postFlagComment(U("my-tenant-123"), U("comment-456"), options)
7 .then([](std::shared_ptr<APIEmptyResponse> resp){
8 (void)resp;
9 })
10 .then([](pplx::task<void> t){
11 try{
12 t.get();
13 }catch(const std::exception&){
14 }
15 });
16

postRemoveComment Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst PostRemoveCommentOptions&Так

Відповідь

Повертає: PostRemoveCommentApiResponse

Приклад

postRemoveComment Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("cmt-456789"));
4PostRemoveCommentOptions options;
5options.permanent = boost::optional<bool>(true);
6api->postRemoveComment(tenantId, commentId, options)
7 .then([](pplx::task<std::shared_ptr<PostRemoveCommentApiResponse>> task) {
8 try {
9 auto response = task.get();
10 // Обробити відповідь
11 } catch (const std::exception& ex) {
12 // Обробити помилку
13 }
14 });
15

postRestoreDeletedComment Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostRestoreDeletedCommentOptions&Yes

Відповідь

Повертає: APIEmptyResponse

Приклад

postRestoreDeletedComment Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654");
4PostRestoreDeletedCommentOptions options;
5options.reason = boost::optional<utility::string_t>(U("Restoring after accidental delete"));
6options.notifyUser = boost::optional<bool>(true);
7api->postRestoreDeletedComment(tenantId, commentId, options)
8 .then([](std::shared_ptr<APIEmptyResponse> resp){
9 });
10

postSetCommentApprovalStatus Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst PostSetCommentApprovalStatusOptions&Так

Відповідь

Повертає: SetCommentApprovedResponse

Приклад

postSetCommentApprovalStatus Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-abc123");
4auto options = std::make_shared<PostSetCommentApprovalStatusOptions>();
5options->approved = boost::optional<bool>(true);
6options->reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Inappropriate content"));
7api->postSetCommentApprovalStatus(tenantId, commentId, *options)
8 .then([](pplx::task<std::shared_ptr<SetCommentApprovedResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception& ex) {
12 }
13 });
14

postSetCommentReviewStatus Internal Link


Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentReviewStatusOptions&Yes

Відповідь

Повертає: APIEmptyResponse

Приклад

postSetCommentReviewStatus Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4PostSetCommentReviewStatusOptions opts;
5opts.status = utility::conversions::to_string_t("approved");
6opts.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Looks good"));
7api->postSetCommentReviewStatus(tenantId, commentId, opts)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception& e){
12 }
13 });
14

postSetCommentSpamStatus Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst PostSetCommentSpamStatusOptions&Так

Відповідь

Повертає: APIEmptyResponse

Приклад

postSetCommentSpamStatus Приклад
Copy Copy
1
2auto options = PostSetCommentSpamStatusOptions{};
3options.isSpam = true;
4options.reason = boost::optional<utility::string_t>{U"User reported spam"};
5
6api->postSetCommentSpamStatus(U("my-tenant-123"), U("comment-789"), options)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 auto copy = std::make_shared<APIEmptyResponse>(*resp);
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch(const std::exception&) {}
12 });
13

postSetCommentText Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsYes
optionsconst PostSetCommentTextOptions&Yes

Відповідь

Повертає: SetCommentTextResponse

Приклад

postSetCommentText Приклад
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentId = U("comment-456");
4SetCommentTextParams params;
5params.text = U("Revised comment content");
6PostSetCommentTextOptions options;
7options.requestId = boost::optional<utility::string_t>(U("req-987"));
8api->postSetCommentText(tenantId, commentId, params, options)
9 .then([](std::shared_ptr<SetCommentTextResponse> resp) {
10 auto updatedId = resp->commentId;
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception&) {}
14 });
15

postUnFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostUnFlagCommentOptions&Yes

Response

Повертає: APIEmptyResponse

Example

postUnFlagComment Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4PostUnFlagCommentOptions opts;
5opts.notifyUser = boost::optional<bool>(true);
6api->postUnFlagComment(tenantId, commentId, opts)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 // обробку можна виконати тут
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

postVote Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
commentIdstringТак
optionsconst PostVoteOptions&Так

Відповідь

Повертає: VoteResponse

Приклад

Приклад postVote
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4PostVoteOptions options;
5options.upvote = boost::make_optional(true);
6options.reason = boost::make_optional<std::string>("Inappropriate content");
7api->postVote(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<VoteResponse>> t) {
9 try {
10 auto resp = t.get();
11 auto count = resp->voteCount;
12 } catch (const std::exception& e) {
13 }
14 });
15

putAwardBadge Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
badgeIdstringYes
optionsconst PutAwardBadgeOptions&Yes

Відповідь

Повертає: AwardUserBadgeResponse

Приклад

putAwardBadge Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto badgeId = utility::conversions::to_string_t("badge-456");
4PutAwardBadgeOptions opts;
5opts.userId = utility::conversions::to_string_t("user-42");
6opts.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Excellent comment"));
7api->putAwardBadge(tenantId, badgeId, opts).then([](pplx::task<std::shared_ptr<AwardUserBadgeResponse>> t){
8 try{
9 auto resp = t.get();
10 auto respCopy = std::make_shared<AwardUserBadgeResponse>(*resp);
11 }catch(const std::exception& e){
12 }
13});
14

putCloseThread Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
urlIdstringТак
ssostringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад putCloseThread
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-4321"));
3auto urlId = utility::string_t(U("article-9876"));
4boost::optional<utility::string_t> sso = boost::make_optional<utility::string_t>(U("user@example.com"));
5
6api->putCloseThread(tenantId, urlId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task){
7 try{
8 auto response = task.get();
9 }catch(const std::exception&){
10 }
11});
12

putRemoveBadge Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
badgeIdstringYes
optionsconst PutRemoveBadgeOptions&Yes

Відповідь

Повертає: RemoveUserBadgeResponse

Приклад

Приклад putRemoveBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t badgeId = U("badge-abc-456");
4PutRemoveBadgeOptions options;
5options.reason = boost::optional<utility::string_t>(U("Spamming"));
6api->putRemoveBadge(tenantId, badgeId, options).then([](std::shared_ptr<RemoveUserBadgeResponse> resp) {
7 (void)resp;
8});
9

putReopenThread Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
urlIdstringТак
ssostringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

putReopenThread Приклад
Copy Copy
1
2api->putReopenThread(utility::string_t(U("my-tenant-123")), utility::string_t(U("thread-456")), boost::make_optional<utility::string_t>(U("user@example.com")))
3 .then([](std::shared_ptr<APIEmptyResponse> result){
4 std::cout << "Thread reopened" << std::endl;
5 });
6

setTrustFactor Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
optionsconst SetTrustFactorOptions&Так

Відповідь

Повертає: SetUserTrustFactorResponse

Приклад

Приклад setTrustFactor
Copy Copy
1
2SetTrustFactorOptions opts;
3opts.userId = utility::conversions::to_string_t("user@example.com");
4opts.trustFactor = 8;
5opts.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Spam check passed"));
6api->setTrustFactor(utility::conversions::to_string_t("my-tenant-123"), opts)
7 .then([](pplx::task<std::shared_ptr<SetUserTrustFactorResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

createModerator Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
createModeratorBodyCreateModeratorBodyТак

Відповідь

Повертає: CreateModeratorResponse

Приклад

Приклад createModerator
Copy Copy
1
2CreateModeratorBody moderatorBody;
3moderatorBody.email = utility::conversions::to_string_t("moderator@example.com");
4moderatorBody.name = utility::conversions::to_string_t("John Moderator");
5moderatorBody.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Community moderator"));
6api->createModerator(utility::conversions::to_string_t("my-tenant-123"), moderatorBody)
7 .then([](std::shared_ptr<CreateModeratorResponse> resp) {});
8

deleteModerator Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
idstringYes
sendEmailstringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

deleteModerator Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto moderatorId = utility::conversions::to_string_t("mod-456");
4boost::optional<utility::string_t> sendEmail = utility::conversions::to_string_t("admin@example.com");
5api->deleteModerator(tenantId, moderatorId, sendEmail)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {
7 // обробити успіх
8 });
9

getModerator Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Відповідь

Повертає: GetModeratorResponse

Приклад

Приклад getModerator
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto moderatorId = utility::string_t(U("moderator-789"));
4api->getModerator(tenantId, moderatorId)
5 .then([](pplx::task<std::shared_ptr<GetModeratorResponse>> t) {
6 try {
7 auto response = t.get();
8 } catch (const std::exception&) {
9 }
10 });
11

getModerators Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
skipdoubleNo

Відповідь

Повертає: GetModeratorsResponse

Приклад

Приклад getModerators
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = 10.0;
4api->getModerators(tenantId, skip).then([](pplx::task<std::shared_ptr<GetModeratorsResponse>> t){
5 auto response = t.get();
6});
7

sendInvite Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак
fromNamestringТак

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад sendInvite
Copy Copy
1
2boost::optional<utility::string_t> cc = utility::conversions::to_string_t("cc@example.com");
3api->sendInvite(
4 utility::conversions::to_string_t("my-tenant-123"),
5 utility::conversions::to_string_t("invitee@example.com"),
6 utility::conversions::to_string_t("John Doe")
7).then([](std::shared_ptr<APIEmptyResponse> resp) {
8 // обробити успішне запрошення
9});
10

updateModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

Response

Повертає: APIEmptyResponse

Example

Приклад updateModerator
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto moderatorId = utility::conversions::to_string_t("mod-789");
4UpdateModeratorBody body;
5body.email = utility::conversions::to_string_t("moderator@example.com");
6body.isActive = true;
7body.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Senior moderator"));
8api->updateModerator(tenantId, moderatorId, body)
9 .then([](std::shared_ptr<APIEmptyResponse>) {})
10 .then([](pplx::task<void> t) { try { t.get(); } catch (const std::exception&) {} });
11

deleteNotificationCount Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: APIEmptyResponse

Приклад

deleteNotificationCount Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto notificationId = utility::conversions::to_string_t("notif-789");
4
5api->deleteNotificationCount(tenantId, notificationId)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {})
7 .then([](pplx::task<void> t) { try { t.get(); } catch (const std::exception&) {} });
8

getCachedNotificationCount Internal Link


Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: GetCachedNotificationCountResponse

Приклад

Приклад getCachedNotificationCount
Copy Copy
1
2auto tenantId = boost::optional<utility::string_t>(utility::conversions::to_string_t("my-tenant-123"));
3auto userId = boost::optional<utility::string_t>(utility::conversions::to_string_t("user-456"));
4
5api->getCachedNotificationCount(tenantId.value(), userId.value())
6 .then([](pplx::task<std::shared_ptr<GetCachedNotificationCountResponse>> task) {
7 try {
8 auto response = task.get();
9 // обробити відповідь
10 } catch (const std::exception&) {
11 // обробити помилку
12 }
13 });
14

getNotificationCount Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetNotificationCountOptions&Так

Відповідь

Повертає: GetNotificationCountResponse

Приклад

Приклад getNotificationCount
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3GetNotificationCountOptions options;
4options.filter = boost::optional<utility::string_t>(U("unread"));
5options.maxCount = boost::optional<int>(10);
6api->getNotificationCount(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetNotificationCountResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception& ex) {
11 }
12 });
13

getNotifications Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst GetNotificationsOptions&Так

Відповідь

Повертає: GetNotificationsResponse

Приклад

Приклад getNotifications
Copy Copy
1
2GetNotificationsOptions options;
3options.limit = 20;
4options.after = U("cursor-123");
5api->getNotifications(U("my-tenant-123"), options)
6 .then([](std::shared_ptr<GetNotificationsResponse> resp) {
7 (void)resp;
8 });
9

updateNotification Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
updateNotificationBodyUpdateNotificationBodyТак
userIdstringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад updateNotification
Copy Copy
1
2auto updateBody = std::make_shared<UpdateNotificationBody>();
3updateBody->title = utility::conversions::to_string_t("System Maintenance");
4updateBody->message = utility::conversions::to_string_t("Scheduled downtime at 02:00 UTC.");
5api->updateNotification(
6 utility::conversions::to_string_t("my-tenant-123"),
7 utility::conversions::to_string_t("notif-456"),
8 updateBody,
9 boost::optional<utility::string_t>(utility::conversions::to_string_t("admin-user"))
10).then([](std::shared_ptr<APIEmptyResponse>){});
11

createV1PageReact Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
urlIdstringТак
titlestringНі

Відповідь

Повертає: CreateV1PageReact

Приклад

createV1PageReact Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("https://example.com/articles/789"));
4boost::optional<utility::string_t> title = utility::string_t(U("Understanding Async C++"));
5api->createV1PageReact(tenantId, urlId, title).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task) {
6 try {
7 auto response = task.get();
8 } catch (const std::exception&) {
9 }
10});
11

createV2PageReact Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
urlIdstringТак
idstringТак
titlestringНі

Відповідь

Повертає: CreateV1PageReact

Приклад

createV2PageReact Приклад
Copy Copy
1
2api->createV2PageReact(
3 utility::string_t(U("my-tenant-789")),
4 utility::string_t(U("https://example.com/articles/12345")),
5 utility::string_t(U("user-42")),
6 boost::optional<utility::string_t>(U("Helpful"))
7).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){ }
11});
12

deleteV1PageReact Internal Link


Параметри

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Відповідь

Повертає: CreateV1PageReact

Приклад

deleteV1PageReact Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-abc-456");
4api->deleteV1PageReact(tenantId, urlId).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task){
5 try{
6 auto response = task.get();
7 boost::optional<std::shared_ptr<CreateV1PageReact>> optResponse = response;
8 }catch(...){
9 }
10});
11

deleteV2PageReact Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
urlIdstringYes
idstringYes

Відповідь

Повертає: CreateV1PageReact

Приклад

Приклад deleteV2PageReact
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4auto reactId = utility::conversions::to_string_t("react-789");
5boost::optional<utility::string_t> correlationId = utility::conversions::to_string_t("corr-001");
6
7api->deleteV2PageReact(tenantId, urlId, reactId)
8 .then([](pplx::task<std::shared_ptr<CreateV1PageReact>> t) {
9 auto result = t.get();
10 });
11

getV1PageLikes Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
urlIdstringТак

Відповідь

Повертає: GetV1PageLikes

Приклад

Приклад getV1PageLikes
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("article-789");
4boost::optional<utility::string_t> filter;
5
6api->getV1PageLikes(tenantId, urlId).then([=](pplx::task<std::shared_ptr<GetV1PageLikes>> task){
7 try{
8 auto raw = task.get();
9 auto likes = std::make_shared<GetV1PageLikes>(*raw);
10 auto total = likes->totalLikes;
11 }catch(...){
12 }
13});
14

getV2PageReacts Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
urlIdstringYes

Відповідь

Повертає: GetV2PageReacts

Приклад

getV2PageReacts Приклад
Copy Copy
1
2auto tenantId = utility::string_t("my-tenant-123");
3auto urlId = utility::string_t("https://example.com/article/42");
4boost::optional<utility::string_t> locale = utility::string_t("en-US");
5api->getV2PageReacts(tenantId, urlId)
6 .then([locale](std::shared_ptr<GetV2PageReacts> reacts){
7 if (locale) {}
8 })
9 .then([](pplx::task<void> t){
10 try { t.get(); } catch (...) {}
11 });
12

getV2PageReactUsers Internal Link

Parameters

НазваТипОбов'язковоОпис
tenantIdstringТак
urlIdstringТак
idstringТак

Відповідь

Повертає: GetV2PageReactUsersResponse

Приклад

Приклад getV2PageReactUsers
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4auto id = utility::conversions::to_string_t("react-789");
5boost::optional<utility::string_t> maybeFilter;
6api->getV2PageReactUsers(tenantId, urlId, id).then([](pplx::task<std::shared_ptr<GetV2PageReactUsersResponse>> task){
7 try{
8 auto response = task.get();
9 // Use response as needed
10 }catch(const std::exception&){
11 // Handle error
12 }
13});
14

addPage Internal Link

Параметри

НазваТипНеобхідноОпис
tenantIdstringYes
createAPIPageDataCreateAPIPageDataYes

Відповідь

Повертає: AddPageAPIResponse

Приклад

addPage Приклад
Copy Copy
1
2auto createData = CreateAPIPageData{};
3createData.title = utility::string_t(U("Welcome Page"));
4createData.url = utility::string_t(U("https://example.com/welcome"));
5createData.description = boost::optional<utility::string_t>(utility::string_t(U("Landing page for new users")));
6
7api->addPage(utility::string_t(U("my-tenant-123")), createData)
8 .then([](std::shared_ptr<AddPageAPIResponse> response) {
9 if (response && response->success) {
10 // обробити успішне додавання
11 } else {
12 // обробити помилку
13 }
14 });
15

deletePage Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: DeletePageAPIResponse

Приклад

Приклад deletePage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto pageId = utility::conversions::to_string_t("page-456");
4
5api->deletePage(tenantId, pageId)
6 .then([](pplx::task<std::shared_ptr<DeletePageAPIResponse>> t) {
7 try {
8 auto response = t.get();
9 // обробити відповідь за потреби
10 } catch (const std::exception& ex) {
11 // обробити помилку
12 }
13 });
14

getOfflineUsers Internal Link

Попередні коментатори на сторінці, які НЕ перебувають онлайн. Сортовано за displayName.
Використовуйте це після вичерпання /users/online, щоб відобразити розділ “Учасники”.
Пагінація курсора за commenterName: сервер проходить частковий {tenantId, urlId, commenterName}
індекс від afterName вперед за допомогою $gt, без вартості $skip.

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
urlIdstringYes
optionsconst GetOfflineUsersOptions&Yes

Відповідь

Повертає: PageUsersOfflineResponse

Приклад

Приклад getOfflineUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("page-456");
4GetOfflineUsersOptions options;
5options.limit = boost::optional<int>(50);
6options.includeDetails = boost::optional<bool>(true);
7
8api->getOfflineUsers(tenantId, urlId, options)
9 .then([](pplx::task<std::shared_ptr<PageUsersOfflineResponse>> t) {
10 try {
11 auto response = t.get();
12 } catch (const std::exception&) {
13 }
14 });
15

getOnlineUsers Internal Link

Currently-online viewers of a page: people whose websocket session is subscribed to the page right now. Поточні онлайн глядачі сторінки: люди, чиї WebSocket‑сесії підписані на сторінку в даний момент.

Returns anonCount + totalCount (room-wide subscribers, including anon viewers we don't enumerate). Повертає anonCount + totalCount (підписники по всій кімнаті, включаючи анонімних глядачів, яких ми не перелічуємо).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsconst GetOnlineUsersOptions&Yes

Response

Повертає: PageUsersOnlineResponse

Приклад

Приклад getOnlineUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-456");
4auto options = std::make_shared<GetOnlineUsersOptions>();
5options->maxResults = boost::optional<int>(100);
6options->includeInactive = boost::optional<bool>(false);
7api->getOnlineUsers(tenantId, urlId, *options).then([](pplx::task<std::shared_ptr<PageUsersOnlineResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

getPageByURLId Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
urlIdstringТак

Відповідь

Повертає: GetPageByURLIdAPIResponse

Приклад

Приклад getPageByURLId
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4boost::optional<utility::string_t> correlationId = boost::make_optional(utility::conversions::to_string_t("corr-789"));
5
6api->getPageByURLId(tenantId, urlId)
7 .then([correlationId](pplx::task<std::shared_ptr<GetPageByURLIdAPIResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

getPages Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes

Відповідь

Повертає: GetPagesAPIResponse

Приклад

getPages Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3api->getPages(tenantId)
4 .then([](pplx::task<std::shared_ptr<GetPagesAPIResponse>> task) {
5 try {
6 auto response = task.get();
7 boost::optional<utility::string_t> nextCursor = response->nextCursor;
8 } catch (const std::exception&) {
9 }
10 });
11

getPagesPublic Internal Link

List pages for a tenant. Used by the FChat desktop client to populate its room list.
Вимагає, щоб enableFChat було встановлено в true в розвʼязаній кастомній конфігурації для кожної сторінки.
Сторінки, які вимагають SSO, фільтруються відповідно до групового доступу запитуючого користувача.

Parameters

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetPagesPublicOptions&Так

Відповідь

Returns: GetPublicPagesResponse

Приклад

Приклад getPagesPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetPagesPublicOptions options;
4options.limit = boost::optional<int>(50);
5options.cursor = boost::optional<utility::string_t>(U("cursor-token"));
6api->getPagesPublic(tenantId, options).then([](pplx::task<std::shared_ptr<GetPublicPagesResponse>> task){
7 try{
8 auto response = task.get();
9 // обробити відповідь, якщо потрібно
10 }catch(const std::exception&){
11 // обробити помилку, якщо потрібно
12 }
13});
14

getUsersInfo 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).

Parameters

НазваТипОбов'язковоОпис
tenantIdstringYes
idsstringYes

Response

Returns: PageUsersInfoResponse

Example

Приклад getUsersInfo
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t ids = U("alice@example.com,bob@example.com");
4boost::optional<utility::string_t> locale = boost::make_optional(U("en-US"));
5
6api->getUsersInfo(tenantId, ids).then([](pplx::task<std::shared_ptr<PageUsersInfoResponse>> t){
7 try{
8 auto response = t.get();
9 // обробити відповідь
10 }catch(const std::exception&){
11 // обробити помилку
12 }
13});
14

patchPage Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
idstringYes
updateAPIPageDataUpdateAPIPageDataYes

Відповідь

Повертає: PatchPageAPIResponse

Приклад

patchPage Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t pageId = U("page-789");
4UpdateAPIPageData update;
5update.title = boost::optional<utility::string_t>(U("Updated Page Title"));
6update.metadata = boost::optional<utility::string_t>(U("{\"author\":\"jane.doe@example.com\"}"));
7api->patchPage(tenantId, pageId, update)
8 .then([](std::shared_ptr<PatchPageAPIResponse> response) {
9 if (response && response->isSuccess) {
10 // обробити успіх
11 }
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception&) {}
15 });
16

deletePendingWebhookEvent Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: APIEmptyResponse

Приклад

deletePendingWebhookEvent Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto eventId = utility::conversions::to_string_t("event-987654");
4boost::optional<utility::string_t> optTenant = tenantId;
5
6api->deletePendingWebhookEvent(optTenant.value(), eventId)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 (void)resp;
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception& e) { }
12 });
13

getPendingWebhookEventCount Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
optionsconst GetPendingWebhookEventCountOptions&Yes

Відповідь

Повертає: GetPendingWebhookEventCountResponse

Приклад

getPendingWebhookEventCount Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3GetPendingWebhookEventCountOptions opts;
4opts.filter = boost::optional<utility::string_t>(utility::conversions::to_string_t("active"));
5api->getPendingWebhookEventCount(tenantId, opts)
6 .then([](std::shared_ptr<GetPendingWebhookEventCountResponse> resp){
7 auto count = resp->getCount();
8 });
9

getPendingWebhookEvents Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringТак
optionsconst GetPendingWebhookEventsOptions&Так

Response

Повертає: GetPendingWebhookEventsResponse

Приклад

Приклад getPendingWebhookEvents
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetPendingWebhookEventsOptions opts;
4opts.pageSize = boost::optional<int>(100);
5opts.startAfter = boost::optional<utility::string_t>(U("event-abc-456"));
6api->getPendingWebhookEvents(tenantId, opts)
7 .then([](pplx::task<std::shared_ptr<GetPendingWebhookEventsResponse>> task) {
8 try {
9 auto resp = task.get();
10 auto copy = std::make_shared<GetPendingWebhookEventsResponse>(*resp);
11 } catch (const std::exception&) {}
12 });
13

createQuestionConfig Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
createQuestionConfigBodyCreateQuestionConfigBodyТак

Відповідь

Повертає: CreateQuestionConfigResponse

Приклад

Приклад createQuestionConfig
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3CreateQuestionConfigBody configBody;
4configBody.question = utility::string_t(U("How satisfied are you with our service?"));
5configBody.required = true;
6configBody.defaultAnswer = boost::optional<utility::string_t>(utility::string_t(U("Very satisfied")));
7api->createQuestionConfig(tenantId, configBody).then([](pplx::task<std::shared_ptr<CreateQuestionConfigResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){}
11});
12

deleteQuestionConfig Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад deleteQuestionConfig
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto configId = utility::conversions::to_string_t("question-config-456");
4
5api->deleteQuestionConfig(tenantId, configId)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {
7 // обробити успішне видалення
8 })
9 .then([](pplx::task<void> t) {
10 try {
11 t.get();
12 } catch (const std::exception&) {
13 // обробити помилку
14 }
15 });
16

getQuestionConfig Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
idstringТак

Відповідь

Повертає: GetQuestionConfigResponse

Приклад

getQuestionConfig Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto questionId = utility::conversions::to_string_t("question-456");
4
5api->getQuestionConfig(tenantId, questionId)
6 .then([](pplx::task<std::shared_ptr<GetQuestionConfigResponse>> task) {
7 try {
8 auto response = task.get();
9 // Використайте відповідь за потреби
10 } catch (const std::exception&) {
11 // Обробити помилку
12 }
13 });
14

getQuestionConfigs Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
skipdoubleNo

Відповідь

Повертає: GetQuestionConfigsResponse

Приклад

getQuestionConfigs Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<double> skip = 10.0;
4api->getQuestionConfigs(tenantId, skip).then([](std::shared_ptr<GetQuestionConfigsResponse> resp){
5 auto config = std::make_shared<GetQuestionConfigsResponse>(*resp);
6});
7

updateQuestionConfig Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

Відповідь

Повертає: APIEmptyResponse

Приклад

updateQuestionConfig Приклад
Copy Copy
1
2UpdateQuestionConfigBody updateBody;
3updateBody.enabled = true;
4updateBody.maxResponses = boost::optional<int>{10};
5updateBody.notes = boost::optional<utility::string_t>{U("Config updated via SDK")};
6
7api->updateQuestionConfig(U("my-tenant-123"), U("config-789"), updateBody)
8 .then([](std::shared_ptr<APIEmptyResponse> resp) {
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

createQuestionResult Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyYes

Відповідь

Повертає: CreateQuestionResultResponse

Приклад

Приклад createQuestionResult
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateQuestionResultBody body;
4body.questionId = U("question-456");
5body.result = U("approved");
6body.comment = boost::optional<utility::string_t>(U("Looks good"));
7api->createQuestionResult(tenantId, body)
8 .then([=](pplx::task<std::shared_ptr<CreateQuestionResultResponse>> t) {
9 try {
10 auto resp = t.get();
11 } catch (const std::exception&) {
12 }
13 });
14

deleteQuestionResult Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад deleteQuestionResult
Copy Copy
1
2boost::optional<utility::string_t> optTenant = utility::conversions::to_string_t( "my-tenant-123" );
3utility::string_t questionId = utility::conversions::to_string_t( "question-456" );
4
5if ( optTenant )
6{
7 api->deleteQuestionResult( *optTenant, questionId )
8 .then( []( pplx::task<std::shared_ptr<APIEmptyResponse>> t )
9 {
10 try
11 {
12 auto resp = t.get();
13 // обробка успіху
14 }
15 catch ( const std::exception& e )
16 {
17 // обробка помилки
18 }
19 } );
20}
21

getQuestionResult Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: GetQuestionResultResponse

Приклад

Приклад getQuestionResult
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto questionId = utility::string_t(U("question-789"));
4boost::optional<utility::string_t> optionalParam = boost::none;
5
6api->getQuestionResult(tenantId, questionId)
7 .then([](pplx::task<std::shared_ptr<GetQuestionResultResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

getQuestionResults Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
optionsconst GetQuestionResultsOptions&Так

Відповідь

Повертає: GetQuestionResultsResponse

Приклад

Приклад getQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetQuestionResultsOptions options;
4options.questionId = boost::optional<utility::string_t>(U("question-456"));
5options.includeDeleted = boost::optional<bool>(false);
6api->getQuestionResults(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetQuestionResultsResponse>> t) {
8 auto response = t.get();
9 // обробка відповіді
10 });
11

updateQuestionResult Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак
updateQuestionResultBodyUpdateQuestionResultBodyТак

Відповідь

Повертає: APIEmptyResponse

Приклад

updateQuestionResult Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto questionId = utility::string_t(U("question-456"));
4UpdateQuestionResultBody body;
5body.result = U("approved");
6body.note = boost::optional<utility::string_t>(U("Reviewed by admin"));
7api->updateQuestionResult(tenantId, questionId, body)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t) {
9 try {
10 auto respPtr = std::make_shared<APIEmptyResponse>(*t.get());
11 } catch (const std::exception&) {
12 }
13 });
14

aggregateQuestionResults Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
optionsconst AggregateQuestionResultsOptions&Yes

Відповідь

Повертає: AggregateQuestionResultsResponse

Приклад

aggregateQuestionResults Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3AggregateQuestionResultsOptions opts;
4opts.questionId = utility::conversions::to_string_t("question-789");
5opts.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z"), utility::datetime::ISO_8601));
6opts.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z"), utility::datetime::ISO_8601));
7api->aggregateQuestionResults(tenantId, opts)
8 .then([](std::shared_ptr<AggregateQuestionResultsResponse> resp) {
9 static_cast<void>(resp);
10 });
11

bulkAggregateQuestionResults Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestYes
forceRecalculateboolNo

Відповідь

Повертає: BulkAggregateQuestionResultsResponse

Приклад

bulkAggregateQuestionResults Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3BulkAggregateQuestionResultsRequest request;
4request.questionIds = {
5 utility::conversions::to_string_t("q123"),
6 utility::conversions::to_string_t("q456")
7};
8request.startDate = utility::datetime::from_string(U("2023-01-01T00:00:00Z"));
9request.endDate = utility::datetime::from_string(U("2023-01-31T23:59:59Z"));
10boost::optional<bool> forceRecalc = true;
11api->bulkAggregateQuestionResults(tenantId, request, forceRecalc)
12 .then([](pplx::task<std::shared_ptr<BulkAggregateQuestionResultsResponse>> t) {
13 auto resp = t.get();
14 });
15

combineCommentsWithQuestionResults Internal Link

Parameters

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst CombineCommentsWithQuestionResultsOptions&Так

Відповідь

Повертає: CombineQuestionResultsWithCommentsResponse

Приклад

combineCommentsWithQuestionResults Приклад
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3CombineCommentsWithQuestionResultsOptions options;
4options.questionId = utility::string_t("question-789");
5options.maxComments = boost::optional<int>(50);
6api->combineCommentsWithQuestionResults(tenantId, options).then(
7 [](pplx::task<std::shared_ptr<CombineQuestionResultsWithCommentsResponse>> task){
8 try{
9 auto respPtr = task.get();
10 auto combined = std::make_shared<CombineQuestionResultsWithCommentsResponse>(*respPtr);
11 // Використовуйте combined за потребою
12 }catch(const std::exception&){
13 }
14 });
15

addSSOUser Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
createAPISSOUserDataCreateAPISSOUserDataТак

Відповідь

Повертає: AddSSOUserAPIResponse

Приклад

addSSOUser Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateAPISSOUserData createAPISSOUserData;
4createAPISSOUserData.email = utility::conversions::to_string_t("john.doe@example.com");
5createAPISSOUserData.externalId = utility::conversions::to_string_t("ext-9876");
6createAPISSOUserData.firstName = boost::optional<utility::string_t>(utility::conversions::to_string_t("John"));
7createAPISSOUserData.lastName = boost::optional<utility::string_t>(utility::conversions::to_string_t("Doe"));
8api->addSSOUser(tenantId, createAPISSOUserData)
9 .then([](std::shared_ptr<AddSSOUserAPIResponse> resp) {
10 });
11

deleteSSOUser Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringYes
idstringYes
optionsconst DeleteSSOUserOptions&Yes

Відповідь

Повертає: DeleteSSOUserAPIResponse

Приклад

Приклад deleteSSOUser
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto userId = U("user-456");
4DeleteSSOUserOptions options;
5options.dryRun = boost::optional<bool>(true);
6api->deleteSSOUser(tenantId, userId, options).then([](std::shared_ptr<DeleteSSOUserAPIResponse> resp) {
7 if (resp) {
8 (void)resp;
9 }
10});
11

getSSOUserByEmail Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
emailstringТак

Відповідь

Повертає: GetSSOUserByEmailAPIResponse

Приклад

Приклад getSSOUserByEmail
Copy Copy
1
2auto correlationId = boost::optional<utility::string_t>(utility::conversions::to_string_t("corr-001"));
3
4api->getSSOUserByEmail(
5 utility::conversions::to_string_t("my-tenant-123"),
6 utility::conversions::to_string_t("user@example.com")
7).then([](pplx::task<std::shared_ptr<GetSSOUserByEmailAPIResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception&) {
11 }
12});
13

getSSOUserById Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: GetSSOUserByIdAPIResponse

Приклад

getSSOUserById Приклад
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto ssoUserId = U("user-789");
4api->getSSOUserById(tenantId, ssoUserId)
5 .then([](std::shared_ptr<GetSSOUserByIdAPIResponse> resp) {
6 boost::optional<utility::string_t> email;
7 if (resp && resp->email) email = resp->email;
8 if (email) {
9 auto e = *email;
10 }
11 });
12

getSSOUsers Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
skipint32_tНі

Відповідь

Повертає: GetSSOUsersResponse

Приклад

Приклад getSSOUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<int32_t> skip = 25;
4api->getSSOUsers(tenantId, skip).then([](pplx::task<std::shared_ptr<GetSSOUsersResponse>> t) {
5 try {
6 auto response = t.get();
7 } catch (const std::exception&) {
8 }
9});
10

patchSSOUser Internal Link

Параметри

Ім'яТипОбов'язковоОпис
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

Відповідь

Повертає: PatchSSOUserAPIResponse

Приклад

patchSSOUser Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4UpdateAPISSOUserData updateData;
5updateData.email = U("jane.doe@example.com");
6updateData.displayName = U("Jane Doe");
7boost::optional<bool> updateComments = true;
8
9api->patchSSOUser(tenantId, userId, updateData, updateComments)
10 .then([](pplx::task<std::shared_ptr<PatchSSOUserAPIResponse>> t){
11 try{
12 auto resp = t.get();
13 (void)resp;
14 }catch(const std::exception&){
15 }
16 });
17

putSSOUser Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
updateAPISSOUserDataUpdateAPISSOUserDataТак
updateCommentsboolНі

Відповідь

Повертає: PutSSOUserAPIResponse

Приклад

Приклад putSSOUser
Copy Copy
1
2UpdateAPISSOUserData userData;
3userData.email = utility::conversions::to_string_t("alice@example.com");
4userData.first_name = utility::conversions::to_string_t("Alice");
5userData.last_name = utility::conversions::to_string_t("Smith");
6userData.role = utility::conversions::to_string_t("moderator");
7
8api->putSSOUser(
9 utility::conversions::to_string_t("my-tenant-123"),
10 utility::conversions::to_string_t("alice.smith"),
11 userData,
12 boost::optional<bool>(true)
13).then([](pplx::task<std::shared_ptr<PutSSOUserAPIResponse>> t) {
14 auto response = t.get();
15});
16

createSubscription Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataТак

Відповідь

Повертає: CreateSubscriptionAPIResponse

Приклад

Приклад createSubscription
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3CreateAPIUserSubscriptionData subscriptionData;
4subscriptionData.email = U("user@example.com");
5subscriptionData.planId = U("premium-plan");
6subscriptionData.couponCode = boost::optional<utility::string_t>(U("WELCOME10"));
7api->createSubscription(tenantId, subscriptionData)
8 .then([](pplx::task<std::shared_ptr<CreateSubscriptionAPIResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception&) {
12 }
13 });
14

deleteSubscription Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
idstringYes
userIdstringNo

Відповідь

Повертає: DeleteSubscriptionAPIResponse

Приклад

Приклад deleteSubscription
Copy Copy
1
2api->deleteSubscription(utility::string_t(U("my-tenant-123")), utility::string_t(U("sub-456")), boost::optional<utility::string_t>(utility::string_t(U("user@example.com"))))
3 .then([](std::shared_ptr<DeleteSubscriptionAPIResponse> resp){
4 if (resp) {
5 }
6 });
7

getSubscriptions Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
userIdstringNo

Відповідь

Повертає: GetSubscriptionsAPIResponse

Приклад

getSubscriptions Приклад
Copy Copy
1
2auto tenant = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> user = utility::conversions::to_string_t("user@example.com");
4
5api->getSubscriptions(tenant, user).then(
6 [](pplx::task<std::shared_ptr<GetSubscriptionsAPIResponse>> t) {
7 try {
8 auto response = t.get();
9 // обробити відповідь
10 } catch (const std::exception& e) {
11 // обробка помилки
12 }
13 }
14);
15

updateSubscription Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataТак
userIdstringНі

Відповідь

Повертає: UpdateSubscriptionAPIResponse

Приклад

updateSubscription Приклад
Copy Copy
1
2UpdateAPIUserSubscriptionData subscriptionData;
3subscriptionData.plan = utility::conversions::to_string_t("premium");
4subscriptionData.active = true;
5
6api->updateSubscription(
7 utility::conversions::to_string_t("my-tenant-123"),
8 utility::conversions::to_string_t("sub-987654"),
9 subscriptionData,
10 boost::optional<utility::string_t>(utility::conversions::to_string_t("admin-user-456"))
11).then([](std::shared_ptr<UpdateSubscriptionAPIResponse> response){
12 bool ok = response && response->isSuccess;
13 (void)ok;
14});
15

getTenantDailyUsages Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetTenantDailyUsagesOptions&Так

Відповідь

Повертає: GetTenantDailyUsagesResponse

Приклад

Приклад getTenantDailyUsages
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetTenantDailyUsagesOptions opts;
4opts.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z")));
5opts.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z")));
6api->getTenantDailyUsages(tenantId, opts).then([](std::shared_ptr<GetTenantDailyUsagesResponse> resp){
7 auto result = std::make_shared<GetTenantDailyUsagesResponse>(*resp);
8}).wait();
9

createTenantPackage Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Відповідь

Повертає: CreateTenantPackageResponse

Приклад

Приклад createTenantPackage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateTenantPackageBody body;
4body.name = utility::conversions::to_string_t("Pro Plan");
5body.maxUsers = 100;
6body.expiryDate = boost::optional<utility::datetime>(utility::datetime::utc_now() + std::chrono::hours(24 * 30));
7body.notes = boost::none;
8api->createTenantPackage(tenantId, body).then([](pplx::task<std::shared_ptr<CreateTenantPackageResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception&){
12 }
13});
14

deleteTenantPackage Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад deleteTenantPackage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto packageId = utility::conversions::to_string_t("pkg-456");
4boost::optional<utility::string_t> optTenant = tenantId;
5boost::optional<utility::string_t> optPackage = packageId;
6api->deleteTenantPackage(optTenant.value(), optPackage.value())
7 .then([](std::shared_ptr<APIEmptyResponse>){ })
8 .then([](pplx::task<void> t){ try{ t.get(); }catch(const std::exception&){ } });
9

getTenantPackage Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
idstringТак

Відповідь

Повертає: GetTenantPackageResponse

Приклад

Приклад getTenantPackage
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto packageId = U("pkg-456");
4api->getTenantPackage(tenantId, packageId).then([](pplx::task<std::shared_ptr<GetTenantPackageResponse>> task){
5 try{
6 auto resp = task.get();
7 auto result = std::make_shared<GetTenantPackageResponse>(*resp);
8 }catch(...){}
9});
10

getTenantPackages Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
skipdoubleНі

Відповідь

Повертає: GetTenantPackagesResponse

Приклад

Приклад getTenantPackages
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> skip = 20.0;
4api->getTenantPackages(tenantId, skip)
5 .then([](std::shared_ptr<GetTenantPackagesResponse> resp) {
6 (void)resp;
7 });
8

replaceTenantPackage Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак
replaceTenantPackageBodyReplaceTenantPackageBodyТак

Відповідь

Повертає: APIEmptyResponse

Приклад

replaceTenantPackage Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto pkgId = utility::conversions::to_string_t("pkg-456");
4ReplaceTenantPackageBody body;
5body.planId = utility::conversions::to_string_t("enterprise");
6body.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Upgrade request"));
7api->replaceTenantPackage(tenantId, pkgId, body)
8 .then([](std::shared_ptr<APIEmptyResponse>) { })
9 .then([](pplx::task<void> t) {
10 try { t.get(); } catch (const std::exception&) { }
11 });
12

updateTenantPackage Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
updateTenantPackageBodyUpdateTenantPackageBodyТак

Відповідь

Повертає: APIEmptyResponse

Приклад

updateTenantPackage Приклад
Copy Copy
1
2auto body = std::make_shared<UpdateTenantPackageBody>();
3body->packageId = utility::conversions::to_string_t("premium-plan");
4body->expirationDate = utility::conversions::to_string_t("2025-12-31");
5body->notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Upgraded package"));
6
7api->updateTenantPackage(utility::conversions::to_string_t("my-tenant-123"),
8 utility::conversions::to_string_t("pkg-456"),
9 body)
10 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
11 try {
12 auto response = task.get();
13 // обробка успішного результату
14 } catch (const std::exception& ex) {
15 // обробка помилки
16 }
17 });
18

createTenantUser Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

Відповідь

Повертає: CreateTenantUserResponse

Приклад

createTenantUser Приклад
Copy Copy
1
2auto body = CreateTenantUserBody{};
3body.email = utility::conversions::to_string_t("newuser@example.com");
4body.firstName = utility::conversions::to_string_t("Alice");
5body.lastName = utility::conversions::to_string_t("Smith");
6body.role = boost::optional<utility::string_t>(utility::conversions::to_string_t("moderator"));
7
8api->createTenantUser(utility::conversions::to_string_t("my-tenant-123"), body)
9 .then([](pplx::task<std::shared_ptr<CreateTenantUserResponse>> task) {
10 try {
11 auto response = task.get();
12 } catch (const std::exception&) {
13 }
14 });
15

deleteTenantUser Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак
optionsconst DeleteTenantUserOptions&Так

Відповідь

Повертає: APIEmptyResponse

Приклад

deleteTenantUser Приклад
Copy Copy
1
2DeleteTenantUserOptions options;
3options.reason = boost::optional<utility::string_t>(U("User requested deletion"));
4
5api->deleteTenantUser(U("my-tenant-123"), U("user@example.com"), options)
6 .then([](std::shared_ptr<APIEmptyResponse> resp){
7 (void)resp;
8 });
9

getTenantUser Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: GetTenantUserResponse

Приклад

Приклад getTenantUser
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4api->getTenantUser(tenantId, userId)
5 .then([](pplx::task<std::shared_ptr<GetTenantUserResponse>> task) {
6 try {
7 auto response = task.get();
8 // Використовуйте відповідь за потреби
9 } catch (const std::exception&) {
10 // Обробка помилок
11 }
12 });
13

getTenantUsers Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
skipdoubleНі

Відповідь

Повертає: GetTenantUsersResponse

Приклад

getTenantUsers Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<double> skip = 10;
4
5api->getTenantUsers(tenantId, skip).then([](pplx::task<std::shared_ptr<GetTenantUsersResponse>> t){
6 try {
7 auto resp = t.get();
8 } catch (const std::exception&) {
9 }
10});
11

replaceTenantUser Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак
replaceTenantUserBodyReplaceTenantUserBodyТак
updateCommentsstringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

replaceTenantUser Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto userId = utility::string_t(U("john.doe@example.com"));
4ReplaceTenantUserBody replaceBody;
5replaceBody.email = utility::string_t(U("john.doe@example.com"));
6replaceBody.role = utility::string_t(U("admin"));
7boost::optional<utility::string_t> updateComments = utility::string_t(U("Promoted to admin"));
8api->replaceTenantUser(tenantId, userId, replaceBody, updateComments)
9 .then([](std::shared_ptr<APIEmptyResponse> resp){ });
10

Параметри

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
redirectURLstringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

sendLoginLink Приклад
Copy Copy
1
2api->sendLoginLink(
3 U("my-tenant-123"),
4 U("user@example.com"),
5 boost::make_optional(U("https://myapp.com/auth/callback"))
6).then([](std::shared_ptr<APIEmptyResponse> resp) {
7});
8

updateTenantUser Internal Link

Параметри

Ім'яТипОбов'язковийОпис
tenantIdstringYes
idstringYes
updateTenantUserBodyUpdateTenantUserBodyYes
updateCommentsstringNo

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад updateTenantUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4UpdateTenantUserBody body;
5body.email = U("john.doe@example.com");
6body.role = U("admin");
7boost::optional<utility::string_t> updateComments = U("Promoted to admin");
8
9api->updateTenantUser(tenantId, userId, body, updateComments)
10 .then([](std::shared_ptr<APIEmptyResponse>){ });
11

createTenant Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Відповідь

Повертає: CreateTenantResponse

Приклад

Приклад createTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateTenantBody body;
4body.setName(utility::conversions::to_string_t("Acme Corp"));
5body.setAdminEmail(utility::conversions::to_string_t("admin@acme.com"));
6body.setPlan(utility::conversions::to_string_t("enterprise"));
7body.setDescription(boost::optional<utility::string_t>(utility::conversions::to_string_t("Primary tenant for Acme")));
8
9api->createTenant(tenantId, body).then([](pplx::task<std::shared_ptr<CreateTenantResponse>> t){
10 auto resp = t.get();
11});
12

deleteTenant Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак
surestringНі

Відповідь

Повертає: APIEmptyResponse

Приклад

Приклад deleteTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4boost::optional<utility::string_t> sure = utility::conversions::to_string_t("true");
5api->deleteTenant(tenantId, userId, sure)
6 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
7 try{
8 auto resp = t.get();
9 auto result = std::make_shared<APIEmptyResponse>(*resp);
10 }catch(const std::exception&){})
11

getTenant Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
idstringYes

Відповідь

Повертає: GetTenantResponse

Приклад

Приклад getTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto id = utility::conversions::to_string_t("tenant-admin-456");
4boost::optional<utility::string_t> includeDetails = utility::conversions::to_string_t("full");
5api->getTenant(tenantId, id)
6 .then([](std::shared_ptr<GetTenantResponse> resp) {
7 if (resp) {
8 std::wcout << resp->toString() << std::endl;
9 }
10 });
11

getTenants Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringYes
optionsconst GetTenantsOptions&Yes

Відповідь

Повертає: GetTenantsResponse

Приклад

Приклад getTenants
Copy Copy
1
2GetTenantsOptions options;
3options.includeDeleted = boost::make_optional(false);
4options.searchTerm = boost::make_optional(utility::string_t(U("enterprise")));
5
6api->getTenants(utility::string_t(U("my-tenant-123")), options)
7 .then([](std::shared_ptr<GetTenantsResponse> response) {
8 })
9 .then([](pplx::task<void> t){ try{ t.get(); }catch(...){} });
10

updateTenant Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак
updateTenantBodyUpdateTenantBodyТак

Відповідь

Повертає: APIEmptyResponse

Приклад

updateTenant Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto recordId = utility::string_t(U("tenant-456"));
4UpdateTenantBody body;
5body.name = boost::optional<utility::string_t>(U("Acme Corp"));
6body.contactEmail = boost::optional<utility::string_t>(U("admin@acme.com"));
7api->updateTenant(tenantId, recordId, body).then([](std::shared_ptr<APIEmptyResponse> resp) {
8 auto log = std::make_shared<utility::string_t>(U("Tenant update succeeded"));
9 (void)resp;
10 (void)log;
11});
12

changeTicketState Internal Link


Параметри

NameTypeRequiredDescription
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Відповідь

Повертає: ChangeTicketStateResponse

Приклад

changeTicketState Приклад
Copy Copy
1
2auto body = std::make_shared<ChangeTicketStateBody>();
3body->state = U("closed");
4body->comment = boost::optional<utility::string_t>(U("Ticket resolved"));
5api->changeTicketState(U("my-tenant-123"), U("user@example.com"), U("ticket-456"), *body)
6 .then([](std::shared_ptr<ChangeTicketStateResponse>) {});
7

createTicket Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
userIdstringТак
createTicketBodyCreateTicketBodyТак

Відповідь

Повертає: CreateTicketResponse

Приклад

createTicket Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("john.doe@example.com");
4CreateTicketBody ticketBody;
5ticketBody.setSubject(utility::conversions::to_string_t("Login Issue"));
6ticketBody.setDescription(utility::conversions::to_string_t("Cannot log in after password reset."));
7boost::optional<int> priority = 2;
8ticketBody.setPriority(priority);
9api->createTicket(tenantId, userId, ticketBody).then([](pplx::task<std::shared_ptr<CreateTicketResponse>> task){
10 try{
11 auto response = task.get();
12 // Використайте відповідь за потребою
13 }catch(const std::exception&){
14 // Обробити помилку
15 }
16});
17

getTicket Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
idstringYes
userIdstringNo

Відповідь

Повертає: GetTicketResponse

Приклад

getTicket Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t ticketId = U("ticket-789");
4boost::optional<utility::string_t> userId = U("alice@example.com");
5api->getTicket(tenantId, ticketId, userId).then([](pplx::task<std::shared_ptr<GetTicketResponse>> task){
6 try{
7 auto resp = task.get();
8 }catch(const std::exception&){
9 }
10});
11

getTickets Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst GetTicketsOptions&Так

Відповідь

Повертає: GetTicketsResponse

Приклад

Приклад getTickets
Copy Copy
1
2auto options = GetTicketsOptions{};
3options.page = boost::optional<int>(1);
4options.status = boost::optional<utility::string_t>(U("open"));
5api->getTickets(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<GetTicketsResponse>> task) {
6 try {
7 auto response = task.get();
8 auto responseCopy = std::make_shared<GetTicketsResponse>(*response);
9 } catch (const std::exception&) {
10 }
11});
12

getTranslations Internal Link

Параметри

НазваТипОбов’язковийОпис
r_namespacestringТак
componentstringТак
optionsconst GetTranslationsOptions&Так

Відповідь

Повертає: GetTranslationsResponse

Приклад

getTranslations Приклад
Copy Copy
1
2utility::string_t ns = U("my-tenant-123");
3utility::string_t comp = U("comments");
4auto optsPtr = std::make_shared<GetTranslationsOptions>();
5optsPtr->language = boost::make_optional(U("en"));
6optsPtr->fallback = boost::none;
7api->getTranslations(ns, comp, *optsPtr)
8 .then([](pplx::task<std::shared_ptr<GetTranslationsResponse>> t) {
9 try {
10 auto resp = t.get();
11 } catch (const std::exception& e) {
12 }
13 });
14

uploadImage Internal Link

Upload and resize an image

Parameters

NameTypeRequiredDescription
tenantIdstringТак
fileHttpContentТак
optionsconst UploadImageOptions&Так

Response

Повертає: UploadImageResponse

Example

Приклад uploadImage
Copy Copy
1
2auto fileStream = concurrency::streams::fstream::open_istream(U("avatar.png"), std::ios::in).get();
3HttpContent file(fileStream, U("image/png"));
4UploadImageOptions options;
5options.description = boost::optional<utility::string_t>(U("Profile picture"));
6options.width = boost::optional<int>(256);
7options.height = boost::optional<int>(256);
8api->uploadImage(U("my-tenant-123"), file, options).then([](pplx::task<std::shared_ptr<UploadImageResponse>> t){
9 auto resp = t.get();
10});
11

getUserBadgeProgressById Internal Link

Параметри

Ім'яТипОбов'язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIGetUserBadgeProgressResponse

Приклад

Приклад getUserBadgeProgressById
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto userId = U("user-456");
4api->getUserBadgeProgressById(tenantId, userId)
5 .then([=](pplx::task<std::shared_ptr<APIGetUserBadgeProgressResponse>> t){
6 try{
7 auto resp = t.get();
8 boost::optional<std::shared_ptr<APIGetUserBadgeProgressResponse>> optResp = resp;
9 if(optResp){}
10 }catch(const std::exception&){}
11 });
12

getUserBadgeProgressByUserId Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
userIdstringТак

Відповідь

Повертає: APIGetUserBadgeProgressResponse

Приклад

Приклад getUserBadgeProgressByUserId
Copy Copy
1
2boost::optional<std::shared_ptr<APIGetUserBadgeProgressResponse>> responseOpt;
3api->getUserBadgeProgressByUserId(
4 utility::conversions::to_string_t("my-tenant-123"),
5 utility::conversions::to_string_t("user@example.com"))
6 .then([&responseOpt](pplx::task<std::shared_ptr<APIGetUserBadgeProgressResponse>> t) {
7 try {
8 responseOpt = t.get();
9 } catch (...) {
10 responseOpt = boost::none;
11 }
12 });
13

getUserBadgeProgressList Internal Link


Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
optionsconst GetUserBadgeProgressListOptions&Так

Відповідь

Повертає: APIGetUserBadgeProgressListResponse

Приклад

getUserBadgeProgressList Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetUserBadgeProgressListOptions options;
4options.userId = U("user@example.com");
5options.page = boost::optional<int>(1);
6options.pageSize = boost::optional<int>(20);
7api->getUserBadgeProgressList(tenantId, options)
8 .then([](std::shared_ptr<APIGetUserBadgeProgressListResponse> resp) {
9 if (!resp) return;
10 for (const auto& badge : resp->badges) {
11 // обробити бейдж
12 }
13 });
14

createUserBadge Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
createUserBadgeParamsCreateUserBadgeParamsТак

Відповідь

Повертає: APICreateUserBadgeResponse

Приклад

Приклад createUserBadge
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3CreateUserBadgeParams badgeParams;
4badgeParams.userEmail = U("user@example.com");
5badgeParams.badgeCode = U("gold");
6badgeParams.expirationDate = boost::optional<utility::datetime>(utility::datetime::utc_now() + utility::datetime::from_seconds(2592000));
7api->createUserBadge(tenantId, badgeParams).then([](std::shared_ptr<APICreateUserBadgeResponse> resp){
8 if (resp && resp->success) {
9 auto result = std::make_shared<APICreateUserBadgeResponse>(*resp);
10 }
11});
12

deleteUserBadge Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIEmptySuccessResponse

Приклад

Приклад deleteUserBadge
Copy Copy
1
2auto tenantId = boost::optional<utility::string_t>(U("my-tenant-123"));
3auto badgeId = utility::string_t(U("badge-789"));
4api->deleteUserBadge(tenantId.value(), badgeId)
5 .then([](std::shared_ptr<APIEmptySuccessResponse> resp){
6 auto copy = std::make_shared<APIEmptySuccessResponse>(*resp);
7 })
8 .then([](pplx::task<void> t){
9 try{ t.get(); } catch(const std::exception&){ }
10 });
11

getUserBadge Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: APIGetUserBadgeResponse

Приклад

Приклад getUserBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4api->getUserBadge(tenantId, userId).then([](pplx::task<std::shared_ptr<APIGetUserBadgeResponse>> t){
5 try{
6 auto resp = t.get();
7 boost::optional<std::string> badgeUrl = resp->badge_url ? boost::optional<std::string>(*resp->badge_url) : boost::none;
8 }catch(const std::exception&){
9 }
10});
11

getUserBadges Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetUserBadgesOptions&Yes

Відповідь

Повертає: APIGetUserBadgesResponse

Приклад

Приклад getUserBadges
Copy Copy
1
2GetUserBadgesOptions opts;
3opts.userId = boost::make_optional(U("user@example.com"));
4opts.includeExpired = boost::make_optional(false);
5
6api->getUserBadges(U("my-tenant-123"), opts)
7 .then([](pplx::task<std::shared_ptr<APIGetUserBadgesResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception&) {
11 }
12 });
13

updateUserBadge Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак
updateUserBadgeParamsUpdateUserBadgeParamsТак

Відповідь

Повертає: APIEmptySuccessResponse

Приклад

updateUserBadge Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4UpdateUserBadgeParams params;
5params.badgeId = utility::conversions::to_string_t("vip-badge");
6params.expiration = boost::optional<utility::datetime>(utility::datetime::from_string(U("2024-12-31T23:59:59Z")));
7api->updateUserBadge(tenantId, userId, params)
8 .then([](std::shared_ptr<APIEmptySuccessResponse> resp){
9 std::cout << "Badge updated successfully\n";
10 })
11 .catch([](std::exception const& e){
12 std::cerr << "Error updating badge: " << e.what() << "\n";
13 });
14

getUserNotificationCount Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
ssostringНі

Відповідь

Повертає: GetUserNotificationCountResponse

Приклад

getUserNotificationCount Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
4api->getUserNotificationCount(tenantId, sso).then([](pplx::task<std::shared_ptr<GetUserNotificationCountResponse>> t){
5 try{
6 auto resp = t.get();
7 // використовуйте resp за потреби
8 }catch(const std::exception&){
9 // обробити помилку
10 }
11});
12

getUserNotifications Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
optionsconst GetUserNotificationsOptions&Так

Відповідь

Повертає: GetMyNotificationsResponse

Приклад

Приклад getUserNotifications
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3GetUserNotificationsOptions options;
4options.limit = boost::optional<int>(20);
5options.unreadOnly = boost::optional<bool>(true);
6api->getUserNotifications(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetMyNotificationsResponse>> task){
8 auto resp = task.get();
9 auto notifications = std::make_shared<GetMyNotificationsResponse>(*resp);
10 });
11

resetUserNotificationCount Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
ssostringNo

Відповідь

Повертає: ResetUserNotificationsResponse

Приклад

resetUserNotificationCount Приклад
Copy Copy
1
2auto resetTask = api->resetUserNotificationCount(
3 U("my-tenant-123"),
4 boost::optional<utility::string_t>(U("user@example.com"))
5).then([](std::shared_ptr<ResetUserNotificationsResponse> resp){
6});
7

resetUserNotifications Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
optionsconst ResetUserNotificationsOptions&Так

Відповідь

Повертає: ResetUserNotificationsResponse

Приклад

Приклад resetUserNotifications
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3ResetUserNotificationsOptions options;
4options.email = boost::optional<utility::string_t>(U("user@example.com"));
5api->resetUserNotifications(tenantId, options)
6 .then([](std::shared_ptr<ResetUserNotificationsResponse> resp) {
7 // Обробити відповідь
8 });
9

updateUserNotificationCommentSubscriptionStatus Internal Link

Enable or disable notifications for a specific comment.

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
notificationIdstringТак
optedInOrOutstringТак
commentIdstringТак
ssostringНі

Відповідь

Повертає: UpdateUserNotificationCommentSubscriptionStatusResponse

Приклад

Приклад updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2auto updateTask = api->updateUserNotificationCommentSubscriptionStatus(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("notif-456"),
5 utility::conversions::to_string_t("optedIn"),
6 utility::conversions::to_string_t("comment-789"),
7 boost::optional<utility::string_t>(utility::conversions::to_string_t("sso-token-abc"))
8).then([](std::shared_ptr<UpdateUserNotificationCommentSubscriptionStatusResponse> resp){
9 (void)resp;
10});
11

updateUserNotificationPageSubscriptionStatus Internal Link

Увімкнути або вимкнути сповіщення для сторінки. Коли користувачі підписані на сторінку, сповіщення створюються для нових кореневих коментарів, і також

Параметри

НазваТипОбов’язковийОпис
tenantIdstringYes
urlIdstringYes
urlstringYes
pageTitlestringYes
subscribedOrUnsubscribedstringYes
ssostringNo

Відповідь

Повертає: UpdateUserNotificationPageSubscriptionStatusResponse

Приклад

Приклад updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("page-456");
4utility::string_t url = U("https://example.com/articles/awesome-article");
5utility::string_t pageTitle = U("Awesome Article");
6utility::string_t subscription = U("subscribed");
7boost::optional<utility::string_t> sso = boost::make_optional<utility::string_t>(U("sso-token-789"));
8
9api->updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscription, sso)
10 .then([](std::shared_ptr<UpdateUserNotificationPageSubscriptionStatusResponse> resp) {
11 // process resp if needed
12 });
13

updateUserNotificationStatus Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
notificationIdstringТак
newStatusstringТак
ssostringНі

Відповідь

Повертає: UpdateUserNotificationStatusResponse

Приклад

updateUserNotificationStatus Приклад
Copy Copy
1
2api->updateUserNotificationStatus(
3 U("my-tenant-123"),
4 U("notif-456"),
5 U("read"),
6 boost::optional<utility::string_t>(U("sso-token-abc"))
7).then([](std::shared_ptr<UpdateUserNotificationStatusResponse> resp) {
8}).wait();
9

getUserPresenceStatuses Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringТак
urlIdWSstringТак
userIdsstringТак

Відповідь

Повертає: GetUserPresenceStatusesResponse

Приклад

getUserPresenceStatuses Приклад
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto urlIdWS = U("article-789");
4auto userIds = U("alice@example.com,bob@example.com");
5boost::optional<utility::string_t> optionalFilter = boost::none;
6api->getUserPresenceStatuses(tenantId, urlIdWS, userIds)
7 .then([](pplx::task<std::shared_ptr<GetUserPresenceStatusesResponse>> t){
8 try{
9 auto response = t.get();
10 }catch(...){
11 }
12 });
13

searchUsers Internal Link

Parameters

НазваТипОбов’язковоОпис
tenantIdstringТак
urlIdstringТак
optionsconst SearchUsersOptions&Так

Response

Повертає: SearchUsersResult

Example

searchUsers Приклад
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-456");
4SearchUsersOptions options;
5options.query = U("john.doe@example.com");
6options.page = boost::optional<int>(1);
7options.pageSize = boost::optional<int>(20);
8api->searchUsers(tenantId, urlId, options).then([](pplx::task<std::shared_ptr<SearchUsersResult>> task){
9 try{
10 auto result = task.get();
11 }catch(const std::exception&){}
12});
13

getUser Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringТак
idstringТак

Відповідь

Повертає: GetUserResponse

Приклад

Приклад getUser
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user-789");
4boost::optional<utility::string_t> optTag = boost::none;
5
6api->getUser(tenantId, userId)
7 .then([=](pplx::task<std::shared_ptr<GetUserResponse>> task) {
8 try {
9 auto response = task.get();
10 if (!response) {
11 response = std::make_shared<GetUserResponse>();
12 }
13 // обробляємо відповідь за потребою
14 } catch (const std::exception&) {
15 // обробляємо помилку
16 }
17 });
18

createVote Internal Link

Параметри

НазваТипОбов’язковийОпис
tenantIdstringТак
commentIdstringТак
directionstringТак
optionsconst CreateVoteOptions&Так

Відповідь

Повертає: VoteResponse

Приклад

createVote Приклад
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456");
4auto direction = utility::conversions::to_string_t("up");
5auto optionsPtr = std::make_shared<CreateVoteOptions>();
6optionsPtr->userId = utility::conversions::to_string_t("user-789");
7optionsPtr->ipAddress = boost::optional<utility::string_t>(utility::conversions::to_string_t("192.168.1.100"));
8api->createVote(tenantId, commentId, direction, *optionsPtr)
9 .then([](std::shared_ptr<VoteResponse> resp){});
10

deleteVote Internal Link

Параметри

НазваТипОбов’язковоОпис
tenantIdstringYes
idstringYes
editKeystringNo

Відповідь

Повертає: VoteDeleteResponse

Приклад

Приклад deleteVote
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto voteId = utility::conversions::to_string_t("vote-9876");
4boost::optional<utility::string_t> editKey = utility::conversions::to_string_t("edit-abc123");
5
6api->deleteVote(tenantId, voteId, editKey).then([](pplx::task<std::shared_ptr<VoteDeleteResponse>> task) {
7 try {
8 auto response = task.get();
9 // Обробіть відповідь за потребою
10 } catch (const std::exception&) {
11 // Обробіть помилку
12 }
13});
14

getVotes Internal Link

Параметри

НазваТипОбов'язковоОпис
tenantIdstringТак
urlIdstringТак

Відповідь

Повертає: GetVotesResponse

Приклад

Приклад getVotes
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("article-456"));
4boost::optional<utility::string_t> extraHeader = boost::none;
5
6api->getVotes(tenantId, urlId).then([=](pplx::task<std::shared_ptr<GetVotesResponse>> task) {
7 try {
8 auto original = task.get();
9 auto response = std::make_shared<GetVotesResponse>(*original);
10 } catch (...) {
11 // обробка помилок
12 }
13});
14

getVotesForUser Internal Link

Параметри

НазваТипОбов'язковийОпис
tenantIdstringТак
urlIdstringТак
optionsconst GetVotesForUserOptions&Так

Відповідь

Повертає: GetVotesForUserResponse

Приклад

getVotesForUser Приклад
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("post-456"));
4GetVotesForUserOptions options;
5options.page = boost::optional<int>(2);
6options.pageSize = boost::optional<int>(50);
7api->getVotesForUser(tenantId, urlId, options).then([](std::shared_ptr<GetVotesForUserResponse> response) {
8 if (response) {
9 // обробити відповідь, напр., перебрати голоси
10 }
11});
12

Потрібна допомога?

Якщо ви зіткнулися з будь-якими проблемами або маєте питання щодо C++ SDK, будь ласка:

Участь

Внески вітаються! Будь ласка, відвідайте репозиторій GitHub для отримання інструкцій щодо внеску.