FastComments.com

FastComments C++ SDK


Ово је званични 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

Instalirajte zavisnosti

sudo apt install libcpprest-dev libboost-all-dev

Izgradnja iz izvornog koda

mkdir build
cd build
cmake ..
make

Instaliranje

sudo make install

Sadržaj biblioteke

Ova biblioteka sadrži generisani API klijent i SSO alate koji olakšavaju rad sa API-jem.

Javni vs zaštićeni API-ji

Za API klijent postoje tri klase, DefaultApi, PublicApi i ModerationApi. DefaultApi sadrži metode koje zahtevaju vaš API ključ, a PublicApi sadrži metode koje se mogu pozvati direktno iz pregledača/mobilnog uređaja/i sl. bez autentifikacije. ModerationApi pruža opsežan skup API-ja za moderaciju u realnom vremenu i brzu moderaciju. Svaka metoda ModerationApi prihvata sso parametar i može se autentifikovati putem SSO ili sesijskog kolačića sa FastComments.com.

Белешке Internal Link

Идентификатори емитовања

Видећете да требa да пошаљете broadcastId у неким API позивима. Када примите догађаје, добићете овај ID назад, па ћете знати да игноришете догађај ако планирате да оптимистички примените промене на клијенту (што ћете вероватно желети, јер пружа најбоље искуство). Овде проследите UUID. ID би требало да буде довољно јединствен да се не појави два пута у току једне сесије прегледача.

SSO (Једнократно пријављивање)

За примере SSO-а, погледајте у наставку.

Коришћење SSO Internal Link


Jednostavan 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;
}

Siguran 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

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations.
Различите операције (нпр. sum, countDistinct, avg, итд.) су подржане.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
aggregationRequestAggregationRequestYes
optionsconst AggregateOptions&Yes

Response

Враћа: AggregateResponse

Пример

Primer agregacije
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 // obradi odgovor
19 } catch (const std::exception& e) {
20 // obradi grešku
21 }
22 });
23

getAuditLogs Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
optionsconst GetAuditLogsOptions&Да

Одговор

Vraća: GetAuditLogsResponse

Пример

Primer 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 // koristi odgovor
13 } catch (const std::exception& e) {
14 // obradi grešku
15 }
16});
17

logoutPublic Internal Link

Response

Vraća: APIEmptyResponse

Primer

logoutPublic Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
commentIdstringДа
publicBlockFromCommentParamsPublicBlockFromCommentParamsДа
ssostringНе

Одговор

Враћа: 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

Odgovor

Vraća: UnblockSuccess

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdsstringYes
ssostringNo

Odgovor

Returns: CheckBlockedCommentsResponse

Primer

checkedCommentsForBlocked Primer
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, sso).then([](std::shared_ptr<CheckBlockedCommentsResponse> resp){
7 (void)resp;
8});
9

blockUserFromComment Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes
blockFromCommentParamsBlockFromCommentParamsYes
optionsconst BlockUserFromCommentOptions&Yes

Одговор

Враћа: BlockSuccess

Пример

blockUserFromComment Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
broadcastIdstringYes
commentDataCommentDataYes
optionsconst CreateCommentPublicOptions&Yes

Odgovor

Vraća: SaveCommentsResponseWithPresence

Primer

Primer 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

Параметри

НазивТипОбавезноОпис
tenantIdstringYes
idstringYes
optionsconst DeleteCommentOptions&Yes

Одговор

Враћа: 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

Параметри

ИмеТипОбязательноОпис
tenantIdstringДа
commentIdstringДа
broadcastIdstringДа
optionsconst DeleteCommentPublicOptions&Да

Одговор

Враћа: PublicAPIDeleteCommentResponse

Пример

deleteCommentPublic Primer
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

Parameters

ИмеТипОбавезноОпис
tenantIdstringYes
commentIdstringYes
voteIdstringYes
urlIdstringYes
broadcastIdstringYes
optionsconst DeleteCommentVoteOptions&Yes

Одговор

Враћа: VoteDeleteResponse

Пример

deleteCommentVote Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa
optionsconst FlagCommentOptions&Da

Odgovor

Vraća: FlagCommentResponse

Primer

Primer 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

Параметри

ImeTipObaveznoOpis
tenantIdstringDa
idstringDa

Одговор

Враћа: APIGetCommentResponse

