FastComments.com

SDK C++ do FastComments


Isto é o SDK oficial em C++ para o FastComments.

SDK oficial em C++ para a API do FastComments

Repositório

Ver no GitHub


Requisitos Internal Link


  • C++17 ou posterior
  • CMake 3.14 ou posterior
  • OpenSSL
  • C++ REST SDK (cpprestsdk)
  • Boost
  • Google Test (baixado automaticamente para testes)

Instalação Internal Link

Instalar Dependências

sudo apt install libcpprest-dev libboost-all-dev

Compilando a partir do Código-Fonte

mkdir build
cd build
cmake ..
make

Instalando

sudo make install

Conteúdo da Biblioteca

Esta biblioteca contém o cliente de API gerado e as utilidades SSO para facilitar o trabalho com a API.

APIs Públicas vs Seguras

Para o cliente de API, há três classes, DefaultApi, PublicApi e ModerationApi. O DefaultApi contém métodos que exigem sua chave de API, e o PublicApi contém métodos que podem ser chamados diretamente de um navegador/dispositivo móvel/etc sem autenticação. O ModerationApi fornece um conjunto extenso de APIs de moderação em tempo real e rápidas. Cada método do ModerationApi aceita um parâmetro sso e pode autenticar via SSO ou um cookie de sessão do FastComments.com.

Notas Internal Link

IDs de Broadcast

Você verá que deve passar um broadcastId em algumas chamadas de API. Quando você receber eventos, receberá esse ID de volta, então saberá ignorar o evento se planejar aplicar alterações otimisticamente no cliente (o que você provavelmente vai querer fazer, já que oferece a melhor experiência). Passe um UUID aqui. O ID deve ser único o suficiente para não ocorrer duas vezes em uma sessão do navegador.

SSO (Login Único)

Para exemplos de SSO, veja abaixo.

Uso de SSO Internal Link


SSO Simples

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

using namespace fastcomments::sso;

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

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

SSO Seguro

#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.
Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
aggregationRequestAggregationRequestYes
optionsconst AggregateOptions&Yes

Response

Returns: AggregateResponse

Example

Exemplo de agregação
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 // processar resposta
19 } catch (const std::exception& e) {
20 // tratar erro
21 }
22 });
23

getAuditLogs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
optionsconst GetAuditLogsOptions&Yes

Resposta

Retorna: GetAuditLogsResponse

Exemplo

Exemplo 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 // usar a resposta
13 } catch (const std::exception& e) {
14 // tratar erro
15 }
16});
17

logoutPublic Internal Link

Resposta

Retorna: APIEmptyResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: BlockSuccess

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: UnblockSuccess

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdsstringSim
ssostringNão

Resposta

Retorna: CheckBlockedCommentsResponse

Exemplo

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

blockUserFromComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
blockFromCommentParamsBlockFromCommentParamsSim
optionsconst BlockUserFromCommentOptions&Sim

Resposta

Retorna: BlockSuccess

Exemplo

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

createCommentPublic Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
broadcastIdstringSim
commentDataCommentDataSim
optionsconst CreateCommentPublicOptions&Sim

Resposta

Retorna: SaveCommentsResponseWithPresence

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
optionsconst DeleteCommentOptions&Sim

Resposta

Retorna: DeleteCommentResult

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
optionsconst DeleteCommentPublicOptions&Sim

Resposta

Retorna: PublicAPIDeleteCommentResponse

Exemplo

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

deleteCommentVote Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
voteIdstringSim
urlIdstringSim
broadcastIdstringSim
optionsconst DeleteCommentVoteOptions&Sim

Resposta

Retorna: VoteDeleteResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
optionsconst FlagCommentOptions&Sim

Resposta

Retorna: FlagCommentResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: APIGetCommentResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetCommentsOptions&Sim

Resposta

Retorna: APIGetCommentsResponse

Exemplo

Exemplo 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 // use a resposta conforme necessário
12 } catch (const std::exception& e) {
13 // trate o erro
14 }
15});
16

getCommentsPublic Internal Link

req tenantId urlId

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
optionsconst GetCommentsPublicOptions&Sim

Resposta

Retorna: GetCommentsResponseWithPresence_PublicComment_

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst GetCommentTextOptions&Sim

Resposta

Retorna: PublicAPIGetCommentTextResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
dirint32_tSim
ssostringNão

Resposta

Retorna: GetCommentVoteUserNamesSuccessResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Resposta

Retorna: ChangeCommentPinStatusResponse

Exemplo

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

saveComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
optionsconst SaveCommentOptions&Yes

Resposta

Retorna: APISaveCommentResponse

Exemplo

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

setCommentText Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
commentTextUpdateRequestCommentTextUpdateRequestSim
optionsconst SetCommentTextOptions&Sim

Resposta

Retorna: PublicAPISetCommentTextResponse

Exemplo

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

unBlockUserFromComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
unBlockFromCommentParamsUnBlockFromCommentParamsYes
optionsconst UnBlockUserFromCommentOptions&Yes

Resposta

Retorna: UnblockSuccess

Exemplo

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

unFlagComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
optionsconst UnFlagCommentOptions&Sim

Resposta

Retorna: FlagCommentResponse

Exemplo

Exemplo 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 // processar status se necessário
9 }
10 })
11 .then([](pplx::task<void> previous) {
12 try {
13 previous.get();
14 } catch (const std::exception& e) {
15 // tratar erro
16 }
17 });
18

unLockComment Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: ChangeCommentPinStatusResponse

Exemplo

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

updateComment Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updatableCommentParamsUpdatableCommentParamsSim
optionsconst UpdateCommentOptions&Sim

Response

Retorna: APIEmptyResponse

Example

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
urlIdstringSim
broadcastIdstringSim
voteBodyParamsVoteBodyParamsSim
optionsconst VoteCommentOptions&Sim

Resposta

Retorna: VoteResponse

Exemplo

Exemplo 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 // lidar com a resposta
19 } catch (const std::exception&) {
20 }
21 });
22

getCommentsForUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
optionsconst GetCommentsForUserOptions&Sim

Resposta

Retorna: GetCommentsForUserResponse

Exemplo

getCommentsForUser Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
addDomainConfigParamsAddDomainConfigParamsSim

Resposta

Retorna: AddDomainConfigResponse

Exemplo

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

deleteDomainConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Returns: DeleteDomainConfigResponse

Exemplo

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

getDomainConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Retorna: GetDomainConfigResponse

Exemplo

Exemplo 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 // handle enabled moderation
12 }
13 if (theme) {
14 // use theme value
15 }
16 })
17 .wait();
18

getDomainConfigs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetDomainConfigsResponse

Exemplo

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

patchDomainConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
patchDomainConfigParamsPatchDomainConfigParamsSim

Resposta

Retorna: PatchDomainConfigResponse

Exemplo

Exemplo patchDomainConfig
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto domainToUpdate = utility::conversions::to_string_t("example.com");
4PatchDomainConfigParams patchDomainConfigParams;
5patchDomainConfigParams.enableComments = boost::optional<bool>(true);
6patchDomainConfigParams.moderationLevel = boost::optional<int>(2);
7patchDomainConfigParams.customHeader = boost::optional<utility::string_t>(utility::conversions::to_string_t("X-Custom-Header"));
8
9api->patchDomainConfig(tenantId, domainToUpdate, patchDomainConfigParams)
10 .then([](std::shared_ptr<PatchDomainConfigResponse> resp) {
11 // tratamento de sucesso
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception& e) { /* tratamento de erro */ }
15 });
16

putDomainConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
updateDomainConfigParamsUpdateDomainConfigParamsSim

Resposta

Retorna: PutDomainConfigResponse

Exemplo

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

createEmailTemplate Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createEmailTemplateBodyCreateEmailTemplateBodySim

Resposta

Retorna: CreateEmailTemplateResponse

Exemplo

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

deleteEmailTemplate Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

deleteEmailTemplateRenderError Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
errorIdstringSim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetEmailTemplateResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetEmailTemplateDefinitionsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
skipdoubleNão

Resposta

Retorna: GetEmailTemplateRenderErrorsResponse

Exemplo

getEmailTemplateRenderErrors Exemplo
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 // Use a resposta conforme necessário
11 } catch (const std::exception& ex) {
12 // Trate o erro
13 }
14 });
15

getEmailTemplates Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipdoubleNão

Resposta

Retorna: GetEmailTemplatesResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
renderEmailTemplateBodyRenderEmailTemplateBodySim
localestringNão

Resposta

Retorna: RenderEmailTemplateResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo 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 // manipulação de sucesso
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception &) { /* manipulação de erro */ }
14 });
15

getEventLog Internal Link

req tenantId urlId userIdWS

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimeint64_tSim
endTimeint64_tNão

Resposta

Retorna: GetEventLogResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimeint64_tSim
endTimeint64_tNão

Resposta

Retorna: GetEventLogResponse

Exemplo

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

createFeedPost Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createFeedPostParamsCreateFeedPostParamsSim
optionsconst CreateFeedPostOptions&Sim

Resposta

Retorna: CreateFeedPostsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createFeedPostParamsCreateFeedPostParamsSim
optionsconst CreateFeedPostPublicOptions&Sim

Resposta

Retorna: CreateFeedPostResponse

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
optionsconst DeleteFeedPostPublicOptions&Sim

Resposta

Retorna: DeleteFeedPostPublicResponse

Exemplo

deleteFeedPostPublic Exemplo
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 // lógica de sucesso
8 }
9 });
10

getFeedPosts Internal Link

req tenantId afterId

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetFeedPostsOptions&Sim