Пример

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
optionsconst GetCommentsOptions&Yes

Одговор

Враћа: APIGetCommentsResponse

Пример

Primer 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

req tenantId urlId

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetCommentsPublicOptions&Yes

Odgovor

Vraća: GetCommentsResponseWithPresence_PublicComment_

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
optionsconst GetCommentTextOptions&Da

Odgovor

Vraća: PublicAPIGetCommentTextResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
dirint32_tYes
ssostringNo

Odgovor

Vraća: GetCommentVoteUserNamesSuccessResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
ssostringNe

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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> sno = 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
optionsconst SaveCommentOptions&Yes

Odgovor

Vraća: APISaveCommentResponse

Primer

saveComment Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
commentTextUpdateRequestCommentTextUpdateRequestYes
optionsconst SetCommentTextOptions&Yes

Odgovor

Vraća: PublicAPISetCommentTextResponse

Primer

setCommentText Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes
unBlockFromCommentParamsUnBlockFromCommentParamsYes
optionsconst UnBlockUserFromCommentOptions&Yes

Одговор

Враћа: UnblockSuccess

Пример

unBlockUserFromComment Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes
optionsconst UnFlagCommentOptions&Yes

Odgovor

Vraća: FlagCommentResponse

Primer

Primer 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 // obradi status po potrebi
9 }
10 })
11 .then([](pplx::task<void> previous) {
12 try {
13 previous.get();
14 } catch (const std::exception& e) {
15 // obradi grešku
16 }
17 });
18

unLockComment Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
commentIdstringДа
broadcastIdstringДа
ssostringНе

Одговор

Враћа: APIEmptyResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Odgovor

Vraća: ChangeCommentPinStatusResponse

Primer

unPinComment Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes
updatableCommentParamsUpdatableCommentParamsYes
optionsconst UpdateCommentOptions&Yes

Одговор

Враћа: APIEmptyResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
optionsconst VoteCommentOptions&Yes

Odgovor

Vraća: VoteResponse

Primer

Primer 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 // handle response
19 } catch (const std::exception&) {
20 }
21 });
22

getCommentsForUser Internal Link

Parametri

NameTypeRequiredDescription
optionsconst GetCommentsForUserOptions&Yes

Odgovor

Vraća: GetCommentsForUserResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
addDomainConfigParamsAddDomainConfigParamsDa

Odgovor

Vraća: AddDomainConfigResponse

Primer

addDomainConfig Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
domainstringYes

Odgovor

Vraća: DeleteDomainConfigResponse

Primer

deleteDomainConfig Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
domainstringDa

Odgovor

Vraća: GetDomainConfigResponse

Primer

Primer 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 // obradi omogućenu moderaciju
12 }
13 if (theme) {
14 // upotrebi vrednost teme
15 }
16 })
17 .wait();
18

getDomainConfigs Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa

Odgovor

Vraća: GetDomainConfigsResponse

Primer

getDomainConfigs Primer
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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

Odgovor

Vraća: PatchDomainConfigResponse

Primer

patchDomainConfig Primer
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 // obrada uspeha
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception& e) { /* obrada greške */ }
15 });
16

putDomainConfig Internal Link

Параметри

НазивТипОбавезноОпис
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

Одговор

Returns: PutDomainConfigResponse

Пример

putDomainConfig Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
createEmailTemplateBodyCreateEmailTemplateBodyYes

Odgovor

Vraća: CreateEmailTemplateResponse

Primer

createEmailTemplate Primer
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

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes

Response

Vraća: APIEmptyResponse

Example

deleteEmailTemplate Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
errorIdstringYes

Odgovor

Vraća: APIEmptyResponse

Primer

deleteEmailTemplateRenderError Primer
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

Пример

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes

Одговор

Returns: GetEmailTemplateDefinitionsResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa
skipdoubleNe

Odgovor

Vraća: GetEmailTemplateRenderErrorsResponse

Primer

getEmailTemplateRenderErrors Primer
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 // Koristite odgovor po potrebi
11 } catch (const std::exception& ex) {
12 // Obradi grešku
13 }
14 });
15

getEmailTemplates Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
skipdoubleNe

Odgovor

Vraća: GetEmailTemplatesResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
renderEmailTemplateBodyRenderEmailTemplateBodyДа
localestringНе

Одговор

Враћа: 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Odgovor

Returns: APIEmptyResponse

Primer

Primer 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 // obrada uspeha
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception &) { /* obrada greške */ }
14 });
15

getEventLog Internal Link

req tenantId urlId userIdWS

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
userIdWSstringYes
startTimeint64_tYes
endTimeint64_tNo

Odgovor

Vraća: GetEventLogResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
userIdWSstringDa
startTimeint64_tDa
endTimeint64_tNe

Odgovor

Vraća: GetEventLogResponse

Primer

getGlobalEventLog Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
optionsconst CreateFeedPostOptions&Yes

Odgovor

Vraća: CreateFeedPostsResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
postIdstringYes
optionsconst DeleteFeedPostPublicOptions&Yes

Одговор

Враћа: DeleteFeedPostPublicResponse

Пример

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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
optionsconst GetFeedPostsOptions&Da

Odgovor

Vraća: GetFeedPostsResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
optionsconst GetFeedPostsPublicOptions&Da

Odgovor

Vraća: PublicFeedPostsResponse

Primer

getFeedPostsPublic Primer
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 // Koristite processed po potrebi
11 }catch(const std::exception&){
12 // Rukujte greškom
13 }
14});
15

getFeedPostsStats Internal Link

Параметри

ИмеТипПотребноОписание
tenantIdstringYes
postIdsvector<stringYes
ssostringNo

Одговор

Враћа: FeedPostsStatsResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
optionsconst GetUserReactsPublicOptions&Yes

Odgovor

Vraća: UserReactsResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
postIdstringYes
reactBodyParamsReactBodyParamsYes
optionsconst ReactFeedPostPublicOptions&Yes

Odgovor

Vraća: ReactFeedPostResponse

Primer

reactFeedPostPublic Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
feedPostFeedPostYes

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
isFlaggedboolDa
ssostringNe

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Параметри

НазивТипОбавезноОпис
tenantIdstringYes
largeInternalURLSanitizedstringYes

Одговор

Враћа: 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
searchstringYes
optionsconst GetGifsSearchOptions&Yes

Odgovor

Vraća: GetGifsSearchResponse

Primer

Primer 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

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
createHashTagBodyCreateHashTagBodyYes

Odgovor

Vraća: CreateHashTagResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyYes

Odgovor

Vraća: BulkCreateHashTagsResponse

Primer

addHashTagsBulk Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
tagstringYes
deleteHashTagRequestBodyDeleteHashTagRequestBodyYes

Одговор

Враћа: 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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
pagedoubleNo

Odgovor

Vraća: GetHashTagsResponse

Primer

Primer 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 // koristite response
10 } catch (const std::exception&) {
11 // obradi grešku
12 }
13});
14

patchHashTag Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringYes
tagstringYes
updateHashTagBodyUpdateHashTagBodyYes

Odgovor

Vraća: UpdateHashTagResponse

Primer

patchHashTag Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
voteIdstringYes
optionsconst DeleteModerationVoteOptions&Yes

Odgovor

Vraća: VoteDeleteResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
optionsconst GetApiCommentsOptions&Yes

Odgovor

Vraća: ModerationAPIGetCommentsResponse

Primer

getApiComments Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
optionsconst GetApiExportStatusOptions&Da

Odgovor

Vraća: ModerationExportStatusResponse

Primer

Primer 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

Parametri

NameTypeRequiredDescription
tenantIdstringDa
optionsconst GetApiIdsOptions&Da

Odgovor

Vraća: ModerationAPIGetCommentIdsResponse

Primer

getApiIds Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
ssostringNe

Odgovor

Vraća: GetBannedUsersFromCommentResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
commentIdstringYes
ssostringNo

Одговор

Vraća: GetCommentBanStatusResponse

Пример

Primer 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

Параметри

ИмеТипНеопходноОпис
tenantIdstringДа
commentIdstringДа
ssostringНе

Одговор

Враћа: ModerationAPIChildCommentsResponse

Пример

getCommentChildren Primer
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4boost::optional<utility::string_t> sss = U("sso-token-abc");
5
6api->getCommentChildren(tenantId, commentId, sss)
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: GetBannedUsersCountResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
ssostringNo

Odgovor

Vraća: ModerationAPIGetLogsResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: GetTenantManualBadgesResponse

Primer