Resposta

Retorna: GetFeedPostsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetFeedPostsPublicOptions&Sim

Resposta

Retorna: PublicFeedPostsResponse

Exemplo

Exemplo getFeedPostsPublic
Copy Copy
1
2auto options = GetFeedPostsPublicOptions{};
3options.limit = boost::optional<int>{20};
4options.before = boost::optional<utility::string_t>{U("2023-01-01T00:00:00Z")};
5
6api->getFeedPostsPublic(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<PublicFeedPostsResponse>> task){
7 try{
8 auto response = task.get();
9 auto processed = std::make_shared<PublicFeedPostsResponse>(*response);
10 // Use o processado conforme necessário
11 }catch(const std::exception&){
12 // Trate o erro
13 }
14});
15

getFeedPostsStats Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdsvector<stringSim
ssostringNão

Resposta

Retorna: FeedPostsStatsResponse

Exemplo

Exemplo 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


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetUserReactsPublicOptions&Sim

Resposta

Retorna: UserReactsResponse

Exemplo

Exemplo 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

Parameters

NameTypeRequiredDescription
tenantIdstringSim
postIdstringSim
reactBodyParamsReactBodyParamsSim
optionsconst ReactFeedPostPublicOptions&Sim

Response

Retorna: ReactFeedPostResponse

Exemplo

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

updateFeedPost Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
feedPostFeedPostYes

Resposta

Retorna: APIEmptyResponse

Exemplo

updateFeedPost Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
updateFeedPostParamsUpdateFeedPostParamsSim
optionsconst UpdateFeedPostPublicOptions&Sim

Resposta

Retorna: CreateFeedPostResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
isFlaggedboolSim
ssostringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
largeInternalURLSanitizedstringSim

Resposta

Retorna: GifGetLargeResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
searchstringSim
optionsconst GetGifsSearchOptions&Sim

Resposta

Retorna: GetGifsSearchResponse

Exemplo

getGifsSearch Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetGifsTrendingOptions&Sim

Resposta

Retorna: GetGifsTrendingResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createHashTagBodyCreateHashTagBodySim

Resposta

Retorna: CreateHashTagResponse

Exemplo

Exemplo 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

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyYes

Resposta

Retorna: BulkCreateHashTagsResponse

Exemplo

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

deleteHashTag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
tagstringSim
deleteHashTagRequestBodyDeleteHashTagRequestBodySim

Resposta

Retorna: APIEmptyResponse

Exemplo

deleteHashTag Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
pagedoubleNão

Resposta

Retorna: GetHashTagsResponse

Exemplo

Exemplo 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 // usar a resposta
10 } catch (const std::exception&) {
11 // tratar erro
12 }
13});
14

patchHashTag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
tagstringSim
updateHashTagBodyUpdateHashTagBodySim

Resposta

Retorna: UpdateHashTagResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
voteIdstringSim
optionsconst DeleteModerationVoteOptions&Sim

Resposta

Retorna: VoteDeleteResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetApiCommentsOptions&Sim

Resposta

Retorna: ModerationAPIGetCommentsResponse

Exemplo

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

getApiExportStatus Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetApiExportStatusOptions&Sim

Resposta

Retorna: ModerationExportStatusResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetApiIdsOptions&Sim

Resposta

Retorna: ModerationAPIGetCommentIdsResponse

Exemplo

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

getBanUsersFromComment Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostringNo

Resposta

Retorna: GetBannedUsersFromCommentResponse

Exemplo

Exemplo 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

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostringNo

Resposta

Retorna: GetCommentBanStatusResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
ssostringNão

Resposta

Retorna: ModerationAPIChildCommentsResponse

Exemplo

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

getCount Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
optionsconst GetCountOptions&Sim

Resposta

Retorna: ModerationAPICountCommentsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: GetBannedUsersCountResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
ssostringNão

Resposta

Retorna: ModerationAPIGetLogsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: GetTenantManualBadgesResponse

Exemplo

Exemplo getManualBadges
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> sso = boost::make_optional(U("user@example.com"));
4
5api->getManualBadges(tenantId, sso)
6 .then([](pplx::task<std::shared_ptr<GetTenantManualBadgesResponse>> t) {
7 try {
8 auto response = t.get();
9 // processar resposta, por exemplo, response->badgeList
10 } catch (const std::exception& ex) {
11 // tratar erro
12 }
13 });
14

getManualBadgesForUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetManualBadgesForUserOptions&Sim

Resposta

Retorna: GetUserManualBadgesResponse

Exemplo

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

getModerationComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst GetModerationCommentOptions&Sim

Resposta

Retorna: ModerationAPICommentResponse

Exemplo

Exemplo 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 // Processar resposta conforme necessário
12 } catch (const std::exception& ex) {
13 // Tratar erro
14 }
15 });
16

getModerationCommentText Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
ssostringNo