Primer 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, sno)
6 .then([](pplx::task<std::shared_ptr<GetTenantManualBadgesResponse>> t) {
7 try {
8 auto response = t.get();
9 // obradi odgovor, npr. response->badgeList
10 } catch (const std::exception& ex) {
11 // obradi grešku
12 }
13 });
14

getManualBadgesForUser Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
optionsconst GetManualBadgesForUserOptions&Da

Odgovor

Vraća: GetUserManualBadgesResponse

Primer

getManualBadgesForUser Primer
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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst GetModerationCommentOptions&Yes

Response

Vraća: ModerationAPICommentResponse

Example

Primer 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 // Obradi odgovor po potrebi
12 } catch (const std::exception& ex) {
13 // Rukuj greškom
14 }
15 });
16

getModerationCommentText Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
commentIdstringYes
ssostringNo

Одговор

Враћа: GetCommentTextResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
optionsconst GetPreBanSummaryOptions&Yes

Odgovor

Vraća: PreBanSummary

Primer

Primer 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 // obradi rezime
12 } catch (const std::exception&) {
13 // obradi grešku
14 }
15 });
16

getSearchCommentsSummary Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
optionsconst GetSearchCommentsSummaryOptions&Yes

Odgovor

Vraća: ModerationCommentSearchResponse

Primer

Primer 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

Parameters

ImeTipObaveznoOpis
tenantIdstringDa
optionsconst GetSearchPagesOptions&Da

Response

Vraća: ModerationPageSearchResponse

Primer

getSearchPages Primer
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 // koristi odgovor
12 } catch (const std::exception& e) {
13 // obradi grešku
14 }
15 });
16

getSearchSites Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
optionsconst GetSearchSitesOptions&Yes

Odgovor

Vraća: ModerationSiteSearchResponse

Primer

getSearchSites Primer
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 // logika obrade
14 }
15 } catch (const std::exception&) {
16 // rukovanje greškama
17 }
18 });
19

getSearchSuggest Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
optionsconst GetSearchSuggestOptions&Yes

Одговор

Враћа: 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&Да

Одговор

Враћа: ModerationUserSearchResponse

Пример

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
optionsconst GetTrustFactorOptions&Yes

Odgovor

Vraća: GetUserTrustFactorResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: APIModerateGetUserBanPreferencesResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
optionsconst GetUserInternalProfileOptions&Da

Odgovor

Vraća: GetUserInternalProfileResponse

Primer

getUserInternalProfile Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsYes
optionsconst PostAdjustCommentVotesOptions&Yes

Одговор

Враћа: AdjustVotesResponse

Пример

postAdjustCommentVotes Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
optionsconst PostApiExportOptions&Yes

Odgovor

Vraća: ModerationExportResponse

Primer

postApiExport Primer
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 // obradi uspešan odgovor izvoza
13 }
14 })
15 .wait();
16

postBanUserFromComment Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
optionsconst PostBanUserFromCommentOptions&Da

Odgovor

Vraća: BanUserFromCommentResult

Primer

postBanUserFromComment Primer
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 // obrada rezultata
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception& e) { /* obrada greške */ }
14 });
15

postBanUserUndo Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
banUserUndoParamsBanUserUndoParamsDa
ssostringNe

Odgovor

Vraća: APIEmptyResponse

Primer

postBanUserUndo Primer
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 // obradi uspeh
10});
11

postBulkPreBanSummary Internal Link

Параметри

ИмеТипТребаОпис
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsYes
optionsconst PostBulkPreBanSummaryOptions&Yes

Одговор

Враћа: 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

Одговор

Returns: 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
commentIdstringДа
optionsconst PostFlagCommentOptions&Да

Одговор

Враћа: APIEmptyResponse

Пример

postFlagComment Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
optionsconst PostRemoveCommentOptions&Da

Odgovor

Vraća: PostRemoveCommentApiResponse

Primer

postRemoveComment Primer
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 // Obradi odgovor
11 } catch (const std::exception& ex) {
12 // Obradi grešku
13 }
14 });
15

postRestoreDeletedComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostRestoreDeletedCommentOptions&Yes

Odgovor

Vraća: APIEmptyResponse

Primer

postRestoreDeletedComment Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentApprovalStatusOptions&Yes

Odgovor

Vraća: SetCommentApprovedResponse

Primer

postSetCommentApprovalStatus Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
commentIdstringДа
optionsconst PostSetCommentReviewStatusOptions&Да