Resposta

Retorna: GetCommentTextResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst GetPreBanSummaryOptions&Sim

Resposta

Retorna: PreBanSummary

Exemplo

Exemplo 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 // processar resumo
12 } catch (const std::exception&) {
13 // tratar erro
14 }
15 });
16

getSearchCommentsSummary Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetSearchCommentsSummaryOptions&Sim

Resposta

Retorna: ModerationCommentSearchResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetSearchPagesOptions&Sim

Resposta

Retorna: ModerationPageSearchResponse

Exemplo

Exemplo getSearchPages
Copy Copy
1
2GetSearchPagesOptions options;
3options.pageNumber = boost::optional<int>(1);
4options.pageSize = boost::optional<int>(50);
5options.searchTerm = boost::optional<utility::string_t>(U("spam"));
6
7api->getSearchPages(U("my-tenant-123"), options)
8 .then([](pplx::task<std::shared_ptr<ModerationPageSearchResponse>> task) {
9 try {
10 auto response = task.get();
11 // usar a resposta
12 } catch (const std::exception& e) {
13 // tratar erro
14 }
15 });
16

getSearchSites Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetSearchSitesOptions&Sim

Resposta

Retorna: ModerationSiteSearchResponse

Exemplo

Exemplo getSearchSites
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetSearchSitesOptions options;
4options.query = boost::make_optional(utility::string_t(U("example query")));
5options.limit = boost::make_optional(25);
6
7api->getSearchSites(tenantId, options)
8 .then([](pplx::task<std::shared_ptr<ModerationSiteSearchResponse>> t) {
9 try {
10 auto response = t.get();
11 auto respPtr = std::make_shared<ModerationSiteSearchResponse>(*response);
12 for (const auto& site : respPtr->sites) {
13 // lógica de processamento
14 }
15 } catch (const std::exception&) {
16 // tratamento de erro
17 }
18 });
19

getSearchSuggest Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetSearchSuggestOptions&Sim

Resposta

Retorna: ModerationSuggestResponse

Exemplo

getSearchSuggest Exemplo
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

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetSearchUsersOptions&Sim

Response

Retorna: ModerationUserSearchResponse

Example

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetTrustFactorOptions&Sim

Resposta

Retorna: GetUserTrustFactorResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: APIModerateGetUserBanPreferencesResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetUserInternalProfileOptions&Sim

Resposta

Retorna: GetUserInternalProfileResponse

Exemplo

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

postAdjustCommentVotes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
adjustCommentVotesParamsAdjustCommentVotesParamsSim
optionsconst PostAdjustCommentVotesOptions&Sim

Resposta

Retorna: AdjustVotesResponse

Exemplo

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

postApiExport Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst PostApiExportOptions&Sim

Respota

Retorna: ModerationExportResponse

Exemplo

postApiExport Exemplo
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 // lidar com a resposta de exportação bem-sucedida
13 }
14 })
15 .wait();
16

postBanUserFromComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst PostBanUserFromCommentOptions&Sim

Resposta

Retorna: BanUserFromCommentResult

Exemplo

postBanUserFromComment Exemplo
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 // tratamento do resultado
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception& e) { /* tratamento de erro */ }
14 });
15

postBanUserUndo Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
banUserUndoParamsBanUserUndoParamsSim
ssostringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

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

postBulkPreBanSummary Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
bulkPreBanParamsBulkPreBanParamsSim
optionsconst PostBulkPreBanSummaryOptions&Sim

Resposta

Retorna: BulkPreBanSummary

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentsByIdsParamsCommentsByIdsParamsSim
ssostringNão

Resposta

Retorna: ModerationAPIChildCommentsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst PostFlagCommentOptions&Sim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

postRemoveComment Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostRemoveCommentOptions&Yes

Resposta

Retorna: PostRemoveCommentApiResponse

Exemplo

postRemoveComment Exemplo
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 // Processar resposta
11 } catch (const std::exception& ex) {
12 // Tratar erro
13 }
14 });
15

postRestoreDeletedComment Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
optionsconst PostRestoreDeletedCommentOptions&Yes

Resposta

Returns: APIEmptyResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentApprovalStatusOptions&Yes

Resposta

Retorna: SetCommentApprovedResponse

Exemplo

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

postSetCommentReviewStatus Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst PostSetCommentReviewStatusOptions&Sim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst PostSetCommentSpamStatusOptions&Sim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsYes
optionsconst PostSetCommentTextOptions&Yes

Resposta

Retorna: SetCommentTextResponse

Exemplo

postSetCommentText Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
optionsconst PostUnFlagCommentOptions&Yes

Resposta

Returns: APIEmptyResponse

Exemplo

postUnFlagComment Exemplo
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 // o processamento pode ser feito aqui
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

postVote Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
optionsconst PostVoteOptions&Sim

Resposta

Retorna: VoteResponse

Exemplo

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

putAwardBadge Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
badgeIdstringSim
optionsconst PutAwardBadgeOptions&Sim

Resposta

Retorna: AwardUserBadgeResponse

Exemplo

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

putCloseThread Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
ssostringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

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

putRemoveBadge Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
badgeIdstringYes
optionsconst PutRemoveBadgeOptions&Yes

Resposta

Retorna: RemoveUserBadgeResponse

Exemplo

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

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
ssostringNo

Resposta

Retorna: APIEmptyResponse

Exemplo

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

setTrustFactor Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst SetTrustFactorOptions&Sim

Resposta

Retorna: SetUserTrustFactorResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createModeratorBodyCreateModeratorBodySim

Resposta

Retorna: CreateModeratorResponse

Exemplo

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

deleteModerator Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
sendEmailstringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo deleteModerator
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto moderatorId = utility::conversions::to_string_t("mod-456");
4boost::optional<utility::string_t> sendEmail = utility::conversions::to_string_t("admin@example.com");
5api->deleteModerator(tenantId, moderatorId, sendEmail)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {
7 // tratar sucesso
8 });
9

getModerator Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetModeratorResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipdoubleNão

Resposta

Retorna: GetModeratorsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
fromNamestringSim

Resposta

Retorna: APIEmptyResponse

Exemplo

sendInvite Exemplo
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 // lidar com convite bem-sucedido
9});
10

updateModerator Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateModeratorBodyUpdateModeratorBodySim

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo 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

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Response

Retorna: APIEmptyResponse

Example

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

getCachedNotificationCount Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetCachedNotificationCountResponse

Exemplo

Exemplo 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 // processar a resposta
10 } catch (const std::exception&) {
11 // tratar erro
12 }
13 });
14

getNotificationCount Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetNotificationCountOptions&Yes

Resposta

Retorna: GetNotificationCountResponse

Exemplo

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

getNotifications Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetNotificationsOptions&Sim

Resposta

Retorna: GetNotificationsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateNotificationBodyUpdateNotificationBodySim
userIdstringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

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

createV1PageReact Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
titlestringNão

Resposta

Retorna: CreateV1PageReact

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
idstringSim
titlestringNão

Resposta

Retorna: CreateV1PageReact

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: CreateV1PageReact

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
idstringSim

Resposta

Retorna: CreateV1PageReact

Exemplo

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

getV1PageLikes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetV1PageLikes

Exemplo

getV1PageLikes Exemplo
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

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Resposta

Retorna: GetV2PageReacts

Exemplo

getV2PageReacts Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
urlIdstringYes
idstringYes

Resposta

Retorna: GetV2PageReactUsersResponse

Exemplo

Exemplo getV2PageReactUsers
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4auto id = utility::conversions::to_string_t("react-789");
5boost::optional<utility::string_t> maybeFilter;
6api->getV2PageReactUsers(tenantId, urlId, id).then([](pplx::task<std::shared_ptr<GetV2PageReactUsersResponse>> task){
7 try{
8 auto response = task.get();
9 // Use a resposta conforme necessário
10 }catch(const std::exception&){
11 // Trate o erro
12 }
13});
14

addPage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIPageDataCreateAPIPageDataSim

Resposta

Retorna: AddPageAPIResponse

Exemplo

Exemplo addPage
Copy Copy
1
2auto createData = CreateAPIPageData{};
3createData.title = utility::string_t(U("Welcome Page"));
4createData.url = utility::string_t(U("https://example.com/welcome"));
5createData.description = boost::optional<utility::string_t>(utility::string_t(U("Landing page for new users")));
6
7api->addPage(utility::string_t(U("my-tenant-123")), createData)
8 .then([](std::shared_ptr<AddPageAPIResponse> response) {
9 if (response && response->success) {
10 // lidar com adição bem-sucedida
11 } else {
12 // lidar com erro
13 }
14 });
15

deletePage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeletePageAPIResponse

Exemplo

Exemplo de deletePage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto pageId = utility::conversions::to_string_t("page-456");
4
5api->deletePage(tenantId, pageId)
6 .then([](pplx::task<std::shared_ptr<DeletePageAPIResponse>> t) {
7 try {
8 auto response = t.get();
9 // processar a resposta conforme necessário
10 } catch (const std::exception& ex) {
11 // tratar erro
12 }
13 });
14

getOfflineUsers Internal Link

Passados comentadores na página que NÃO estão atualmente online. Ordenados por displayName.
Use isso depois de esgotar /users/online para renderizar uma seção “Members”.
Paginação por cursor em commenterName: o servidor percorre o parcial {tenantId, urlId, commenterName}
índice a partir de afterName avançando via $gt, sem custo de $skip.

Parameters

NameTypeRequiredDescription
tenantIdstringSim
urlIdstringSim
optionsconst GetOfflineUsersOptions&Sim

Response

Retorna: PageUsersOfflineResponse