Одговор

Враћа: APIEmptyResponse

Пример

postSetCommentReviewStatus Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentSpamStatusOptions&Yes

Odgovor

Vraća: APIEmptyResponse

Primer

postSetCommentSpamStatus Primer
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 Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
optionsconst PostUnFlagCommentOptions&Da

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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 // obrada se može izvršiti ovde
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

postVote Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostVoteOptions&Yes

Odgovor

Vraća: VoteResponse

Primer

postVote Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
badgeIdstringYes
optionsconst PutAwardBadgeOptions&Yes

Odgovor

Vraća: AwardUserBadgeResponse

Primer

putAwardBadge Primer
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 Primer
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

Параметри

NameTypeRequiredDescription
tenantIdstringYes
badgeIdstringYes
optionsconst PutRemoveBadgeOptions&Yes

Одговор

Враћа: RemoveUserBadgeResponse

Пример

putRemoveBadge Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
ssostringNe

Odgovor

Vraća: APIEmptyResponse

Primer

putReopenThread Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
optionsconst SetTrustFactorOptions&Yes

Odgovor

Vraća: SetUserTrustFactorResponse

Primer

setTrustFactor Primer
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

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
createModeratorBodyCreateModeratorBodyYes

Response

Vraća: CreateModeratorResponse

Primer

createModerator Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa
sendEmailstringNe

Odgovor

Vraća: APIEmptyResponse

Primer

deleteModerator Primer
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 // obradi uspeh
8 });
9

getModerator Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vraća: GetModeratorResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
skipdoubleНе

Одговор

Враћа: 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa
fromNamestringDa

Odgovor

Vraća: APIEmptyResponse

Primer

sendInvite Primer
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 // handle successful invite
9});
10

updateModerator Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Odgovor

Vraća: APIEmptyResponse

Primer

deleteNotificationCount Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа

Одговор

Враћа: GetCachedNotificationCountResponse

Пример

Primer 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 Primer
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

Пример

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
idstringDa
updateNotificationBodyUpdateNotificationBodyDa
userIdstringNe

Odgovor

Vraća: APIEmptyResponse

Primer

updateNotification Primer
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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
titlestringNo

Odgovor

Vraća: CreateV1PageReact

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo

Odgovor

Vraća: CreateV1PageReact

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: CreateV1PageReact

Primer

deleteV1PageReact Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa
idstringDa

Odgovor

Vraća: CreateV1PageReact

Primer

deleteV2PageReact Primer
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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Odgovor

Vraća: GetV1PageLikes

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vraća: GetV2PageReacts

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
idstringYes

Odgovor

Vraća: GetV2PageReactUsersResponse

Primer

Primer 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 // Koristite odgovor po potrebi
10 }catch(const std::exception&){
11 // Obraditi grešku
12 }
13});
14

addPage Internal Link

Parameters

NazivTipObaveznoOpis
tenantIdstringDa
createAPIPageDataCreateAPIPageDataDa

Response

Vraća: AddPageAPIResponse

Example

addPage Primer
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 // obradi uspešno dodavanje
11 } else {
12 // obradi grešku
13 }
14 });
15

deletePage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

Returns: DeletePageAPIResponse

Example

deletePage Primer
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 // obradi odgovor po potrebi
10 } catch (const std::exception& ex) {
11 // obradi grešku
12 }
13 });
14

getOfflineUsers Internal Link

Past komentari na stranici koji NISU trenutno online. Sortirani po displayName.
Koristite ovo nakon što potrošite /users/online kako biste prikazali sekciju „Members“.
Kursor paginacija po commenterName: server prolazi kroz delimični indeks {tenantId, urlId, commenterName} od afterName napred korišćenjem $gt, bez troška $skip.

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetOfflineUsersOptions&Yes

Response

Vraća: PageUsersOfflineResponse

Example

getOfflineUsers Primer
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

Trenutno online posmatrači stranice: osobe čija je websocket sesija trenutno pretplaćena na stranicu.
Vraća anonCount + totalCount (pretplatnici u celoj sobi, uključujući anonimne posmatrače koje ne izlistavamo).

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetOnlineUsersOptions&Yes

Response

Returns: PageUsersOnlineResponse

Example

Primer 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

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
urlIdstringYes

Response

Vraća: GetPageByURLIdAPIResponse