Example

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

getOnlineUsers Internal Link

Visualizadores atualmente online de uma página: pessoas cuja sessão websocket está assinada à página neste momento.
Retorna anonCount + totalCount (assinantes de toda a sala, incluindo visualizadores anônimos que não enumeramos).

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
optionsconst GetOnlineUsersOptions&Sim

Resposta

Retorna: PageUsersOnlineResponse

Exemplo

Exemplo 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


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetPageByURLIdAPIResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetPagesAPIResponse

Exemplo

Exemplo 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.
Requer 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

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetPagesPublicOptions&Sim

Response

Retorna: GetPublicPagesResponse

Exemplo

Exemplo getPagesPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetPagesPublicOptions options;
4options.limit = boost::optional<int>(50);
5options.cursor = boost::optional<utility::string_t>(U("cursor-token"));
6api->getPagesPublic(tenantId, options).then([](pplx::task<std::shared_ptr<GetPublicPagesResponse>> task){
7 try{
8 auto response = task.get();
9 // processar a resposta se necessário
10 }catch(const std::exception&){
11 // tratar erro se necessário
12 }
13});
14

getUsersInfo Internal Link

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

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idsstringSim

Resposta

Retorna: PageUsersInfoResponse

Exemplo

Exemplo 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 // processar resposta
10 }catch(const std::exception&){
11 // tratar erro
12 }
13});
14

patchPage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPIPageDataUpdateAPIPageDataSim

Resposta

Retorna: PatchPageAPIResponse

Exemplo

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

deletePendingWebhookEvent Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Response

Retorna: APIEmptyResponse

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetPendingWebhookEventCountOptions&Sim

Resposta

Retorna: GetPendingWebhookEventCountResponse

Exemplo

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

getPendingWebhookEvents Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetPendingWebhookEventsOptions&Sim

Resposta

Retorna: GetPendingWebhookEventsResponse

Exemplo

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

createQuestionConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createQuestionConfigBodyCreateQuestionConfigBodySim

Resposta

Retorna: CreateQuestionConfigResponse

Exemplo

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

deleteQuestionConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo 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 // tratar exclusão bem-sucedida
8 })
9 .then([](pplx::task<void> t) {
10 try {
11 t.get();
12 } catch (const std::exception&) {
13 // tratar erro
14 }
15 });
16

getQuestionConfig Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetQuestionConfigResponse

Exemplo

Exemplo 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 // Use a resposta conforme necessário
10 } catch (const std::exception&) {
11 // Tratar erro
12 }
13 });
14

getQuestionConfigs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipdoubleNão

Resposta

Retorna: GetQuestionConfigsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

Resposta

Retorna: APIEmptyResponse

Exemplo

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

createQuestionResult Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createQuestionResultBodyCreateQuestionResultBodySim

Resposta

Retorna: CreateQuestionResultResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes

Resposta

Returns: APIEmptyResponse

Exemplo

Exemplo deleteQuestionResult
Copy Copy
1
2boost::optional<utility::string_t> optTenant = utility::conversions::to_string_t( "my-tenant-123" );
3utility::string_t questionId = utility::conversions::to_string_t( "question-456" );
4
5if ( optTenant )
6{
7 api->deleteQuestionResult( *optTenant, questionId )
8 .then( []( pplx::task<std::shared_ptr<APIEmptyResponse>> t )
9 {
10 try
11 {
12 auto resp = t.get();
13 // tratamento de sucesso
14 }
15 catch ( const std::exception& e )
16 {
17 // tratamento de erro
18 }
19 } );
20}
21

getQuestionResult Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetQuestionResultResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetQuestionResultsOptions&Sim

Resposta

Retorna: GetQuestionResultsResponse

Exemplo

Exemplo 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 // lidar com a resposta
10 });
11

updateQuestionResult Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateQuestionResultBodyUpdateQuestionResultBodySim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

aggregateQuestionResults Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst AggregateQuestionResultsOptions&Sim

Resposta

Retorna: AggregateQuestionResultsResponse

Exemplo

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

bulkAggregateQuestionResults Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestSim
forceRecalculateboolNão

Resposta

Retorna: BulkAggregateQuestionResultsResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst CombineCommentsWithQuestionResultsOptions&Sim

Resposta

Retorna: CombineQuestionResultsWithCommentsResponse

Exemplo

Exemplo combineCommentsWithQuestionResults
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3CombineCommentsWithQuestionResultsOptions options;
4options.questionId = utility::string_t("question-789");
5options.maxComments = boost::optional<int>(50);
6api->combineCommentsWithQuestionResults(tenantId, options).then(
7 [](pplx::task<std::shared_ptr<CombineQuestionResultsWithCommentsResponse>> task){
8 try{
9 auto respPtr = task.get();
10 auto combined = std::make_shared<CombineQuestionResultsWithCommentsResponse>(*respPtr);
11 // Use combined conforme necessário
12 }catch(const std::exception&){
13 }
14 });
15

addSSOUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPISSOUserDataCreateAPISSOUserDataSim

Resposta

Retorna: AddSSOUserAPIResponse

Exemplo

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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
optionsconst DeleteSSOUserOptions&Yes

Resposta

Retorna: DeleteSSOUserAPIResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
emailstringSim

Resposta

Retorna: GetSSOUserByEmailAPIResponse

Exemplo

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

getSSOUserById Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetSSOUserByIdAPIResponse

Exemplo

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

getSSOUsers Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipint32_tNão

Resposta

Retorna: GetSSOUsersResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

Resposta

Retorna: PatchSSOUserAPIResponse

Exemplo

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

putSSOUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

Resposta

Retorna: PutSSOUserAPIResponse

Exemplo

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

createSubscription Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataSim

Resposta

Retorna: CreateSubscriptionAPIResponse

Exemplo

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

deleteSubscription Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Resposta

Retorna: DeleteSubscriptionAPIResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão

Resposta

Retorna: GetSubscriptionsAPIResponse

Exemplo

Exemplo 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 // processar resposta
10 } catch (const std::exception& e) {
11 // tratar erro
12 }
13 }
14);
15

updateSubscription Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataSim
userIdstringNão

Resposta

Retorna: UpdateSubscriptionAPIResponse

Exemplo

Exemplo 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


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetTenantDailyUsagesOptions&Sim

Resposta

Retorna: GetTenantDailyUsagesResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantPackageBodyCreateTenantPackageBodySim

Resposta

Retorna: CreateTenantPackageResponse

Exemplo

createTenantPackage Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes

Resposta

Retorna: APIEmptyResponse

Exemplo

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

getTenantPackage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantPackageResponse

Exemplo

getTenantPackage Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipdoubleNão

Resposta

Retorna: GetTenantPackagesResponse

Exemplo

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

replaceTenantPackage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
replaceTenantPackageBodyReplaceTenantPackageBodySim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

updateTenantPackage Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Resposta

Retorna: APIEmptyResponse

Exemplo

updateTenantPackage Exemplo
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 // tratamento de sucesso
14 } catch (const std::exception& ex) {
15 // tratamento de erro
16 }
17 });
18

createTenantUser Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

Resposta

Retorna: CreateTenantUserResponse

Exemplo

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

deleteTenantUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
optionsconst DeleteTenantUserOptions&Sim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

getTenantUser Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Response

Retorna: GetTenantUserResponse

Example

Exemplo 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 // Use response as needed
9 } catch (const std::exception&) {
10 // Error handling
11 }
12 });
13

getTenantUsers Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipdoubleNão

Resposta

Retorna: GetTenantUsersResponse

Exemplo

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

replaceTenantUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
replaceTenantUserBodyReplaceTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

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


Parameters

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
redirectURLstringNo

Response

Retorna: APIEmptyResponse

Example

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateTenantUserBodyUpdateTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantBodyCreateTenantBodySim

Resposta

Retorna: CreateTenantResponse

Exemplo

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

deleteTenant Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
surestringNão

Resposta

Retorna: APIEmptyResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantResponse

Exemplo

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

getTenants Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetTenantsOptions&Sim

Resposta

Retorna: GetTenantsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateTenantBodyUpdateTenantBodySim

Resposta

Retorna: APIEmptyResponse

Exemplo

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

changeTicketState Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim
idstringSim
changeTicketStateBodyChangeTicketStateBodySim

Resposta

Retorna: ChangeTicketStateResponse

Exemplo

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

createTicket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim
createTicketBodyCreateTicketBodySim

Resposta

Retorna: CreateTicketResponse

Exemplo

Exemplo createTicket
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("john.doe@example.com");
4CreateTicketBody ticketBody;
5ticketBody.setSubject(utility::conversions::to_string_t("Login Issue"));
6ticketBody.setDescription(utility::conversions::to_string_t("Cannot log in after password reset."));
7boost::optional<int> priority = 2;
8ticketBody.setPriority(priority);
9api->createTicket(tenantId, userId, ticketBody).then([](pplx::task<std::shared_ptr<CreateTicketResponse>> task){
10 try{
11 auto response = task.get();
12 // Use a resposta conforme necessário
13 }catch(const std::exception&){
14 // Trate o erro
15 }
16});
17

getTicket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Resposta

Retorna: GetTicketResponse

Exemplo

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

getTickets Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetTicketsOptions&Yes

Resposta

Retorna: GetTicketsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
r_namespacestringSim
componentstringSim
optionsconst GetTranslationsOptions&Sim

Resposta

Retorna: GetTranslationsResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
fileHttpContentSim
optionsconst UploadImageOptions&Sim

Resposta

Retorna: UploadImageResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: APIGetUserBadgeProgressResponse

Exemplo

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