Example

Primer 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


Параметри

ИмеТипОбавезноОпис
tenantIdstringДа

Одговор

Враћа: GetPagesAPIResponse

Пример

Primer 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.
Requires enableFChat to be true on the resolved custom config for each page.
Pages that require SSO are filtered against the requesting user's group access.

Parameters

ИмеТипОбавезноОпис
tenantIdstringYes
optionsconst GetPagesPublicOptions&Yes

Response

Враћа: GetPublicPagesResponse

Example

getPagesPublic Primer
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 // process response if needed
10 // обради одговор ако је потребно
11 }catch(const std::exception&){
12 // handle error if needed
13 // обради грешку ако је потребно
14 }
15});
16

getUsersInfo Internal Link

Bulk informacije o korisnicima za tenant. На основу userIds, враћа информације за приказ из User / SSOUser. Користи се од стране видгета за коментаре да обогати кориснике који су управо појавили преко догађаја присуства. Без контекста странице: приватност се примењује униформно (приватни профили су замаскирани).

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idsstringYes

Odgovor

Vraća: PageUsersInfoResponse

Primer

Primer 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 // obradi odgovor
10 }catch(const std::exception&){
11 // obradi grešku
12 }
13});
14

patchPage Internal Link

Parameters

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes
updateAPIPageDataUpdateAPIPageDataYes

Одговор

Враћа: PatchPageAPIResponse

Пример

patchPage Primer
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 // obradi uspeh
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
optionsconst GetPendingWebhookEventCountOptions&Da

Odgovor

Vraća: GetPendingWebhookEventCountResponse

Primer

getPendingWebhookEventCount Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
optionsconst GetPendingWebhookEventsOptions&Da

Odgovor

Vraća: GetPendingWebhookEventsResponse

Primer

getPendingWebhookEvents Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyYes

Одговор

Враћа: CreateQuestionConfigResponse

Пример

createQuestionConfig Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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 // handle successful deletion
8 })
9 .then([](pplx::task<void> t) {
10 try {
11 t.get();
12 } catch (const std::exception&) {
13 // handle error
14 }
15 });
16

getQuestionConfig Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes

Odgovor

Vraća: GetQuestionConfigResponse

Primer

Primer 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 // Koristite odgovor po potrebi
10 } catch (const std::exception&) {
11 // Obradite grešku
12 }
13 });
14

getQuestionConfigs Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
skipdoubleNe

Odgovor

Vraća: GetQuestionConfigsResponse

Primer

Primer 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 Primer
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

Parameters

NameTypeRequiredDescription
tenantIdstringDa
createQuestionResultBodyCreateQuestionResultBodyDa

Response

Vraća: CreateQuestionResultResponse

Example

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes

Odgovor

Vraća: APIEmptyResponse

Primer

deleteQuestionResult Primer
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 // obrada uspeha
14 }
15 catch ( const std::exception& e )
16 {
17 // obrada greške
18 }
19 } );
20}
21

getQuestionResult Internal Link


Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes

Одговор

Враћа: GetQuestionResultResponse

Пример

Primer 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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetQuestionResultsOptions&Yes

Response

Враћа: GetQuestionResultsResponse

Example

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

Odgovor

Vraća: APIEmptyResponse

Primer

updateQuestionResult Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
optionsconst AggregateQuestionResultsOptions&Da

Odgovor

Vraća: AggregateQuestionResultsResponse

Primer

aggregateQuestionResults Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestYes
forceRecalculateboolNo

Odgovor

Vraća: BulkAggregateQuestionResultsResponse

Primer

bulkAggregateQuestionResults Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
optionsconst CombineCommentsWithQuestionResultsOptions&Yes

Odgovor

Vraća: CombineQuestionResultsWithCommentsResponse

Primer

combineCommentsWithQuestionResults Primer
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 // Use combined as needed
12 }catch(const std::exception&){
13 }
14 });
15

addSSOUser Internal Link

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
createAPISSOUserDataCreateAPISSOUserDataДа

Одговор

Враћа: AddSSOUserAPIResponse

Пример

addSSOUser Primer
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

Параметри

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes
optionsconst DeleteSSOUserOptions&Yes

Одговор

Враћа: DeleteSSOUserAPIResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
emailstringDa

Odgovor

Returns: GetSSOUserByEmailAPIResponse

Primer

getSSOUserByEmail Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа

Одговор

Враћа: GetSSOUserByIdAPIResponse

Пример

getSSOUserById Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
skipint32_tNe

Odgovor

Vraća: GetSSOUsersResponse

Primer

Primer 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

Parameters

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

Response

Vraća: PatchSSOUserAPIResponse

Example

patchSSOUser Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

Odgovor

Vraća: PutSSOUserAPIResponse

Primer

putSSOUser Primer
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

Parameters

ImeTipObaveznoOpis
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataYes

Odgovor

Vraća: CreateSubscriptionAPIResponse

Primer

createSubscription Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа
userIdstringНе

Одговор

Враћа: DeleteSubscriptionAPIResponse

Пример

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
userIdstringNe

Odgovor

Vraća: GetSubscriptionsAPIResponse

Primer

Primer 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 // obradi odgovor
10 } catch (const std::exception& e) {
11 // obradi grešku
12 }
13 }
14);
15

updateSubscription Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

Odgovor

Vraća: UpdateSubscriptionAPIResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Odgovor

Vraća: CreateTenantPackageResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа

Одговор

Враћа: APIEmptyResponse

Пример

deleteTenantPackage Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа

Одговор

Враћа: GetTenantPackageResponse

Пример

Primer 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

Parameters

ИмеТипObaveznoOpis
tenantIdstringDa
skipdoubleNe

Odgovor

Vraća: GetTenantPackagesResponse

Primer

getTenantPackages Primer
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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes
replaceTenantPackageBodyReplaceTenantPackageBodyYes

Одговор

Враћа: APIEmptyResponse

Пример

replaceTenantPackage Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Odgovor

Vraća: APIEmptyResponse

Primer

updateTenantPackage Primer
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 // success handling
14 } catch (const std::exception& ex) {
15 // error handling
16 }
17 });
18

createTenantUser Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
createTenantUserBodyCreateTenantUserBodyDa

Odgovor

Vraća: CreateTenantUserResponse

Primer

createTenantUser Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
optionsconst DeleteTenantUserOptions&Yes

Odgovor

Vraća: APIEmptyResponse

Primer

deleteTenantUser Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vraća: GetTenantUserResponse

Primer

Primer 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 // Koristite odgovor po potrebi
9 } catch (const std::exception&) {
10 // Obrada greške
11 }
12 });
13

getTenantUsers Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
skipdoubleNe

Odgovor

Vraća: GetTenantUsersResponse

Primer

getTenantUsers Primer
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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

Odgovor

Vraća: APIEmptyResponse

Primer

replaceTenantUser Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
redirectURLstringNo

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes
updateTenantUserBodyUpdateTenantUserBodyYes
updateCommentsstringNo

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Odgovor

Vraća: CreateTenantResponse

Primer

createTenant Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
surestringNo

Odgovor

Vraća: APIEmptyResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vraća: GetTenantResponse

Primer

getTenant Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
optionsconst GetTenantsOptions&Da

Odgovor

Vraća: GetTenantsResponse

Primer

Primer 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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
idstringYes
updateTenantBodyUpdateTenantBodyYes

Odgovor

Vraća: APIEmptyResponse

Primer

updateTenant Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Odgovor

Vraća: ChangeTicketStateResponse

Primer

changeTicketState Primer
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

Параметри

ИмеТипЗахтеваноОпис
tenantIdstringYes
userIdstringYes
createTicketBodyCreateTicketBodyYes

Одговор

Враћа: CreateTicketResponse

Пример

createTicket Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
idstringYes
userIdstringNo

Odgovor

Vraća: GetTicketResponse

Primer

getTicket Primer
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

Параметри

ИмеТипОбавезноОписание
tenantIdstringYes
optionsconst GetTicketsOptions&Yes

Одговор

Враћа: GetTicketsResponse

Пример

Primer 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

Parametri

ImeTipObaveznoOpis
r_namespacestringYes
componentstringYes
optionsconst GetTranslationsOptions&Yes

Odgovor

Vraća: GetTranslationsResponse

Primer

Primer 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

NazivTipObaveznoOpis
tenantIdstringYes
fileHttpContentYes
optionsconst UploadImageOptions&Yes

Response

Vraća: UploadImageResponse

Example

Primer 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

Params

ImeTipObaveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vraća: APIGetUserBadgeProgressResponse

Primer