getUserBadgeProgressByUserId Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim

Resposta

Retorna: APIGetUserBadgeProgressResponse

Exemplo

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

getUserBadgeProgressList Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetUserBadgeProgressListOptions&Sim

Resposta

Retorna: APIGetUserBadgeProgressListResponse

Exemplo

getUserBadgeProgressList Exemplo
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 // processar distintivo
12 }
13 });
14

createUserBadge Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createUserBadgeParamsCreateUserBadgeParamsSim

Resposta

Retorna: APICreateUserBadgeResponse

Exemplo

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

deleteUserBadge Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Resposta

Retorna: APIEmptySuccessResponse

Exemplo

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

getUserBadge Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Response

Returns: APIGetUserBadgeResponse

Example

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetUserBadgesOptions&Sim

Resposta

Retorna: APIGetUserBadgesResponse

Exemplo

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

updateUserBadge Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateUserBadgeParamsUpdateUserBadgeParamsSim

Resposta

Retorna: APIEmptySuccessResponse

Exemplo

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

getUserNotificationCount Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: GetUserNotificationCountResponse

Exemplo

Exemplo 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 // use resp as needed
8 }catch(const std::exception&){
9 // handle error
10 }
11});
12

getUserNotifications Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst GetUserNotificationsOptions&Sim

Resposta

Retorna: GetMyNotificationsResponse

Exemplo

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

resetUserNotificationCount Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: ResetUserNotificationsResponse

Exemplo

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

resetUserNotifications Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
optionsconst ResetUserNotificationsOptions&Sim

Resposta

Retorna: ResetUserNotificationsResponse

Exemplo

Exemplo resetUserNotifications
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3ResetUserNotificationsOptions options;
4options.email = boost::optional<utility::string_t>(U("user@example.com"));
5api->resetUserNotifications(tenantId, options)
6 .then([](std::shared_ptr<ResetUserNotificationsResponse> resp) {
7 // Processar resposta
8 });
9

updateUserNotificationCommentSubscriptionStatus Internal Link


Ativar ou desativar notificações para um comentário específico.

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
optedInOrOutstringYes
commentIdstringYes
ssostringNo

Resposta

Retorna: UpdateUserNotificationCommentSubscriptionStatusResponse

Exemplo

updateUserNotificationCommentSubscriptionStatus Exemplo
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

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
urlstringSim
pageTitlestringSim
subscribedOrUnsubscribedstringSim
ssostringNão

Response

Retorna: UpdateUserNotificationPageSubscriptionStatusResponse

Exemplo

updateUserNotificationPageSubscriptionStatus Exemplo
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 // processar resp se necessário
12 });
13

updateUserNotificationStatus Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
notificationIdstringSim
newStatusstringSim
ssostringNão

Resposta

Retorna: UpdateUserNotificationStatusResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdWSstringSim
userIdsstringSim

Resposta

Retorna: GetUserPresenceStatusesResponse

Exemplo

Exemplo 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
optionsconst SearchUsersOptions&Sim

Resposta

Retorna: SearchUsersResult

Exemplo

searchUsers Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUserResponse

Exemplo

Exemplo 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 // processe a resposta conforme necessário
14 } catch (const std::exception&) {
15 // tratar erro
16 }
17 });
18

createVote Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
directionstringSim
optionsconst CreateVoteOptions&Sim

Resposta

Retorna: VoteResponse

Exemplo

createVote Exemplo
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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
editKeystringNão

Resposta

Retorna: VoteDeleteResponse

Exemplo

Exemplo deleteVote
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto voteId = utility::conversions::to_string_t("vote-9876");
4boost::optional<utility::string_t> editKey = utility::conversions::to_string_t("edit-abc123");
5
6api->deleteVote(tenantId, voteId, editKey).then([](pplx::task<std::shared_ptr<VoteDeleteResponse>> task) {
7 try {
8 auto response = task.get();
9 // Process response as needed
10 } catch (const std::exception&) {
11 // Handle error
12 }
13});
14

getVotes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetVotesResponse

Exemplo

Exemplo 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 // tratamento de erro
12 }
13});
14

getVotesForUser Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
optionsconst GetVotesForUserOptions&Sim

Resposta

Retorna: GetVotesForUserResponse

Exemplo

Exemplo getVotesForUser
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("post-456"));
4GetVotesForUserOptions options;
5options.page = boost::optional<int>(2);
6options.pageSize = boost::optional<int>(50);
7api->getVotesForUser(tenantId, urlId, options).then([](std::shared_ptr<GetVotesForUserResponse> response) {
8 if (response) {
9 // handle response, e.g., iterate votes
10 }
11});
12

Precisa de ajuda?

Se você encontrar algum problema ou tiver dúvidas sobre o SDK C++, por favor:

Contribuindo

Contribuições são bem-vindas! Por favor, visite o repositório GitHub para obter as diretrizes de contribuição.