getUserBadgeProgressById Primer
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


Parametri

NazivTipObaveznoOpis
tenantIdstringDa
userIdstringDa

Odgovor

Vraća: APIGetUserBadgeProgressResponse

Primer

getUserBadgeProgressByUserId Primer
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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetUserBadgeProgressListOptions&Yes

Response

Vraća: APIGetUserBadgeProgressListResponse

Primer

Primer 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 // obradi značku
12 }
13 });
14

createUserBadge Internal Link

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsYes

Odgovor

Vraća: APICreateUserBadgeResponse

Primer

createUserBadge Primer
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

Parametri

НазивТипОбавезноОпис
tenantIdstringДа
idstringДа

Odgovor

Returns: APIEmptySuccessResponse

Primer

deleteUserBadge Primer
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

Parameters

ИмеТипОбавезноОпис
tenantIdstringДа
idstringДа

Response

Враћа: APIGetUserBadgeResponse

Пример

Primer 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

Parametri

ImeTipPotrebnoOpis
tenantIdstringDa
optionsconst GetUserBadgesOptions&Da

Odgovor

Vraća: APIGetUserBadgesResponse

Primer

getUserBadges Primer
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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateUserBadgeParamsUpdateUserBadgeParamsYes

Response

Vraća: APIEmptySuccessResponse

Primer

updateUserBadge Primer
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

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vraća: GetUserNotificationCountResponse

Primer

Primer 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 // koristite resp po potrebi
8 }catch(const std::exception&){
9 // obradite grešku
10 }
11});
12

getUserNotifications Internal Link

Параметри

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetUserNotificationsOptions&Yes

Одговор

Враћа: GetMyNotificationsResponse

Пример

getUserNotifications Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
ssostringNo

Odgovor

Vraća: ResetUserNotificationsResponse

Primer

resetUserNotificationCount Primer
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
optionsconst ResetUserNotificationsOptions&Yes

Odgovor

Vraća: ResetUserNotificationsResponse

Primer

resetUserNotifications Primer
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 // Obradi odgovor
8 });
9

updateUserNotificationCommentSubscriptionStatus Internal Link

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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
optedInOrOutstringYes
commentIdstringYes
ssostringNo

Response

Vraća: UpdateUserNotificationCommentSubscriptionStatusResponse

Primer

Primer 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

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

Parameters

ИмеТипЗахтеваноОпис
tenantIdstringДа
urlIdstringДа
urlstringДа
pageTitlestringДа
subscribedOrUnsubscribedstringДа
ssostringНе

Response

Враћа: UpdateUserNotificationPageSubscriptionStatusResponse

Example

Primer 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

Параметри

NameTypeRequiredDescription
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

Parametri

ImeTipObaveznoOpis
tenantIdstringDa
urlIdWSstringDa
userIdsstringDa

Odgovor

Vraća: GetUserPresenceStatusesResponse

Primer

Primer 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

Параметри

ИмеТипОбавезноОпис
tenantIdstringДа
urlIdstringДа
optionsconst SearchUsersOptions&Да

Одговор

Враћа: SearchUsersResult

Пример

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

Параметри

ИмеТипОбавезноОпис
tenantIdstringYes
idstringYes

Одговор

Returns: GetUserResponse

Пример

Primer 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 // obradi odgovor po potrebi
14 } catch (const std::exception&) {
15 // obradi grešku
16 }
17 });
18

createVote Internal Link

Parametri

NazivTipObaveznoOpis
tenantIdstringDa
commentIdstringDa
directionstringDa
optionsconst CreateVoteOptions&Da

Odgovor

Vraća: VoteResponse

Primer

Primer 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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
editKeystringNo

Response

Returns: VoteDeleteResponse

Example

deleteVote Primer
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 // Obradi odgovor po potrebi
10 } catch (const std::exception&) {
11 // Obradi grešku
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

Parametri

ImeTipObaveznoOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetVotesForUserOptions&Yes

Odgovor

Vraća: GetVotesForUserResponse

Primer

getVotesForUser Primer
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 // obradi odgovor, npr., iteriraj glasove
10 }
11});
12

Треба помоћ?

Ако наиђете на било какве проблеме или имате питања везана за C++ SDK, молимо вас:

Допринос

Доприноси су добродошли! Посетите GitHub репозиторијум за смернице о доприносу.