FastComments.com

FastComments C++ SDK

Αυτό είναι το επίσημο SDK C++ για το FastComments.

Επίσημο SDK C++ για το API του FastComments

Αποθετήριο

Προβολή στο GitHub


Απαιτήσεις Internal Link

  • C++17 ή μεταγενέστερη
  • CMake 3.14 ή μεταγενέστερη
  • OpenSSL
  • C++ REST SDK (cpprestsdk)
  • Boost
  • Google Test (θα ληφθεί αυτόματα για τις δοκιμές)

Εγκατάσταση Internal Link

Εγκατάσταση Εξαρτήσεων

sudo apt install libcpprest-dev libboost-all-dev

Κατασκευή από Πηγαίο Κώδικα

mkdir build
cd build
cmake ..
make

Εγκατάσταση

sudo make install

Περιεχόμενα Βιβλιοθήκης

Αυτή η βιβλιοθήκη περιέχει τον παραγόμενο πελάτη API και τα βοηθητικά προγράμματα SSO για να διευκολύνουν τη δουλειά με το API.

Δημόσια vs Προστατευμένα API

Για τον πελάτη API, υπάρχουν δύο κλάσεις, DefaultAPI και PublicAPI. Η DefaultAPI περιέχει μεθόδους που απαιτούν το κλειδί API σας, και PublicAPI περιέχει api calls that can be made directly from a browser/mobile device/etc without authentication.

Σημειώσεις Internal Link

Αναγνωριστικά Broadcast

Θα δείτε ότι πρέπει να περάσετε ένα broadcastId σε κάποιες κλήσεις API. Όταν λάβετε συμβάντα, θα λάβετε πίσω αυτό το ID, οπότε θα ξέρετε να αγνοήσετε το συμβάν αν σκοπεύετε να εφαρμόσετε αλλαγές στον πελάτη με αισιοδοξία (κάτι που πιθανότατα θα θέλετε να κάνετε αφού προσφέρει την καλύτερη εμπειρία). Περνάτε εδώ ένα UUID. Το ID θα πρέπει να είναι αρκετά μοναδικό ώστε να μην εμφανιστεί δύο φορές σε μια συνεδρία προγράμματος περιήγησης.

SSO (Ενιαία Σύνδεση)

Για παραδείγματα SSO, δείτε παρακάτω.

Χρήση SSO Internal Link


Απλό SSO

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

using namespace fastcomments::sso;

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

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

Ασφαλές SSO

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

using namespace fastcomments::sso;

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

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

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

Συγκέντρωση Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
aggregationRequest AggregationRequest Ναι
parentTenantId string Όχι
includeStats bool Όχι

Απόκριση

Επιστρέφει: AggregationResponse

Παράδειγμα

aggregate Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3AggregationRequest aggReq;
4boost::optional<utility::string_t> parentTenant = boost::optional<utility::string_t>(U("parent-org-456"));
5boost::optional<bool> includeStats = boost::optional<bool>(true);
6auto aggTask = api->aggregate(tenantId, aggReq, parentTenant, includeStats)
7 .then([](pplx::task<std::shared_ptr<AggregationResponse>> t) {
8 try {
9 auto res = t.get();
10 auto out = std::make_shared<AggregationResponse>(*res);
11 return out;
12 } catch (...) {
13 return std::shared_ptr<AggregationResponse>();
14 }
15 });
16

Λήψη αρχείων ελέγχου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
limit double Όχι
skip double Όχι
order SORT_DIR Όχι
after double Όχι
before double Όχι

Απόκριση

Επιστρέφει: GetAuditLogs_200_response

Παράδειγμα

Παράδειγμα getAuditLogs
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> limit = 100;
4boost::optional<double> skip = 0;
5boost::optional<SORT_DIR> order = SORT_DIR::DESC;
6boost::optional<double> after = 1633046400;
7boost::optional<double> before = 1633132800;
8api->getAuditLogs(tenantId, limit, skip, order, after, before)
9.then([](pplx::task<std::shared_ptr<GetAuditLogs_200_response>> t) {
10 try {
11 auto resp = t.get();
12 if (resp) {
13 auto copy = std::make_shared<GetAuditLogs_200_response>(*resp);
14 (void)copy;
15 }
16 } catch (...) {
17 }
18});
19

Αποκλεισμός από δημόσιο σχόλιο Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
publicBlockFromCommentParams PublicBlockFromCommentParams Ναι
sso string Όχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic_200_response

Παράδειγμα

Παράδειγμα blockFromCommentPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654321");
4PublicBlockFromCommentParams params;
5params.reason = U("Repeated harassment");
6params.durationMinutes = 1440;
7boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("sso-token-abc123"));
8auto placeholder = std::make_shared<BlockFromCommentPublic_200_response>();
9api->blockFromCommentPublic(tenantId, commentId, params, sso)
10.then([](pplx::task<std::shared_ptr<BlockFromCommentPublic_200_response>> t) {
11 try {
12 auto resp = t.get();
13 if (resp) std::wcout << U("Comment blocked successfully\n");
14 else std::wcout << U("Block request returned empty response\n");
15 } catch (...) {
16 std::wcout << U("Block request failed\n");
17 }
18});
19

Κατάργηση αποκλεισμού δημοσίου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
publicBlockFromCommentParams PublicBlockFromCommentParams Ναι
sso string Όχι

Απάντηση

Επιστρέφει: UnBlockCommentPublic_200_response

Παράδειγμα

Παράδειγμα unBlockCommentPublic
Copy Copy
1
2auto publicParams = std::make_shared<PublicBlockFromCommentParams>();
3boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(utility::string_t(U("user@example.com")));
4api->unBlockCommentPublic(utility::string_t(U("my-tenant-123")), utility::string_t(U("comment-98765")), *publicParams, sso)
5.then([](pplx::task<std::shared_ptr<UnBlockCommentPublic_200_response>> task) {
6 try {
7 auto resp = task.get();
8 if (resp) std::cout << "Unblocked comment successfully" << std::endl;
9 } catch (const std::exception& e) {
10 std::cerr << "Unblock failed: " << e.what() << std::endl;
11 }
12});
13

Έλεγχος σχολίων για αποκλεισμό Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentIds string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: CheckedCommentsForBlocked_200_response

Παράδειγμα

Παράδειγμα checkedCommentsForBlocked
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3utility::string_t commentIds = utility::conversions::to_string_t("cmt-456,cmt-789");
4boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
5auto task = api->checkedCommentsForBlocked(tenantId, commentIds, sso)
6 .then([=](std::shared_ptr<CheckedCommentsForBlocked_200_response> resp) -> std::shared_ptr<CheckedCommentsForBlocked_200_response> {
7 if (!resp) return std::make_shared<CheckedCommentsForBlocked_200_response>();
8 return resp;
9 });
10

Αποκλεισμός χρήστη από σχόλιο Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
blockFromCommentParams BlockFromCommentParams Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic_200_response

Παράδειγμα

blockUserFromComment Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4auto blockParams = std::make_shared<BlockFromCommentParams>();
5boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
6boost::optional<utility::string_t> anonUserId = boost::optional<utility::string_t>(U("anon-98765"));
7api->blockUserFromComment(tenantId, commentId, *blockParams, userId, anonUserId)
8.then([](std::shared_ptr<BlockFromCommentPublic_200_response> resp){
9 if (resp) {
10 std::cout << "User blocked successfully\n";
11 } else {
12 std::cout << "Block request returned empty response\n";
13 }
14}).wait();
15

Δημιουργία δημόσιου σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι
broadcastId string Ναι
commentData CommentData Ναι
sessionId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateCommentPublic_200_response

Παράδειγμα

Παράδειγμα createCommentPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("/articles/2026/fastcomments-cpp-integration");
4utility::string_t broadcastId = U("broadcast-001");
5CommentData commentData;
6commentData.content = U("Hello from the C++ SDK — great article!");
7commentData.authorEmail = U("reader@example.com");
8commentData.authorName = U("Jane Reader");
9boost::optional<utility::string_t> sessionId = boost::optional<utility::string_t>(U("sess-9f3a2"));
10boost::optional<utility::string_t> sso = boost::none;
11auto task = api->createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso)
12 .then([](pplx::task<std::shared_ptr<CreateCommentPublic_200_response>> t) {
13 try {
14 auto resp = t.get();
15 if (resp) {
16 auto resultCopy = std::make_shared<CreateCommentPublic_200_response>(*resp);
17 }
18 } catch (const std::exception&) {}
19 });
20task.wait();
21

Διαγραφή σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
contextUserId string Όχι
isLive bool Όχι

Απόκριση

Επιστρέφει: DeleteComment_200_response

Παράδειγμα

Παράδειγμα deleteComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654321");
4boost::optional<utility::string_t> contextUserId = boost::optional<utility::string_t>(U("moderator@acme.com"));
5boost::optional<bool> isLive = boost::optional<bool>(true);
6api->deleteComment(tenantId, commentId, contextUserId, isLive)
7.then([](pplx::task<std::shared_ptr<DeleteComment_200_response>> t){
8 try {
9 auto resp = t.get();
10 if (resp) {
11 auto processed = std::make_shared<DeleteComment_200_response>(*resp);
12 }
13 } catch (const std::exception&) {
14 }
15});
16

Διαγραφή δημόσιου σχολίου Internal Link


Παράμετροι

Όνομα Type Απαραίτητο Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: DeleteCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteCommentPublic
Copy Copy
1
2utility::string_t tenantId(U("my-tenant-123"));
3utility::string_t commentId(U("cmt-456"));
4utility::string_t broadcastId(U("brd-789"));
5boost::optional<utility::string_t> editKey = boost::optional<utility::string_t>(utility::string_t(U("editkey-abc123")));
6boost::optional<utility::string_t> sso;
7
8api->deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso)
9.then([](pplx::task<std::shared_ptr<DeleteCommentPublic_200_response>> t){
10 try {
11 auto resp = t.get();
12 if (resp) {
13 auto copied = std::make_shared<DeleteCommentPublic_200_response>(*resp);
14 (void)copied;
15 }
16 } catch (const std::exception&) {
17 auto fallback = std::make_shared<DeleteCommentPublic_200_response>();
18 (void)fallback;
19 }
20});
21

Διαγραφή ψήφου σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Ναι
voteId string Ναι
urlId string Ναι
broadcastId string Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: DeleteCommentVote_200_response

Παράδειγμα

Παράδειγμα deleteCommentVote
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-789");
4utility::string_t voteId = U("vote-456");
5utility::string_t urlId = U("/articles/2026/fastcomments-guide");
6utility::string_t broadcastId = U("broadcast-001");
7boost::optional<utility::string_t> editKey = boost::optional<utility::string_t>(U("editkey-abc"));
8boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
9auto placeholder = std::make_shared<DeleteCommentVote_200_response>();
10api->deleteCommentVote(tenantId, commentId, voteId, urlId, broadcastId, editKey, sso)
11.then([=](pplx::task<std::shared_ptr<DeleteCommentVote_200_response>> t){
12 try {
13 auto resp = t.get();
14 if (resp) std::cout << "Vote deleted\n";
15 } catch (const std::exception &e) {
16 std::cerr << "Delete failed: " << e.what() << '\n';
17 }
18});
19

Σήμανση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι
anonUserId string Όχι

Απάντηση

Επιστρέφει: FlagComment_200_response

Παράδειγμα

Παράδειγμα flagComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4boost::optional<utility::string_t> userId{ utility::string_t(U("user@example.com")) };
5boost::optional<utility::string_t> anonUserId;
6
7api->flagComment(tenantId, commentId, userId, anonUserId)
8.then([](std::shared_ptr<FlagComment_200_response> resp) {
9 auto result = resp ? resp : std::make_shared<FlagComment_200_response>();
10 (void)result;
11});
12

Λήψη σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetComment_200_response

Παράδειγμα

Παράδειγμα getComment
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> maybeId = utility::conversions::to_string_t("comment-98765");
4auto getTask = api->getComment(tenantId, *maybeId)
5 .then([](pplx::task<std::shared_ptr<GetComment_200_response>> t) {
6 try {
7 auto resp = t.get();
8 auto result = resp ? resp : std::make_shared<GetComment_200_response>();
9 return result;
10 } catch (const std::exception&) {
11 return std::make_shared<GetComment_200_response>();
12 }
13 });
14

Λήψη σχολίων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
page int32_t Όχι
limit int32_t Όχι
skip int32_t Όχι
asTree bool Όχι
skipChildren int32_t Όχι
limitChildren int32_t Όχι
maxTreeDepth int32_t Όχι
urlId string Όχι
userId string Όχι
anonUserId string Όχι
contextUserId string Όχι
hashTag string Όχι
parentId string Όχι
direction SortDirections Όχι

Απόκριση

Επιστρέφει: GetComments_200_response

Παράδειγμα

Παράδειγμα getComments
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<int32_t> page(1);
4boost::optional<int32_t> limit(50);
5boost::optional<int32_t> skip(0);
6boost::optional<bool> asTree(true);
7boost::optional<int32_t> skipChildren(0);
8boost::optional<int32_t> limitChildren(10);
9boost::optional<int32_t> maxTreeDepth(3);
10boost::optional<utility::string_t> urlId(U("/articles/2025/fast-api"));
11boost::optional<utility::string_t> userId(U("user@example.com"));
12boost::optional<utility::string_t> anonUserId(U("anon-abc-123"));
13boost::optional<utility::string_t> contextUserId(U("context-user-789"));
14boost::optional<utility::string_t> hashTag(U("release"));
15boost::optional<utility::string_t> parentId(U("parent-comment-456"));
16boost::optional<SortDirections> direction(SortDirections::DESCENDING);
17
18api->getComments(tenantId, page, limit, skip, asTree, skipChildren, limitChildren, maxTreeDepth, urlId, userId, anonUserId, contextUserId, hashTag, parentId, direction)
19.then([](pplx::task<std::shared_ptr<GetComments_200_response>> task){
20 try {
21 auto response = task.get();
22 if (!response) response = std::make_shared<GetComments_200_response>();
23 } catch (const std::exception&) {
24 }
25});
26

Λήψη δημόσιων σχολίων Internal Link

req tenantId urlId

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι
page int32_t Όχι
direction SortDirections Όχι
sso string Όχι
skip int32_t Όχι
skipChildren int32_t Όχι
limit int32_t Όχι
limitChildren int32_t Όχι
countChildren bool Όχι
fetchPageForCommentId string Όχι
includeConfig bool Όχι
countAll bool Όχι
includei10n bool Όχι
locale string Όχι
modules string Όχι
isCrawler bool Όχι
includeNotificationCount bool Όχι
asTree bool Όχι
maxTreeDepth int32_t Όχι
useFullTranslationIds bool Όχι
parentId string Όχι
searchText string Όχι
hashTags vector<string Όχι
userId string Όχι
customConfigStr string Όχι
afterCommentId string Όχι
beforeCommentId string Όχι

Απόκριση

Επιστρέφει: GetCommentsPublic_200_response

Παράδειγμα

getCommentsPublic Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-2026-01-12");
4boost::optional<int32_t> page(2);
5boost::optional<SortDirections> direction(SortDirections::DESC);
6boost::optional<bool> includeConfig(true);
7boost::optional<std::vector<utility::string_t>> hashTags(std::vector<utility::string_t>{ U("feature"), U("bug") });
8api->getCommentsPublic(
9 tenantId,
10 urlId,
11 page,
12 direction,
13 boost::optional<utility::string_t>(),
14 boost::optional<int32_t>(),
15 boost::optional<int32_t>(),
16 boost::optional<int32_t>(50),
17 boost::optional<int32_t>(),
18 boost::optional<bool>(false),
19 boost::optional<utility::string_t>(),
20 includeConfig,
21 boost::optional<bool>(),
22 boost::optional<bool>(),
23 boost::optional<utility::string_t>(),
24 boost::optional<utility::string_t>(),
25 boost::optional<bool>(),
26 boost::optional<bool>(),
27 boost::optional<bool>(),
28 boost::optional<int32_t>(),
29 boost::optional<bool>(),
30 boost::optional<utility::string_t>(),
31 boost::optional<utility::string_t>(),
32 hashTags,
33 boost::optional<utility::string_t>(U("user-789")),
34 boost::optional<utility::string_t>(),
35 boost::optional<utility::string_t>()
36).then([](pplx::task<std::shared_ptr<GetCommentsPublic_200_response>> t){
37 try {
38 auto resp = t.get();
39 auto fallback = std::make_shared<GetCommentsPublic_200_response>();
40 (void)(resp ? resp : fallback);
41 } catch (...) {}
42});
43

Λήψη κειμένου σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Ναι
editKey string Όχι
sso string Όχι

Απάντηση

Επιστρέφει: GetCommentText_200_response

Παράδειγμα

Παράδειγμα getCommentText
Copy Copy
1
2utility::string_t tenantId(U("my-tenant-123"));
3utility::string_t commentId(U("cmt-456"));
4boost::optional<utility::string_t> editKey(utility::string_t(U("edit-key-789")));
5boost::optional<utility::string_t> sso(utility::string_t(U("user@example.com")));
6auto task = api->getCommentText(tenantId, commentId, editKey, sso)
7 .then([](std::shared_ptr<GetCommentText_200_response> resp){
8 if (resp) {
9 std::cout << "Comment text retrieved\n";
10 } else {
11 std::cout << "Comment not found\n";
12 }
13 });
14task.wait();
15

Λήψη ονομάτων χρηστών που ψήφισαν σχόλιο Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
commentId string Ναι
dir int32_t Ναι
sso string Όχι

Απάντηση

Επιστρέφει: GetCommentVoteUserNames_200_response

Παράδειγμα

Παράδειγμα getCommentVoteUserNames
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456");
4int32_t dir = 1;
5boost::optional<utility::string_t> sso{ utility::string_t(U("user@example.com")) };
6api->getCommentVoteUserNames(tenantId, commentId, dir, sso)
7 .then([](pplx::task<std::shared_ptr<GetCommentVoteUserNames_200_response>> t) {
8 try {
9 auto resp = t.get();
10 if (!resp) resp = std::make_shared<GetCommentVoteUserNames_200_response>();
11 } catch (const std::exception&) {
12 }
13 });
14

Κλείδωμα σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: LockComment_200_response

Παράδειγμα

Παράδειγμα lockComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456");
4utility::string_t broadcastId = U("brdcst-789");
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
6
7api->lockComment(tenantId, commentId, broadcastId, sso)
8 .then([](pplx::task<std::shared_ptr<LockComment_200_response>> t)
9 {
10 try
11 {
12 auto resp = t.get();
13 if(!resp)
14 {
15 resp = std::make_shared<LockComment_200_response>();
16 }
17 }
18 catch(const std::exception& ex)
19 {
20 (void)ex;
21 }
22 });
23

Καρφίτσωμα σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απάντηση

Επιστρέφει: PinComment_200_response

Παράδειγμα

Παράδειγμα pinComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4utility::string_t broadcastId = U("broadcast-98765");
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
6
7api->pinComment(tenantId, commentId, broadcastId, sso)
8.then([](pplx::task<std::shared_ptr<PinComment_200_response>> t){
9 try {
10 auto resp = t.get();
11 if (!resp) resp = std::make_shared<PinComment_200_response>();
12 (void)resp;
13 } catch (...) {}
14}).wait();
15

Αποθήκευση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createCommentParams CreateCommentParams Ναι
isLive bool Όχι
doSpamCheck bool Όχι
sendEmails bool Όχι
populateNotifications bool Όχι

Απόκριση

Επιστρέφει: SaveComment_200_response

Παράδειγμα

Παράδειγμα saveComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto createParamsPtr = std::make_shared<CreateCommentParams>();
4createParamsPtr->content = utility::string_t(U("This is a test comment posted via SDK"));
5createParamsPtr->authorEmail = utility::string_t(U("user@example.com"));
6createParamsPtr->threadId = utility::string_t(U("thread-456"));
7boost::optional<bool> isLive(true);
8boost::optional<bool> doSpamCheck(false);
9boost::optional<bool> sendEmails(true);
10boost::optional<bool> populateNotifications(false);
11auto task = api->saveComment(tenantId, *createParamsPtr, isLive, doSpamCheck, sendEmails, populateNotifications)
12.then([](std::shared_ptr<SaveComment_200_response> resp){
13 if (resp) std::cout << "Comment saved successfully\n";
14 else std::cout << "Failed to save comment\n";
15});
16task.wait();
17

Ορισμός κειμένου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
commentTextUpdateRequest CommentTextUpdateRequest Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: SetCommentText_200_response

Παράδειγμα

Παράδειγμα setCommentText
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456");
4utility::string_t broadcastId = U("bcast-789");
5CommentTextUpdateRequest commentTextUpdateRequest;
6commentTextUpdateRequest.setText(U("Updated comment text by moderator."));
7boost::optional<utility::string_t> editKey = boost::optional<utility::string_t>(U("edit-key-abc123"));
8boost::optional<utility::string_t> sso;
9api->setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso)
10.then([](pplx::task<std::shared_ptr<SetCommentText_200_response>> task){
11 try {
12 auto resp = task.get();
13 if (resp) {
14 auto result = std::make_shared<SetCommentText_200_response>(*resp);
15 std::cout << "Comment updated\n";
16 } else {
17 std::cout << "No response\n";
18 }
19 } catch (const std::exception &e) {
20 std::cerr << "setCommentText error: " << e.what() << '\n';
21 }
22});
23

Άρση αποκλεισμού χρήστη από σχόλιο Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
unBlockFromCommentParams UnBlockFromCommentParams Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: UnBlockCommentPublic_200_response

Παράδειγμα

Παράδειγμα unBlockUserFromComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4auto paramsPtr = std::make_shared<UnBlockFromCommentParams>();
5boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
6boost::optional<utility::string_t> anonUserId = boost::none;
7api->unBlockUserFromComment(tenantId, commentId, *paramsPtr, userId, anonUserId)
8 .then([](std::shared_ptr<UnBlockCommentPublic_200_response> resp){
9 (void)resp;
10 })
11 .wait();
12

Αφαίρεση σήμανσης σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: FlagComment_200_response

Παράδειγμα

unFlagComment Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654321");
4boost::optional<utility::string_t> userId(U("user@example.com"));
5boost::optional<utility::string_t> anonUserId;
6auto fallback = std::make_shared<FlagComment_200_response>();
7api->unFlagComment(tenantId, commentId, userId, anonUserId)
8 .then([fallback](pplx::task<std::shared_ptr<FlagComment_200_response>> t) {
9 try {
10 auto resp = t.get();
11 if (!resp) resp = fallback;
12 } catch (...) {
13 }
14 });
15

Ξεκλείδωμα σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απάντηση

Επιστρέφει: LockComment_200_response

Παράδειγμα

Παράδειγμα unLockComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654");
4utility::string_t broadcastId = U("brd-456");
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
6auto dummyResp = std::make_shared<LockComment_200_response>();
7api->unLockComment(tenantId, commentId, broadcastId, sso)
8.then([](pplx::task<std::shared_ptr<LockComment_200_response>> task){
9 try {
10 auto resp = task.get();
11 if (resp) {
12 std::cout << "Comment unlocked successfully\n";
13 } else {
14 std::cout << "Unlock returned empty response\n";
15 }
16 } catch (const std::exception& e) {
17 std::cerr << "Error unlocking comment: " << e.what() << '\n';
18 }
19});
20

Αφαίρεση καρφιτσώματος σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απάντηση

Επιστρέφει: PinComment_200_response

Παράδειγμα

unPinComment Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4utility::string_t broadcastId = U("brd-98765");
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
6auto defaultResp = std::make_shared<PinComment_200_response>();
7api->unPinComment(tenantId, commentId, broadcastId, sso)
8.then([defaultResp](pplx::task<std::shared_ptr<PinComment_200_response>> task) {
9 try {
10 auto resp = task.get();
11 if (!resp) resp = defaultResp;
12 std::cout << "unPinComment completed; response pointer " << (resp ? "valid" : "null") << std::endl;
13 } catch (const std::exception &e) {
14 std::cerr << "unPinComment failed: " << e.what() << std::endl;
15 }
16});
17

Ενημέρωση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updatableCommentParams UpdatableCommentParams Ναι
contextUserId string Όχι
doSpamCheck bool Όχι
isLive bool Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateComment
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("comment-456"));
4auto body = std::make_shared<UpdatableCommentParams>();
5body->content = utility::string_t(U("Updated comment text: fixed a typo and clarified meaning."));
6boost::optional<utility::string_t> contextUserId(utility::string_t(U("user@example.com")));
7boost::optional<bool> doSpamCheck(true);
8boost::optional<bool> isLive(false);
9api->updateComment(tenantId, commentId, body, contextUserId, doSpamCheck, isLive)
10.then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t){
11 try {
12 auto result = t.get();
13 (void)result;
14 } catch (...) {}
15});
16

Ψήφος σε σχόλιο Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
urlId string Ναι
broadcastId string Ναι
voteBodyParams VoteBodyParams Ναι
sessionId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: VoteComment_200_response

Παράδειγμα

Παράδειγμα voteComment
Copy Copy
1
2VoteBodyParams voteBodyParams;
3utility::string_t tenantId = U("my-tenant-123");
4utility::string_t commentId = U("cmt-7890");
5utility::string_t urlId = U("/articles/2025/how-to-cpprest");
6utility::string_t broadcastId = U("broadcast-321");
7boost::optional<utility::string_t> sessionId = boost::optional<utility::string_t>(U("sess-0a1b2c"));
8boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("sso-jwt-xyz"));
9
10api->voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso)
11 .then([](pplx::task<std::shared_ptr<VoteComment_200_response>> t) {
12 try {
13 auto resp = t.get();
14 if (!resp) resp = std::make_shared<VoteComment_200_response>();
15 } catch (...) {
16 }
17 });
18

Προσθήκη ρύθμισης τομέα Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
addDomainConfigParams AddDomainConfigParams Ναι

Απόκριση

Επιστρέφει: AddDomainConfig_200_response

Παράδειγμα

Παράδειγμα addDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3AddDomainConfigParams params;
4params.domain = U("comments.example.com");
5params.allowSubdomains = boost::optional<bool>(true);
6params.contactEmail = boost::optional<utility::string_t>(U("admin@example.com"));
7api->addDomainConfig(tenantId, params)
8.then([](pplx::task<std::shared_ptr<AddDomainConfig_200_response>> t) {
9 try {
10 auto resp = t.get();
11 if (resp) {
12 auto copy = std::make_shared<AddDomainConfig_200_response>(*resp);
13 (void)copy;
14 }
15 } catch (const std::exception& e) {
16 (void)e;
17 }
18});
19

Διαγραφή ρύθμισης τομέα Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domain string Ναι

Απόκριση

Επιστρέφει: DeleteDomainConfig_200_response

Παράδειγμα

Παράδειγμα deleteDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domain = U("comments.example.com");
4boost::optional<utility::string_t> ifMatch = boost::optional<utility::string_t>(U("W/\"abc123\""));
5api->deleteDomainConfig(tenantId, domain)
6.then([](pplx::task<std::shared_ptr<DeleteDomainConfig_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if (resp) {
10 auto resultCopy = std::make_shared<DeleteDomainConfig_200_response>(*resp);
11 }
12 } catch (const std::exception&) {
13 }
14});
15

Λήψη ρύθμισης τομέα Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domain string Ναι

Απάντηση

Επιστρέφει: GetDomainConfig_200_response

Παράδειγμα

Παράδειγμα getDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domain = U("example.com");
4boost::optional<utility::string_t> env = boost::optional<utility::string_t>(U("production"));
5api->getDomainConfig(tenantId, domain).then([=](pplx::task<std::shared_ptr<GetDomainConfig_200_response>> t) {
6 try {
7 auto resp = t.get();
8 if (!resp) resp = std::make_shared<GetDomainConfig_200_response>();
9 std::cout << "Domain config received for " << utility::conversions::to_utf8string(domain) << '\n';
10 } catch (const std::exception &ex) {
11 std::cerr << "Failed to get domain config: " << ex.what() << '\n';
12 }
13});
14

Λήψη ρυθμίσεων τομέα Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι

Απόκριση

Επιστρέφει: GetDomainConfigs_200_response

Παράδειγμα

getDomainConfigs Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> requestId = utility::conversions::to_string_t("req-789");
4api->getDomainConfigs(tenantId)
5 .then([requestId](pplx::task<std::shared_ptr<GetDomainConfigs_200_response>> t){
6 try {
7 auto resp = t.get();
8 auto copy = std::make_shared<GetDomainConfigs_200_response>(*resp);
9 if (requestId) std::cout << "Request id present\n";
10 std::cout << "Domain configs loaded\n";
11 } catch (const std::exception &e) {
12 std::cerr << "Error: " << e.what() << '\n';
13 }
14 }).wait();
15

Τροποποίηση ρύθμισης τομέα (patch) Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domainToUpdate string Ναι
patchDomainConfigParams PatchDomainConfigParams Ναι

Απόκριση

Επιστρέφει: GetDomainConfig_200_response

Παράδειγμα

Παράδειγμα patchDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domainToUpdate = U("example.com");
4PatchDomainConfigParams params;
5params.adminEmail = boost::optional<utility::string_t>(U("admin@example.com"));
6params.enableSso = boost::optional<bool>(true);
7params.ssoRedirectUrl = boost::optional<utility::string_t>(U("https://auth.example.com/callback"));
8api->patchDomainConfig(tenantId, domainToUpdate, params)
9 .then([](pplx::task<std::shared_ptr<GetDomainConfig_200_response>> task){
10 try {
11 auto resp = task.get();
12 if (resp) {
13 auto updated = std::make_shared<GetDomainConfig_200_response>(*resp);
14 }
15 } catch (const std::exception& e) {
16 auto err = std::string(e.what());
17 }
18 });
19

Αντικατάσταση ρύθμισης τομέα (put) Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Yes
domainToUpdate string Yes
updateDomainConfigParams UpdateDomainConfigParams Yes

Απάντηση

Επιστρέφει: GetDomainConfig_200_response

Παράδειγμα

Παράδειγμα putDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domainToUpdate = U("comments.myapp.com");
4auto params = std::make_shared<UpdateDomainConfigParams>();
5params->displayName = utility::string_t(U("My App Comments"));
6params->enabled = boost::optional<bool>(true);
7params->contactEmail = boost::optional<utility::string_t>(U("admin@myapp.com"));
8api->putDomainConfig(tenantId, domainToUpdate, *params)
9.then([](pplx::task<std::shared_ptr<GetDomainConfig_200_response>> t){
10 try {
11 auto resp = t.get();
12 if (resp) {
13 auto updated = resp;
14 }
15 } catch (const std::exception& e) {
16 }
17});
18

Δημιουργία προτύπου Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createEmailTemplateBody CreateEmailTemplateBody Ναι

Απόκριση

Επιστρέφει: CreateEmailTemplate_200_response

Παράδειγμα

Παράδειγμα createEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto body = std::make_shared<CreateEmailTemplateBody>();
4body->name = utility::string_t(U("Welcome Email"));
5body->subject = utility::string_t(U("Welcome to Our Service"));
6body->fromEmail = utility::string_t(U("no-reply@mycompany.com"));
7body->fromName = utility::string_t(U("MyCompany Support"));
8body->html = utility::string_t(U("<p>Hello , welcome to MyCompany.</p>"));
9body->description = boost::optional<utility::string_t>(utility::string_t(U("Onboarding welcome template")));
10api->createEmailTemplate(tenantId, *body)
11.then([](pplx::task<std::shared_ptr<CreateEmailTemplate_200_response>> task){
12 try {
13 auto resp = task.get();
14 if (resp) {
15 bool created = true;
16 (void)created;
17 }
18 } catch (const std::exception&) {
19 }
20});
21

Διαγραφή προτύπου Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email-template-456");
4boost::optional<utility::string_t> requestNote = boost::optional<utility::string_t>(U("remove-obsolete"));
5auto fallback = std::make_shared<FlagCommentPublic_200_response>();
6api->deleteEmailTemplate(tenantId, templateId)
7.then([requestNote, fallback](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) -> pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> {
8 try {
9 auto resp = t.get();
10 if (resp) return pplx::task_from_result(resp);
11 if (requestNote) return pplx::task_from_result(fallback);
12 return pplx::task_from_result<std::shared_ptr<FlagCommentPublic_200_response>>(nullptr);
13 } catch (...) {
14 return pplx::task_from_result<std::shared_ptr<FlagCommentPublic_200_response>>(nullptr);
15 }
16});
17

Διαγραφή σφάλματος απόδοσης προτύπου Email Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
errorId string Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteEmailTemplateRenderError
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email-template-456");
4utility::string_t errorId = U("render-error-789");
5auto placeholder = std::make_shared<FlagCommentPublic_200_response>();
6boost::optional<utility::string_t> operatorNote = boost::none;
7operatorNote = U("auto-resolved");
8
9api->deleteEmailTemplateRenderError(tenantId, templateId, errorId)
10 .then([operatorNote, templateId](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> previous) {
11 try {
12 auto resp = previous.get();
13 if (resp) {
14 std::cout << "Successfully deleted render error for template: " << utility::conversions::to_utf8string(templateId) << std::endl;
15 }
16 if (operatorNote) {
17 std::cout << "Note: " << utility::conversions::to_utf8string(operatorNote.value()) << std::endl;
18 }
19 } catch (const std::exception &e) {
20 std::cerr << "API error: " << e.what() << std::endl;
21 }
22 });
23

Λήψη προτύπου Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetEmailTemplate_200_response

Παράδειγμα

Παράδειγμα getEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email-001");
4boost::optional<utility::string_t> preferLocale = boost::optional<utility::string_t>(U("en-US"));
5api->getEmailTemplate(tenantId, templateId)
6 .then([preferLocale](std::shared_ptr<GetEmailTemplate_200_response> resp) {
7 auto templateResp = resp ? resp : std::make_shared<GetEmailTemplate_200_response>();
8 if (preferLocale) {
9 (void)preferLocale;
10 }
11 return templateResp;
12 });
13

Λήψη ορισμών προτύπων Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι

Απάντηση

Επιστρέφει: GetEmailTemplateDefinitions_200_response

Παράδειγμα

Παράδειγμα getEmailTemplateDefinitions
Copy Copy
1
2boost::optional<utility::string_t> tenantIdOpt = utility::string_t(U("my-tenant-123"));
3api->getEmailTemplateDefinitions(tenantIdOpt.value())
4.then([](pplx::task<std::shared_ptr<GetEmailTemplateDefinitions_200_response>> task) {
5 try {
6 auto resp = task.get();
7 auto localCopy = std::make_shared<GetEmailTemplateDefinitions_200_response>(*resp);
8 (void)localCopy;
9 } catch (const std::exception& e) {
10 auto fallback = std::make_shared<GetEmailTemplateDefinitions_200_response>();
11 (void)fallback;
12 }
13});
14

Λήψη σφαλμάτων απόδοσης προτύπων Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetEmailTemplateRenderErrors_200_response

Παράδειγμα

Παράδειγμα getEmailTemplateRenderErrors
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("email-template-789");
4boost::optional<double> skip{10.0};
5auto defaultResp = std::make_shared<GetEmailTemplateRenderErrors_200_response>();
6api->getEmailTemplateRenderErrors(tenantId, id, skip).then([defaultResp](pplx::task<std::shared_ptr<GetEmailTemplateRenderErrors_200_response>> t){
7 try {
8 auto resp = t.get();
9 if(!resp) resp = defaultResp;
10 std::wcout << (resp ? U("Received render errors response\n") : U("No response\n"));
11 } catch(...) {
12 std::wcout << U("Failed to retrieve render errors\n");
13 }
14});
15

Λήψη προτύπων Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetEmailTemplates_200_response

Παράδειγμα

Παράδειγμα getEmailTemplates
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = 10.0;
4api->getEmailTemplates(tenantId, skip).then([](pplx::task<std::shared_ptr<GetEmailTemplates_200_response>> t){
5 try {
6 auto resp = t.get();
7 if (resp) {
8 auto copy = std::make_shared<GetEmailTemplates_200_response>(*resp);
9 }
10 } catch (const std::exception& e) {
11 (void)e;
12 }
13});
14

Απόδοση προτύπου Email Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
renderEmailTemplateBody RenderEmailTemplateBody Ναι
locale string Όχι

Απόκριση

Επιστρέφει: RenderEmailTemplate_200_response

Παράδειγμα

Παράδειγμα renderEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3RenderEmailTemplateBody renderEmailTemplateBody;
4renderEmailTemplateBody.setTemplateName(U("welcome_wagon"));
5renderEmailTemplateBody.setRecipient(U("alice@example.com"));
6web::json::value vars;
7vars[U("firstName")] = web::json::value::string(U("Alice"));
8renderEmailTemplateBody.setVariables(vars);
9boost::optional<utility::string_t> locale = boost::optional<utility::string_t>(U("en-US"));
10auto placeholder = std::make_shared<RenderEmailTemplate_200_response>();
11api->renderEmailTemplate(tenantId, renderEmailTemplateBody, locale)
12.then([](pplx::task<std::shared_ptr<RenderEmailTemplate_200_response>> task){
13 try {
14 auto resp = task.get();
15 if (resp) {
16 std::cout << "Email template rendered successfully" << std::endl;
17 } else {
18 std::cerr << "No response returned" << std::endl;
19 }
20 } catch (const std::exception& e) {
21 std::cerr << "Render failed: " << e.what() << std::endl;
22 }
23});
24

Ενημέρωση προτύπου Email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateEmailTemplateBody UpdateEmailTemplateBody Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateEmailTemplate
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email-01");
4UpdateEmailTemplateBody updateBody;
5boost::optional<utility::string_t> optionalFrom = boost::optional<utility::string_t>(U("no-reply@myapp.com"));
6updateBody.from = optionalFrom;
7updateBody.subject = U("Welcome to MyApp");
8updateBody.html = U("<p>Hi , welcome to MyApp!</p>");
9auto bodyPtr = std::make_shared<UpdateEmailTemplateBody>(updateBody);
10api->updateEmailTemplate(tenantId, templateId, *bodyPtr)
11.then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t){
12 try {
13 auto resp = t.get();
14 if (resp) {
15 std::cout << "Email template updated successfully\n";
16 } else {
17 std::cout << "Unexpected empty response\n";
18 }
19 } catch (const std::exception &e) {
20 std::cerr << "Update failed: " << e.what() << '\n';
21 }
22});
23

Λήψη αρχείου καταγραφής γεγονότων Internal Link

req tenantId urlId userIdWS

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
userIdWS string Ναι
startTime int64_t Ναι
endTime int64_t Ναι

Απόκριση

Επιστρέφει: GetEventLog_200_response

Παράδειγμα

Παράδειγμα getEventLog
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-456");
4utility::string_t userIdWS = U("user@example.com");
5int64_t startTime = 1672531200LL;
6boost::optional<int64_t> endTimeOpt = 1672617600LL;
7api->getEventLog(tenantId, urlId, userIdWS, startTime, *endTimeOpt)
8 .then([](pplx::task<std::shared_ptr<GetEventLog_200_response>> t){
9 try {
10 auto resp = t.get();
11 if (!resp) resp = std::make_shared<GetEventLog_200_response>();
12 } catch (const std::exception&) {}
13 });
14

Λήψη παγκόσμιας καταγραφής γεγονότων Internal Link


req tenantId urlId userIdWS

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
userIdWS string Ναι
startTime int64_t Ναι
endTime int64_t Ναι

Απόκριση

Επιστρέφει: GetEventLog_200_response

Παράδειγμα

Παράδειγμα getGlobalEventLog
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t defaultUrlId = U("article-456");
4boost::optional<utility::string_t> maybeUrlId = boost::optional<utility::string_t>(U("article-456"));
5utility::string_t urlId = maybeUrlId ? *maybeUrlId : defaultUrlId;
6utility::string_t userIdWS = U("user@example.com");
7int64_t startTime = 1622505600000LL;
8int64_t endTime = 1622592000000LL;
9auto defaultResp = std::make_shared<GetEventLog_200_response>();
10api->getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime)
11.then([](pplx::task<std::shared_ptr<GetEventLog_200_response>> task){
12 try {
13 auto resp = task.get();
14 if (resp) std::cout << "Received event log with entries\n";
15 else std::cout << "No event log returned\n";
16 } catch (const std::exception &e) {
17 std::cerr << "getGlobalEventLog failed: " << e.what() << '\n';
18 }
19});
20

Δημιουργία ανάρτησης Feed Internal Link


Parameters

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createFeedPostParams CreateFeedPostParams Ναι
broadcastId string Όχι
isLive bool Όχι
doSpamCheck bool Όχι
skipDupCheck bool Όχι

Απόκριση

Επιστρέφει: CreateFeedPost_200_response

Παράδειγμα

Παράδειγμα createFeedPost
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateFeedPostParams params;
4params.title = utility::string_t(U("Weekly Product Update"));
5params.content = utility::string_t(U("This week we shipped several improvements to the API."));
6params.authorEmail = utility::string_t(U("jane.doe@example.com"));
7
8boost::optional<utility::string_t> broadcastId = boost::optional<utility::string_t>(U("broadcast-456"));
9boost::optional<bool> isLive = boost::optional<bool>(true);
10boost::optional<bool> doSpamCheck = boost::optional<bool>(false);
11boost::optional<bool> skipDupCheck = boost::optional<bool>(false);
12
13api->createFeedPost(tenantId, params, broadcastId, isLive, doSpamCheck, skipDupCheck)
14.then([](pplx::task<std::shared_ptr<CreateFeedPost_200_response>> t){
15 try {
16 auto resp = t.get();
17 auto copy = std::make_shared<CreateFeedPost_200_response>(*resp);
18 } catch (...) {}
19});
20

Δημιουργία δημόσιας ανάρτησης Feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createFeedPostParams CreateFeedPostParams Ναι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic_200_response

Παράδειγμα

Παράδειγμα createFeedPostPublic
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto paramsPtr = std::make_shared<CreateFeedPostParams>();
4paramsPtr->title = utility::string_t(U("Weekly Release Notes"));
5paramsPtr->content = utility::string_t(U("We've deployed version 2.4.1 with bug fixes and UX improvements."));
6paramsPtr->authorEmail = utility::string_t(U("alice@example.com"));
7boost::optional<utility::string_t> broadcastId = utility::string_t(U("broadcast-456"));
8boost::optional<utility::string_t> sso = utility::string_t(U("sso-token-abc123"));
9api->createFeedPostPublic(tenantId, *paramsPtr, broadcastId, sso)
10 .then([](pplx::task<std::shared_ptr<CreateFeedPostPublic_200_response>> t) {
11 try {
12 auto resp = t.get();
13 if (resp) std::cout << "Feed post created successfully\n";
14 } catch (const std::exception& e) {
15 std::cerr << "Failed to create feed post: " << e.what() << '\n';
16 }
17 });
18

Διαγραφή δημόσιας ανάρτησης Feed Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
postId string Ναι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: DeleteFeedPostPublic_200_response

Παράδειγμα

Παράδειγμα deleteFeedPostPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t postId = U("post-456");
4boost::optional<utility::string_t> broadcastId = boost::optional<utility::string_t>(U("broadcast-789"));
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
6api->deleteFeedPostPublic(tenantId, postId, broadcastId, sso)
7.then([](pplx::task<std::shared_ptr<DeleteFeedPostPublic_200_response>> t){
8 try {
9 auto resp = t.get();
10 if (!resp) resp = std::make_shared<DeleteFeedPostPublic_200_response>();
11 (void)resp;
12 } catch (const std::exception&) {
13 }
14});
15

Λήψη αναρτήσεων Feed Internal Link


Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
afterId string Όχι
limit int32_t Όχι
tags vector<string Όχι

Απόκριση

Επιστρέφει: GetFeedPosts_200_response

Παράδειγμα

Παράδειγμα getFeedPosts
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> afterId(utility::string_t(U("post_456")));
4boost::optional<int32_t> limit(50);
5std::vector<utility::string_t> tagVec{U("news"), U("announcement")};
6boost::optional<std::vector<utility::string_t>> tags(tagVec);
7api->getFeedPosts(tenantId, afterId, limit, tags)
8.then([](std::shared_ptr<GetFeedPosts_200_response> resp) {
9 auto copy = std::make_shared<GetFeedPosts_200_response>(*resp);
10 (void)copy;
11});
12

Λήψη δημόσιων αναρτήσεων Feed Internal Link

req tenantId afterId

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
afterId string Όχι
limit int32_t Όχι
tags vector<string Όχι
sso string Όχι
isCrawler bool Όχι
includeUserInfo bool Όχι

Απόκριση

Επιστρέφει: GetFeedPostsPublic_200_response

Παράδειγμα

Παράδειγμα getFeedPostsPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> afterId = boost::optional<utility::string_t>(U("post_abc123"));
4boost::optional<int32_t> limit = boost::optional<int32_t>(20);
5boost::optional<std::vector<utility::string_t>> tags = boost::optional<std::vector<utility::string_t>>(std::vector<utility::string_t>{U("news"), U("tech")});
6boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
7boost::optional<bool> isCrawler = boost::optional<bool>(false);
8boost::optional<bool> includeUserInfo = boost::optional<bool>(true);
9api->getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo)
10.then([](pplx::task<std::shared_ptr<GetFeedPostsPublic_200_response>> t){
11 try {
12 std::shared_ptr<GetFeedPostsPublic_200_response> resp = t.get();
13 auto marker = std::make_shared<int>(1);
14 if (resp) { (void)marker; }
15 } catch (const std::exception&) {
16 }
17});
18

Λήψη στατιστικών αναρτήσεων Feed Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
postIds vector<string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: GetFeedPostsStats_200_response

Παράδειγμα

Παράδειγμα getFeedPostsStats
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3std::vector<utility::string_t> postIds{ U("post-abc-001"), U("post-xyz-123") };
4boost::optional<utility::string_t> sso(U("user@example.com"));
5api->getFeedPostsStats(tenantId, postIds, sso)
6 .then([](pplx::task<std::shared_ptr<GetFeedPostsStats_200_response>> t)
7 {
8 try {
9 auto resp = t.get();
10 auto respCopy = resp ? std::make_shared<GetFeedPostsStats_200_response>(*resp) : nullptr;
11 (void)respCopy;
12 } catch (const std::exception&) {}
13 });
14

Λήψη δημοσίων αντιδράσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
postIds vector<string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: GetUserReactsPublic_200_response

Παράδειγμα

Παράδειγμα getUserReactsPublic
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3std::vector<utility::string_t> postIdsVec = {
4 utility::conversions::to_string_t("post-456"),
5 utility::conversions::to_string_t("post-789")
6};
7boost::optional<std::vector<utility::string_t>> postIdsOpt = postIdsVec;
8boost::optional<utility::string_t> ssoOpt = utility::conversions::to_string_t("user@example.com");
9api->getUserReactsPublic(tenantId, postIdsOpt, ssoOpt)
10 .then([](pplx::task<std::shared_ptr<GetUserReactsPublic_200_response>> t) {
11 try {
12 auto resp = t.get();
13 if (!resp) resp = std::make_shared<GetUserReactsPublic_200_response>();
14 } catch (const std::exception&) {
15 }
16 });
17

Αντίδραση σε δημόσια ανάρτηση Feed Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
postId string Ναι
reactBodyParams ReactBodyParams Ναι
isUndo bool Όχι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: ReactFeedPostPublic_200_response

Παράδειγμα

Παράδειγμα reactFeedPostPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t postId = U("post-987");
4ReactBodyParams reactBodyParams;
5reactBodyParams.userId = U("jane.doe@example.com");
6reactBodyParams.reaction = U("like");
7boost::optional<bool> isUndo = boost::optional<bool>(false);
8boost::optional<utility::string_t> broadcastId = boost::optional<utility::string_t>(U("broadcast-001"));
9boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("sso-token-xyz"));
10api->reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, sso)
11 .then([](pplx::task<std::shared_ptr<ReactFeedPostPublic_200_response>> task) {
12 try {
13 auto resp = task.get();
14 auto out = resp ? resp : std::make_shared<ReactFeedPostPublic_200_response>();
15 std::cout << "Reaction processed\n";
16 } catch (const std::exception &e) {
17 std::cerr << "React failed: " << e.what() << '\n';
18 }
19 });
20

Ενημέρωση ανάρτησης Feed Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
feedPost FeedPost Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateFeedPost
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t postId = U("post-987654321");
4FeedPost feedPost;
5feedPost.title = U("Weekly status update");
6feedPost.content = U("Completed the migration of the comments service to the new infra.");
7feedPost.authorEmail = U("developer@acme-corp.com");
8boost::optional<utility::string_t> summary = boost::optional<utility::string_t>(U("Migration complete"));
9feedPost.summary = summary;
10auto updateTask = api->updateFeedPost(tenantId, postId, feedPost)
11 .then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
12 try {
13 auto resp = t.get();
14 if (resp) {
15 auto cloned = std::make_shared<FlagCommentPublic_200_response>(*resp);
16 }
17 } catch (...) {
18 }
19 });
20

Ενημέρωση δημόσιας ανάρτησης Feed Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
postId string Ναι
updateFeedPostParams UpdateFeedPostParams Ναι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic_200_response

Παράδειγμα

Παράδειγμα updateFeedPostPublic
Copy Copy
1
2utility::string_t tenantId = U"my-tenant-123";
3utility::string_t postId = U"post-456";
4UpdateFeedPostParams params;
5boost::optional<utility::string_t> broadcastId = utility::string_t(U"broadcast-789");
6boost::optional<utility::string_t> sso = utility::string_t(U"user@example.com");
7api->updateFeedPostPublic(tenantId, postId, params, broadcastId, sso)
8.then([](pplx::task<std::shared_ptr<CreateFeedPostPublic_200_response>> task){
9 try {
10 auto resp = task.get();
11 if (!resp) resp = std::make_shared<CreateFeedPostPublic_200_response>();
12 (void)resp;
13 } catch (...) {}
14});
15

Σήμανση δημόσιου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
isFlagged bool Ναι
sso string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα flagCommentPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-789012");
4bool isFlagged = true;
5boost::optional<utility::string_t> sso{ U("user@example.com") };
6api->flagCommentPublic(tenantId, commentId, isFlagged, sso)
7.then([](std::shared_ptr<FlagCommentPublic_200_response> resp){
8 auto respCopy = std::make_shared<FlagCommentPublic_200_response>(*resp);
9 return respCopy;
10});
11

Προσθήκη hashtag Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Όχι
createHashTagBody CreateHashTagBody Όχι

Απόκριση

Επιστρέφει: AddHashTag_200_response

Παράδειγμα

Παράδειγμα addHashTag
Copy Copy
1
2boost::optional<utility::string_t> tenantId(U("my-tenant-123"));
3auto bodyPtr = std::make_shared<CreateHashTagBody>();
4bodyPtr->name = U("release");
5bodyPtr->color = U("#00aaff");
6boost::optional<CreateHashTagBody> createBody(*bodyPtr);
7api->addHashTag(tenantId, createBody).then([](pplx::task<std::shared_ptr<AddHashTag_200_response>> t){
8 try {
9 auto resp = t.get();
10 (void)resp;
11 } catch(...) {}
12});
13

Μαζική προσθήκη hashtags Internal Link

Παράμετροι

Όνομα Τύπος Απαιτούμενο Περιγραφή
tenantId string Όχι
bulkCreateHashTagsBody BulkCreateHashTagsBody Όχι

Απόκριση

Επιστρέφει: AddHashTagsBulk_200_response

Παράδειγμα

Παράδειγμα addHashTagsBulk
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto bodyPtr = std::make_shared<BulkCreateHashTagsBody>();
4boost::optional<utility::string_t> optTenant(tenantId);
5boost::optional<BulkCreateHashTagsBody> optBody(*bodyPtr);
6api->addHashTagsBulk(optTenant, optBody).then([](pplx::task<std::shared_ptr<AddHashTagsBulk_200_response>> t){
7 try {
8 auto resp = t.get();
9 if (resp) std::cout << "Bulk hashtags added for tenant\n";
10 } catch (const std::exception &e) {
11 std::cerr << "addHashTagsBulk error: " << e.what() << '\n';
12 }
13});
14

Διαγραφή hashtag Internal Link

Παράμετροι

Name Type Required Description
tag string Ναι
tenantId string Όχι
deleteHashTagRequest DeleteHashTag_request Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteHashTag
Copy Copy
1
2utility::string_t tag = U("inappropriate");
3boost::optional<utility::string_t> tenantId = boost::optional<utility::string_t>(U("my-tenant-123"));
4DeleteHashTag_request req;
5boost::optional<DeleteHashTag_request> optReq = boost::optional<DeleteHashTag_request>(req);
6
7api->deleteHashTag(tag, tenantId, optReq)
8.then([](std::shared_ptr<FlagCommentPublic_200_response> resp){
9 auto out = std::make_shared<FlagCommentPublic_200_response>(*resp);
10 std::cout << "Hashtag removed successfully for tenant\n";
11 return out;
12}).wait();
13

Λήψη hashtags Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
page double Όχι

Απόκριση

Επιστρέφει: GetHashTags_200_response

Παράδειγμα

Παράδειγμα getHashTags
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> page = 2.0;
4auto defaultResp = std::make_shared<GetHashTags_200_response>();
5api->getHashTags(tenantId, page).then([defaultResp](pplx::task<std::shared_ptr<GetHashTags_200_response>> t) {
6 try {
7 auto resp = t.get();
8 if(!resp) resp = defaultResp;
9 std::cout << "getHashTags completed; response object " << (resp ? "present" : "absent") << std::endl;
10 } catch(const std::exception& e) {
11 std::cout << "getHashTags error: " << e.what() << std::endl;
12 }
13});
14

Τροποποίηση hashtag Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tag string Ναι
tenantId string Όχι
updateHashTagBody UpdateHashTagBody Όχι

Απόκριση

Επιστρέφει: PatchHashTag_200_response

Παράδειγμα

Παράδειγμα patchHashTag
Copy Copy
1
2utility::string_t tag = U("release-1.0");
3boost::optional<utility::string_t> tenantId = boost::optional<utility::string_t>(U("my-tenant-123"));
4UpdateHashTagBody body;
5boost::optional<UpdateHashTagBody> updateBody = boost::optional<UpdateHashTagBody>(body);
6api->patchHashTag(tag, tenantId, updateBody)
7.then([](pplx::task<std::shared_ptr<PatchHashTag_200_response>> t) {
8 try {
9 auto resp = t.get();
10 if (resp) {
11 auto copied = std::make_shared<PatchHashTag_200_response>(*resp);
12 std::cout << "PatchHashTag succeeded" << std::endl;
13 } else {
14 std::cout << "PatchHashTag returned no data" << std::endl;
15 }
16 } catch (const std::exception &e) {
17 std::cerr << "PatchHashTag error: " << e.what() << std::endl;
18 }
19});
20

Δημιουργία διαχειριστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createModeratorBody CreateModeratorBody Ναι

Απάντηση

Επιστρέφει: CreateModerator_200_response

Παράδειγμα

Παράδειγμα createModerator
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateModeratorBody createModeratorBody;
4createModeratorBody.email = U("moderator@example.com");
5createModeratorBody.displayName = U("Support Moderator");
6createModeratorBody.roles = std::vector<utility::string_t>{ U("moderator"), U("support") };
7createModeratorBody.notes = boost::optional<utility::string_t>(U("Temporary moderator for Q1"));
8api->createModerator(tenantId, createModeratorBody)
9.then([](pplx::task<std::shared_ptr<CreateModerator_200_response>> t)
10{
11 try
12 {
13 auto resp = t.get();
14 auto respCopy = std::make_shared<CreateModerator_200_response>(*resp);
15 (void)respCopy;
16 }
17 catch (const std::exception&)
18 {
19 }
20});
21

Διαγραφή διαχειριστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
sendEmail string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteModerator
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t moderatorId = U("moderator-456");
4boost::optional<utility::string_t> sendEmail = boost::optional<utility::string_t>(U("moderator@notifications.example.com"));
5api->deleteModerator(tenantId, moderatorId, sendEmail)
6 .then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t){
7 try {
8 auto resp = t.get();
9 if (!resp) resp = std::make_shared<FlagCommentPublic_200_response>();
10 return resp;
11 } catch (const std::exception&) {
12 return std::make_shared<FlagCommentPublic_200_response>();
13 }
14 });
15

Λήψη διαχειριστή Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetModerator_200_response

Παράδειγμα

Παράδειγμα getModerator
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t moderatorId = U("moderator-456");
4boost::optional<utility::string_t> requestLocale = U("en-US");
5auto fallbackModerator = std::make_shared<GetModerator_200_response>();
6
7api->getModerator(tenantId, moderatorId)
8 .then([fallbackModerator, requestLocale](std::shared_ptr<GetModerator_200_response> resp) -> pplx::task<std::shared_ptr<GetModerator_200_response>> {
9 auto moderator = resp ? resp : fallbackModerator;
10 if (requestLocale) { auto loc = *requestLocale; (void)loc; }
11 return pplx::task_from_result(moderator);
12 })
13 .then([](std::shared_ptr<GetModerator_200_response> finalResp) -> void {
14 (void)finalResp;
15 });
16

Λήψη διαχειριστών Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetModerators_200_response

Παράδειγμα

Παράδειγμα getModerators
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = boost::optional<double>(10);
4auto task = api->getModerators(tenantId, skip)
5 .then([](std::shared_ptr<GetModerators_200_response> resp) {
6 if (!resp) {
7 std::cout << "No moderators returned\n";
8 return;
9 }
10 auto copy = std::make_shared<GetModerators_200_response>(*resp);
11 std::cout << "Retrieved moderators\n";
12 });
13task.wait();
14

Αποστολή πρόσκλησης Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
fromName string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα sendInvite
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("comment-456");
4utility::string_t fromName = U("moderator@example.com");
5boost::optional<utility::string_t> inviteNote = boost::optional<utility::string_t>(U("Please review this flagged comment"));
6auto task = api->sendInvite(tenantId, id, fromName)
7 .then([inviteNote](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) -> std::shared_ptr<FlagCommentPublic_200_response> {
8 try {
9 auto resp = t.get();
10 auto wrapped = std::make_shared<FlagCommentPublic_200_response>(*resp);
11 (void)inviteNote;
12 return wrapped;
13 } catch (...) {
14 throw;
15 }
16 });
17

Ενημέρωση διαχειριστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateModeratorBody UpdateModeratorBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateModerator
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t moderatorId = U("moderator-456");
4auto bodyPtr = std::make_shared<UpdateModeratorBody>();
5bodyPtr->email = utility::string_t(U("mod.jane@example.com"));
6bodyPtr->displayName = boost::optional<utility::string_t>(utility::string_t(U("Jane Moderator")));
7bodyPtr->enabled = boost::optional<bool>(true);
8api->updateModerator(tenantId, moderatorId, *bodyPtr).then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t){
9 try {
10 auto resp = t.get();
11 if (resp) {
12 std::cout << "Moderator updated successfully" << std::endl;
13 }
14 } catch (const std::exception &e) {
15 std::cerr << "Update failed: " << e.what() << std::endl;
16 }
17});
18

Διαγραφή μετρητή ειδοποιήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteNotificationCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t notifId = U("notification-456");
4boost::optional<utility::string_t> actingUser = boost::optional<utility::string_t>(U("moderator@example.com"));
5api->deleteNotificationCount(tenantId, notifId)
6.then([actingUser](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if (!resp) resp = std::make_shared<FlagCommentPublic_200_response>();
10 if (actingUser) std::cout << "Actor: " << actingUser->c_str() << "\n";
11 std::cout << "Notification count cleared\n";
12 } catch (const std::exception &e) {
13 std::cout << "Failed: " << e.what() << "\n";
14 }
15});
16

Λήψη προσωρινά αποθηκευμένου μετρητή ειδοποιήσεων Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetCachedNotificationCount_200_response

Παράδειγμα

Παράδειγμα getCachedNotificationCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user@example.com");
4boost::optional<utility::string_t> opt_status = boost::optional<utility::string_t>(U("unread"));
5api->getCachedNotificationCount(tenantId, userId)
6 .then([=](pplx::task<std::shared_ptr<GetCachedNotificationCount_200_response>> t){
7 try {
8 std::shared_ptr<GetCachedNotificationCount_200_response> resp = t.get();
9 if(!resp) return;
10 auto copy = std::make_shared<GetCachedNotificationCount_200_response>(*resp);
11 } catch(const std::exception &){
12 }
13 });
14

Λήψη μετρητή ειδοποιήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι
urlId string Όχι
fromCommentId string Όχι
viewed bool Όχι
type string Όχι

Απάντηση

Επιστρέφει: GetNotificationCount_200_response

Παράδειγμα

Παράδειγμα getNotificationCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> userId = U("user@example.com");
4boost::optional<utility::string_t> urlId = U("https://www.example.com/article/456");
5boost::optional<utility::string_t> fromCommentId = U("cmt-789");
6boost::optional<bool> viewed = true;
7boost::optional<utility::string_t> type = U("reply");
8
9api->getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, type)
10 .then([](pplx::task<std::shared_ptr<GetNotificationCount_200_response>> task){
11 try {
12 auto resp = task.get();
13 auto result = resp ? resp : std::make_shared<GetNotificationCount_200_response>();
14 } catch (const std::exception&) {
15 }
16 });
17

Λήψη ειδοποιήσεων Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
userId string Όχι
urlId string Όχι
fromCommentId string Όχι
viewed bool Όχι
type string Όχι
skip double Όχι

Απάντηση

Επιστρέφει: GetNotifications_200_response

Παράδειγμα

Παράδειγμα getNotifications
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
4boost::optional<utility::string_t> urlId = boost::optional<utility::string_t>(U("https://example.com/posts/42"));
5boost::optional<utility::string_t> fromCommentId = boost::optional<utility::string_t>(U("cmt-98765"));
6boost::optional<bool> viewed = boost::optional<bool>(true);
7boost::optional<utility::string_t> type = boost::optional<utility::string_t>(U("reply"));
8boost::optional<double> skip = boost::optional<double>(0.0);
9
10api->getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip)
11.then([](pplx::task<std::shared_ptr<GetNotifications_200_response>> t){
12 try {
13 auto resp = t.get();
14 if (resp) {
15 auto processed = std::make_shared<GetNotifications_200_response>(*resp);
16 }
17 } catch (const std::exception&) {
18 }
19});
20

Ενημέρωση ειδοποίησης Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
updateNotificationBody UpdateNotificationBody Ναι
userId string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateNotification
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t notificationId = U("notif-456");
4UpdateNotificationBody updateNotificationBody;
5boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("moderator@example.com"));
6api->updateNotification(tenantId, notificationId, updateNotificationBody, userId)
7.then([=](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
8 try {
9 auto resp = t.get();
10 if (resp) {
11 auto respCopy = std::make_shared<FlagCommentPublic_200_response>(*resp);
12 std::cout << "Notification updated successfully\n";
13 } else {
14 std::cout << "No response received\n";
15 }
16 } catch (const std::exception &e) {
17 std::cerr << "Update failed: " << e.what() << "\n";
18 }
19});
20

Προσθήκη σελίδας Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createAPIPageData CreateAPIPageData Ναι

Απάντηση

Επιστρέφει: AddPageAPIResponse

Παράδειγμα

Παράδειγμα addPage
Copy Copy
1
2auto pageData = std::make_shared<CreateAPIPageData>();
3pageData->url = utility::string_t(U("https://example.com/articles/2025-modern-cpp"));
4pageData->title = utility::string_t(U("Modern C++ Patterns"));
5pageData->description = boost::optional<utility::string_t>(utility::string_t(U("Practical patterns for modern C++ development")));
6pageData->authorEmail = boost::optional<utility::string_t>(utility::string_t(U("dev@company.com")));
7pageData->published = boost::optional<bool>(true);
8
9api->addPage(utility::string_t(U("my-tenant-123")), *pageData)
10.then([](pplx::task<std::shared_ptr<AddPageAPIResponse>> t){
11 try {
12 auto resp = t.get();
13 return resp;
14 } catch (...) {
15 throw;
16 }
17});
18

Διαγραφή σελίδας Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: DeletePageAPIResponse

Παράδειγμα

Παράδειγμα deletePage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t pageId = U("page-456");
4boost::optional<utility::string_t> correlationId = boost::optional<utility::string_t>(U("corr-20251122"));
5auto task = api->deletePage(tenantId, pageId)
6 .then([correlationId](pplx::task<std::shared_ptr<DeletePageAPIResponse>> prev) -> std::shared_ptr<DeletePageAPIResponse> {
7 try {
8 auto resp = prev.get();
9 if (resp) return resp;
10 return std::make_shared<DeletePageAPIResponse>();
11 } catch (const std::exception&) {
12 return std::make_shared<DeletePageAPIResponse>();
13 }
14 });
15

Λήψη σελίδας με URL ID Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι

Απάντηση

Επιστρέφει: GetPageByURLIdAPIResponse

Παράδειγμα

getPageByURLId Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("home-page-789");
4boost::optional<utility::string_t> locale = boost::optional<utility::string_t>(U("en-US"));
5api->getPageByURLId(tenantId, urlId).then([=](pplx::task<std::shared_ptr<GetPageByURLIdAPIResponse>> task){
6 try {
7 auto resp = task.get();
8 auto result = resp ? resp : std::make_shared<GetPageByURLIdAPIResponse>();
9 (void)result;
10 } catch (const std::exception &ex) {
11 auto err = std::make_shared<GetPageByURLIdAPIResponse>();
12 (void)err;
13 }
14});
15

Λήψη σελίδων Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι

Απάντηση

Επιστρέφει: GetPagesAPIResponse

Παράδειγμα

Παράδειγμα getPages
Copy Copy
1
2int main()
3{
4 utility::string_t tenantId = U("my-tenant-123");
5 boost::optional<utility::string_t> statusFilter = U("published");
6 boost::optional<int> pageNumber = 1;
7 auto placeholder = std::make_shared<GetPagesAPIResponse>();
8 api->getPages(tenantId)
9 .then([placeholder](std::shared_ptr<GetPagesAPIResponse> resp) {
10 if (resp) {
11 *placeholder = *resp;
12 auto refs = resp.use_count();
13 (void)refs;
14 }
15 })
16 .wait();
17 return 0;
18}
19

Τροποποίηση σελίδας Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateAPIPageData UpdateAPIPageData Ναι

Απόκριση

Επιστρέφει: PatchPageAPIResponse

Παράδειγμα

Παράδειγμα patchPage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t pageId = U("page-9876");
4auto updatePtr = std::make_shared<UpdateAPIPageData>();
5updatePtr->title = utility::string_t(U("About Our Team"));
6updatePtr->slug = utility::string_t(U("about-our-team"));
7updatePtr->enabled = boost::optional<bool>(true);
8updatePtr->description = boost::optional<utility::string_t>(U("Updated team overview and contact information"));
9api->patchPage(tenantId, pageId, *updatePtr)
10.then([](pplx::task<std::shared_ptr<PatchPageAPIResponse>> t){
11 try {
12 auto resp = t.get();
13 if (resp) {
14 std::cout << "Patch successful, page id: " << resp->id << std::endl;
15 }
16 } catch (const std::exception &e) {
17 std::cerr << "Patch failed: " << e.what() << std::endl;
18 }
19});
20

Διαγραφή εκκρεμούς συμβάντος webhook Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deletePendingWebhookEvent
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t eventId = U("wh_evt_456");
4boost::optional<utility::string_t> requestId = boost::optional<utility::string_t>(U("req-789"));
5api->deletePendingWebhookEvent(tenantId, eventId)
6 .then([requestId](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if (resp) {
10 auto resultCopy = std::make_shared<FlagCommentPublic_200_response>(*resp);
11 if (requestId) {
12 (void)requestId.get();
13 }
14 (void)resultCopy;
15 } else {
16 auto fallback = std::make_shared<FlagCommentPublic_200_response>();
17 (void)fallback;
18 }
19 } catch (const std::exception&) {
20 auto errorObj = std::make_shared<FlagCommentPublic_200_response>();
21 (void)errorObj;
22 }
23 }).wait();
24

Λήψη αριθμού εκκρεμών συμβάντων webhook Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tenantId string Ναι
commentId string Όχι
externalId string Όχι
eventType string Όχι
type string Όχι
domain string Όχι
attemptCountGT double Όχι

Απόκριση

Επιστρέφει: GetPendingWebhookEventCount_200_response

Παράδειγμα

Παράδειγμα getPendingWebhookEventCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> commentId = boost::optional<utility::string_t>(U("cmt-789"));
4boost::optional<utility::string_t> externalId = boost::optional<utility::string_t>(U("ext-456"));
5boost::optional<utility::string_t> eventType = boost::optional<utility::string_t>(U("comment_created"));
6boost::optional<utility::string_t> type = boost::optional<utility::string_t>(U("webhook"));
7boost::optional<utility::string_t> domain = boost::optional<utility::string_t>(U("example.com"));
8boost::optional<double> attemptCountGT = boost::optional<double>(1.0);
9api->getPendingWebhookEventCount(tenantId, commentId, externalId, eventType, type, domain, attemptCountGT)
10.then([](pplx::task<std::shared_ptr<GetPendingWebhookEventCount_200_response>> t){
11 try {
12 auto resp = t.get();
13 auto respCopy = std::make_shared<GetPendingWebhookEventCount_200_response>(*resp);
14 std::cout << "Pending webhook event count retrieved\n";
15 } catch (const std::exception &e) {
16 std::cerr << "Failed to get pending count: " << e.what() << '\n';
17 }
18}).wait();
19

Λήψη εκκρεμών συμβάντων webhook Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Όχι
externalId string Όχι
eventType string Όχι
type string Όχι
domain string Όχι
attemptCountGT double Όχι
skip double Όχι

Απόκριση

Επιστρέφει: GetPendingWebhookEvents_200_response

Παράδειγμα

Παράδειγμα getPendingWebhookEvents
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> commentId = boost::optional<utility::string_t>(U("cmt-98765"));
4boost::optional<utility::string_t> externalId = boost::optional<utility::string_t>(U("ext-abc-01"));
5boost::optional<utility::string_t> eventType = boost::optional<utility::string_t>(U("comment_created"));
6boost::optional<utility::string_t> type = boost::optional<utility::string_t>(U("webhook"));
7boost::optional<utility::string_t> domain = boost::optional<utility::string_t>(U("example.com"));
8boost::optional<double> attemptCountGT = boost::optional<double>(2.0);
9boost::optional<double> skip = boost::optional<double>(0.0);
10
11api->getPendingWebhookEvents(tenantId, commentId, externalId, eventType, type, domain, attemptCountGT, skip)
12.then([](pplx::task<std::shared_ptr<GetPendingWebhookEvents_200_response>> t) {
13 try {
14 auto resp = t.get();
15 auto copy = std::make_shared<GetPendingWebhookEvents_200_response>(*resp);
16 (void)copy;
17 } catch (const std::exception& e) {
18 (void)e;
19 auto empty = std::make_shared<GetPendingWebhookEvents_200_response>();
20 (void)empty;
21 }
22});
23

Δημιουργία ρύθμισης ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createQuestionConfigBody CreateQuestionConfigBody Ναι

Απόκριση

Επιστρέφει: CreateQuestionConfig_200_response

Παράδειγμα

createQuestionConfig Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateQuestionConfigBody body;
4body.name = utility::string_t(U("Feature X Feedback"));
5body.description = boost::optional<utility::string_t>(utility::string_t(U("Ask users if Feature X met their needs")));
6body.createdBy = utility::string_t(U("admin@mycompany.com"));
7body.enabled = boost::optional<bool>(true);
8api->createQuestionConfig(tenantId, body).then([](std::shared_ptr<CreateQuestionConfig_200_response> resp){
9 if(resp){
10 auto result = std::make_shared<CreateQuestionConfig_200_response>(*resp);
11 std::wcout << U("Question config created successfully") << std::endl;
12 } else {
13 std::wcout << U("Failed to create question config") << std::endl;
14 }
15});
16

Διαγραφή ρύθμισης ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteQuestionConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("qcfg-98765");
4boost::optional<utility::string_t> tenantOpt = tenantId;
5auto t = api->deleteQuestionConfig(tenantOpt.value_or(utility::string_t()), id)
6.then([](std::shared_ptr<FlagCommentPublic_200_response> resp) -> std::shared_ptr<FlagCommentPublic_200_response> {
7 auto out = std::make_shared<FlagCommentPublic_200_response>();
8 if (resp) *out = *resp;
9 return out;
10});
11t.wait();
12

Λήψη ρύθμισης ερώτησης Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetQuestionConfig_200_response

Παράδειγμα

Παράδειγμα getQuestionConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("question-456");
4boost::optional<utility::string_t> locale = U("en-US");
5auto defaultResp = std::make_shared<GetQuestionConfig_200_response>();
6api->getQuestionConfig(tenantId, id).then([defaultResp](pplx::task<std::shared_ptr<GetQuestionConfig_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if(!resp) resp = defaultResp;
10 std::cout << "Question config retrieved" << std::endl;
11 } catch(const std::exception &e) {
12 std::cerr << "Failed to get question config: " << e.what() << std::endl;
13 }
14});
15

Λήψη ρυθμίσεων ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetQuestionConfigs_200_response

Παράδειγμα

Παράδειγμα getQuestionConfigs
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = 10;
4api->getQuestionConfigs(tenantId, skip).then([](pplx::task<std::shared_ptr<GetQuestionConfigs_200_response>> task) {
5 try {
6 auto resp = task.get();
7 if (resp) {
8 auto localCopy = std::make_shared<GetQuestionConfigs_200_response>(*resp);
9 }
10 } catch (const std::exception&) {
11 }
12});
13

Ενημέρωση ρύθμισης ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateQuestionConfigBody UpdateQuestionConfigBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateQuestionConfig
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto configId = utility::string_t(U("question-config-456"));
4auto body = std::make_shared<UpdateQuestionConfigBody>();
5body->enabled = true;
6body->threshold = 5;
7body->moderatorEmail = utility::string_t(U("moderator@example.com"));
8body->notifyUsers = boost::optional<bool>(true);
9body->description = boost::optional<utility::string_t>(utility::string_t(U("Tighten question moderation for new users")));
10
11api->updateQuestionConfig(tenantId, configId, *body)
12 .then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
13 try {
14 auto resp = t.get();
15 std::cout << (resp ? "updateQuestionConfig succeeded\n" : "updateQuestionConfig returned null\n");
16 } catch (const std::exception& e) {
17 std::cerr << "updateQuestionConfig failed: " << e.what() << '\n';
18 }
19 });
20

Δημιουργία αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createQuestionResultBody CreateQuestionResultBody Ναι

Απόκριση

Επιστρέφει: CreateQuestionResult_200_response

Παράδειγμα

Παράδειγμα createQuestionResult
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateQuestionResultBody createQuestionResultBody;
4createQuestionResultBody.questionId = U("question-789");
5createQuestionResultBody.userEmail = U("student@example.com");
6createQuestionResultBody.selectedOption = U("B");
7createQuestionResultBody.isCorrect = true;
8createQuestionResultBody.score = 9.5;
9createQuestionResultBody.metadata = boost::optional<utility::string_t>(U("{\"session\":\"quiz-2026-01\"}"));
10auto task = api->createQuestionResult(tenantId, createQuestionResultBody)
11.then([](pplx::task<std::shared_ptr<CreateQuestionResult_200_response>> t){
12 try {
13 auto result = t.get();
14 auto copy = std::make_shared<CreateQuestionResult_200_response>(*result);
15 (void)copy;
16 } catch (...) {}
17});
18task.wait();
19

Διαγραφή αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteQuestionResult
Copy Copy
1
2boost::optional<utility::string_t> maybeTenant = boost::none;
3utility::string_t defaultTenant = U("my-tenant-123");
4utility::string_t questionId = U("question-456");
5utility::string_t tenant = maybeTenant ? *maybeTenant : defaultTenant;
6api->deleteQuestionResult(tenant, questionId)
7.then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> task){
8 try {
9 auto resp = task.get();
10 auto processed = std::make_shared<FlagCommentPublic_200_response>(*resp);
11 } catch (const std::exception&) {
12 }
13});
14

Λήψη αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetQuestionResult_200_response

Παράδειγμα

Παράδειγμα getQuestionResult
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t questionId = U("question-456");
4boost::optional<utility::string_t> requestor = U("user@example.com");
5
6auto task = api->getQuestionResult(tenantId, questionId)
7 .then([requestor](pplx::task<std::shared_ptr<GetQuestionResult_200_response>> prev) -> std::shared_ptr<GetQuestionResult_200_response> {
8 try {
9 auto resp = prev.get();
10 if (!resp) return std::make_shared<GetQuestionResult_200_response>();
11 (void)requestor;
12 return resp;
13 } catch (const std::exception &) {
14 return std::make_shared<GetQuestionResult_200_response>();
15 }
16 });
17

Λήψη αποτελεσμάτων ερωτήσεων Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Όχι
userId string Όχι
startDate string Όχι
questionId string Όχι
questionIds string Όχι
skip double Όχι

Απάντηση

Επιστρέφει: GetQuestionResults_200_response

Παράδειγμα

Παράδειγμα getQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> urlId = boost::optional<utility::string_t>(U("/articles/2025/new-feature"));
4boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("alice@example.com"));
5boost::optional<utility::string_t> startDate = boost::optional<utility::string_t>(U("2025-01-01T00:00:00Z"));
6boost::optional<utility::string_t> questionId = boost::optional<utility::string_t>(U("q-789"));
7boost::optional<utility::string_t> questionIds = boost::optional<utility::string_t>(U("q-789,q-790"));
8boost::optional<double> skip = boost::optional<double>(10.0);
9
10api->getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip)
11.then([](pplx::task<std::shared_ptr<GetQuestionResults_200_response>> t){
12 try {
13 std::shared_ptr<GetQuestionResults_200_response> resp = t.get();
14 if (resp) {
15 auto copy = std::make_shared<GetQuestionResults_200_response>(*resp);
16 }
17 } catch (const std::exception&) {}
18});
19

Ενημέρωση αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateQuestionResultBody UpdateQuestionResultBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateQuestionResult
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("question-456");
4UpdateQuestionResultBody updateQuestionResultBody;
5auto moderatorEmail = std::make_shared<utility::string_t>(U("moderator@example.com"));
6boost::optional<utility::string_t> resolutionNote = boost::optional<utility::string_t>(U("Marked duplicate of q-123"));
7api->updateQuestionResult(tenantId, id, updateQuestionResultBody)
8 .then([moderatorEmail, resolutionNote](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t)
9 {
10 try {
11 auto resp = t.get();
12 if (resp) {
13 auto resultPtr = resp;
14 }
15 } catch (...) {}
16 });
17

Συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
questionId string Όχι
questionIds vector<string Όχι
urlId string Όχι
timeBucket AggregateTimeBucket Όχι
startDate datetime Όχι
forceRecalculate bool Όχι

Απόκριση

Επιστρέφει: AggregateQuestionResults_200_response

Παράδειγμα

Παράδειγμα aggregateQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> questionId(U("q-42"));
4boost::optional<std::vector<utility::string_t>> questionIds(std::vector<utility::string_t>{U("q-42"), U("q-43")});
5boost::optional<utility::string_t> urlId(U("page-789"));
6boost::optional<AggregateTimeBucket> timeBucket;
7boost::optional<utility::datetime> startDate(utility::datetime::from_string(U("2025-01-01T00:00:00Z")));
8boost::optional<bool> forceRecalculate(true);
9
10api->aggregateQuestionResults(tenantId, questionId, questionIds, urlId, timeBucket, startDate, forceRecalculate)
11.then([](std::shared_ptr<AggregateQuestionResults_200_response> resp){
12 if (resp) {
13 auto resultCopy = std::make_shared<AggregateQuestionResults_200_response>(*resp);
14 }
15});
16

Μαζική συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Ναι
forceRecalculate bool Όχι

Απόκριση

Επιστρέφει: BulkAggregateQuestionResults_200_response

Παράδειγμα

Παράδειγμα bulkAggregateQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3BulkAggregateQuestionResultsRequest request;
4boost::optional<bool> forceRecalculate(true);
5api->bulkAggregateQuestionResults(tenantId, request, forceRecalculate)
6.then([](pplx::task<std::shared_ptr<BulkAggregateQuestionResults_200_response>> t){
7 try {
8 auto resp = t.get();
9 if (!resp) {
10 auto empty = std::make_shared<BulkAggregateQuestionResults_200_response>();
11 std::cout << "No aggregated results returned\n";
12 } else {
13 std::cout << "Aggregated results received\n";
14 }
15 } catch (const std::exception& ex) {
16 std::cerr << "Error fetching aggregated results: " << ex.what() << '\n';
17 }
18});
19

Συνδυασμός σχολίων με αποτελέσματα ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
questionId string Όχι
questionIds vector<string Όχι
urlId string Όχι
startDate datetime Όχι
forceRecalculate bool Όχι
minValue double Όχι
maxValue double Όχι
limit double Όχι

Απόκριση

Επιστρέφει: CombineCommentsWithQuestionResults_200_response

Παράδειγμα

Παράδειγμα combineCommentsWithQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> questionId = boost::optional<utility::string_t>(U("q-98765"));
4boost::optional<std::vector<utility::string_t>> questionIds = boost::optional<std::vector<utility::string_t>>(std::vector<utility::string_t>{U("q-98765"), U("q-12345")});
5boost::optional<utility::string_t> urlId = boost::optional<utility::string_t>(U("/posts/2024/interesting-article"));
6boost::optional<utility::datetime> startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2024-01-01T00:00:00Z")));
7boost::optional<bool> forceRecalculate = boost::optional<bool>(true);
8boost::optional<double> minValue = boost::optional<double>(0.0);
9boost::optional<double> maxValue = boost::optional<double>(1.0);
10boost::optional<double> limit = boost::optional<double>(100.0);
11
12api->combineCommentsWithQuestionResults(tenantId, questionId, questionIds, urlId, startDate, forceRecalculate, minValue, maxValue, limit)
13.then([](pplx::task<std::shared_ptr<CombineCommentsWithQuestionResults_200_response>> task){
14 try {
15 auto response = task.get();
16 auto output = response ? response : std::make_shared<CombineCommentsWithQuestionResults_200_response>();
17 } catch (const std::exception&) {
18 }
19});
20

Προσθήκη χρήστη SSO Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
createAPISSOUserData CreateAPISSOUserData Ναι

Απόκριση

Επιστρέφει: AddSSOUserAPIResponse

Παράδειγμα

Παράδειγμα addSSOUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto createData = std::make_shared<CreateAPISSOUserData>();
4createData->email = utility::string_t(U("alice@example.com"));
5createData->externalUserId = utility::string_t(U("okta|987654321"));
6createData->displayName = boost::optional<utility::string_t>(U("Alice Johnson"));
7createData->roles = std::vector<utility::string_t>{ U("moderator"), U("editor") };
8api->addSSOUser(tenantId, createData)
9.then([](pplx::task<std::shared_ptr<AddSSOUserAPIResponse>> task){
10 try {
11 auto resp = task.get();
12 if (resp) {
13 (void)resp;
14 }
15 } catch (...) {
16 }
17});
18

Διαγραφή χρήστη SSO Internal Link


Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
deleteComments bool Όχι
commentDeleteMode string Όχι

Απόκριση

Επιστρέφει: DeleteSSOUserAPIResponse

Παράδειγμα

Παράδειγμα deleteSSOUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t ssoId = U("user@example.com");
4boost::optional<bool> deleteComments = true;
5boost::optional<utility::string_t> commentDeleteMode = U("anonymize");
6
7api->deleteSSOUser(tenantId, ssoId, deleteComments, commentDeleteMode)
8.then([](pplx::task<std::shared_ptr<DeleteSSOUserAPIResponse>> t){
9 try {
10 auto resp = t.get();
11 auto respCopy = std::make_shared<DeleteSSOUserAPIResponse>(*resp);
12 (void)respCopy;
13 } catch (const std::exception&) {
14 }
15});
16

Λήψη χρήστη SSO με email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
email string Ναι

Απόκριση

Επιστρέφει: GetSSOUserByEmailAPIResponse

Παράδειγμα

Παράδειγμα getSSOUserByEmail
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t email = U("user@example.com");
4boost::optional<utility::string_t> includeInactive = boost::optional<utility::string_t>(U("false"));
5api->getSSOUserByEmail(tenantId, email).then([includeInactive](pplx::task<std::shared_ptr<GetSSOUserByEmailAPIResponse>> t) {
6 try {
7 auto resp = t.get();
8 return resp ? resp : std::make_shared<GetSSOUserByEmailAPIResponse>();
9 } catch (...) {
10 return std::make_shared<GetSSOUserByEmailAPIResponse>();
11 }
12}).then([](std::shared_ptr<GetSSOUserByEmailAPIResponse> finalResp) {
13 (void)finalResp;
14});
15

Λήψη χρήστη SSO με ID Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetSSOUserByIdAPIResponse

Παράδειγμα

Παράδειγμα getSSOUserById
Copy Copy
1
2boost::optional<utility::string_t> optId = U("user-42@example.com");
3utility::string_t tenantId = U("my-tenant-123");
4utility::string_t id = optId.value_or(U("user-42@example.com"));
5api->getSSOUserById(tenantId, id).then([](pplx::task<std::shared_ptr<GetSSOUserByIdAPIResponse>> task){
6 try {
7 auto resp = task.get();
8 if (resp) {
9 auto out = resp;
10 (void)out;
11 } else {
12 auto fallback = std::make_shared<GetSSOUserByIdAPIResponse>();
13 (void)fallback;
14 }
15 } catch (const std::exception& ex) {
16 auto fallback = std::make_shared<GetSSOUserByIdAPIResponse>();
17 (void)ex;
18 (void)fallback;
19 }
20});
21

Λήψη χρηστών SSO Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
skip int32_t Όχι

Απόκριση

Επιστρέφει: GetSSOUsers_200_response

Παράδειγμα

Παράδειγμα getSSOUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<int32_t> skip = 10;
4api->getSSOUsers(tenantId, skip).then([](pplx::task<std::shared_ptr<GetSSOUsers_200_response>> t){
5 try {
6 auto resp = t.get();
7 if (resp) {
8 auto copy = std::make_shared<GetSSOUsers_200_response>(*resp);
9 }
10 } catch(...) {}
11});
12

Τροποποίηση χρήστη SSO Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
updateAPISSOUserData UpdateAPISSOUserData Ναι
updateComments bool Όχι

Απόκριση

Επιστρέφει: PatchSSOUserAPIResponse

Παράδειγμα

Παράδειγμα patchSSOUser
Copy Copy
1
2UpdateAPISSOUserData updateData;
3updateData.email = utility::string_t(U"user@example.com");
4updateData.displayName = utility::string_t(U"Jane Doe");
5boost::optional<bool> updateComments = true;
6auto responseHolder = std::make_shared<PatchSSOUserAPIResponse>();
7api->patchSSOUser(utility::string_t(U"my-tenant-123"), utility::string_t(U"user@example.com"), updateData, updateComments)
8.then([responseHolder](std::shared_ptr<PatchSSOUserAPIResponse> resp){
9 if (resp) *responseHolder = *resp;
10 return responseHolder;
11});
12

Αντικατάσταση χρήστη SSO Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateAPISSOUserData UpdateAPISSOUserData Ναι
updateComments bool Όχι

Απόκριση

Επιστρέφει: PutSSOUserAPIResponse

Παράδειγμα

Παράδειγμα putSSOUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("user@example.com");
4UpdateAPISSOUserData updateData;
5updateData.displayName = U("Jane Doe");
6updateData.email = U("user@example.com");
7boost::optional<bool> updateComments = true;
8api->putSSOUser(tenantId, id, updateData, updateComments)
9.then([](std::shared_ptr<PutSSOUserAPIResponse> resp){
10 if(!resp){ std::cout << "putSSOUser returned null\n"; return; }
11 auto copy = std::make_shared<PutSSOUserAPIResponse>(*resp);
12 std::cout << "SSO user updated successfully\n";
13});
14

Δημιουργία συνδρομής Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Ναι

Απόκριση

Επιστρέφει: CreateSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα createSubscription
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto payload = std::make_shared<CreateAPIUserSubscriptionData>();
4payload->userEmail = U("user@example.com");
5payload->planId = U("pro-monthly");
6payload->couponCode = boost::optional<utility::string_t>(U("WELCOME10"));
7payload->trialDays = boost::optional<int>(14);
8payload->autoRenew = boost::optional<bool>(true);
9api->createSubscription(tenantId, *payload).then([](std::shared_ptr<CreateSubscriptionAPIResponse> resp) {
10 if (resp) std::cout << "Subscription created successfully" << std::endl;
11 else std::cout << "Failed to create subscription" << std::endl;
12});
13

Διαγραφή συνδρομής Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι

Απόκριση

Επιστρέφει: DeleteSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα deleteSubscription
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("subscription-987");
4boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
5auto defaultResp = std::make_shared<DeleteSubscriptionAPIResponse>();
6api->deleteSubscription(tenantId, id, userId)
7.then([defaultResp](pplx::task<std::shared_ptr<DeleteSubscriptionAPIResponse>> t){
8 try {
9 auto resp = t.get();
10 if (!resp) resp = defaultResp;
11 std::cout << "Delete completed\n";
12 } catch (const std::exception &e) {
13 std::cerr << "Delete failed: " << e.what() << '\n';
14 }
15});
16

Λήψη συνδρομών Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι

Απόκριση

Επιστρέφει: GetSubscriptionsAPIResponse

Παράδειγμα

Παράδειγμα getSubscriptions
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> userId = utility::conversions::to_string_t("user@example.com");
4api->getSubscriptions(tenantId, userId)
5.then([](std::shared_ptr<GetSubscriptionsAPIResponse> resp){
6 if(!resp) return;
7 auto copy = std::make_shared<GetSubscriptionsAPIResponse>(*resp);
8})
9.wait();
10

Λήψη ημερήσιας χρήσης tenant Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
yearNumber double Όχι
monthNumber double Όχι
dayNumber double Όχι
skip double Όχι

Απόκριση

Επιστρέφει: GetTenantDailyUsages_200_response

Παράδειγμα

Παράδειγμα getTenantDailyUsages
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> year = 2025;
4boost::optional<double> month = 1;
5auto placeholder = std::make_shared<GetTenantDailyUsages_200_response>();
6api->getTenantDailyUsages(tenantId, year, month, boost::optional<double>(), boost::optional<double>())
7.then([](pplx::task<std::shared_ptr<GetTenantDailyUsages_200_response>> t){
8 try {
9 auto resp = t.get();
10 if (resp) std::cout << "Received tenant daily usages\n";
11 else std::cout << "No usage data\n";
12 } catch (const std::exception &e) {
13 std::cout << "Request error: " << e.what() << '\n';
14 }
15});
16

Δημιουργία πακέτου tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createTenantPackageBody CreateTenantPackageBody Ναι

Απόκριση

Επιστρέφει: CreateTenantPackage_200_response

Παράδειγμα

Παράδειγμα createTenantPackage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto body = std::make_shared<CreateTenantPackageBody>();
4body->name = U("Standard Package - 1k comments");
5body->createdByEmail = U("admin@mycompany.com");
6body->monthlyLimit = boost::optional<int>(1000);
7body->notes = boost::optional<utility::string_t>(U("Onboarding promo"));
8api->createTenantPackage(tenantId, *body)
9.then([](pplx::task<std::shared_ptr<CreateTenantPackage_200_response>> t) {
10 try {
11 auto resp = t.get();
12 if (resp) {
13 std::cout << "Package created: " << utility::conversions::to_utf8string(resp->packageId) << std::endl;
14 }
15 } catch (const std::exception& e) {
16 std::cerr << "Create failed: " << e.what() << std::endl;
17 }
18});
19

Διαγραφή πακέτου tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteTenantPackage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t pkgId = U("package-456");
4boost::optional<utility::string_t> ifMatch = boost::optional<utility::string_t>(U("\"etag-789\""));
5auto fallback = std::make_shared<FlagCommentPublic_200_response>();
6auto task = api->deleteTenantPackage(tenantId, pkgId).then([fallback](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if (resp) return resp;
10 return fallback;
11 } catch (const std::exception&) {
12 return fallback;
13 }
14});
15task.wait();
16

Λήψη πακέτου tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetTenantPackage_200_response

Παράδειγμα

Παράδειγμα getTenantPackage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t packageId = U("pkg-456");
4boost::optional<utility::string_t> requestTrace = U("trace-20260112-01");
5api->getTenantPackage(tenantId, packageId)
6.then([requestTrace](std::shared_ptr<GetTenantPackage_200_response> resp){
7 auto result = resp ? resp : std::make_shared<GetTenantPackage_200_response>();
8 if (requestTrace) { auto trace = *requestTrace; (void)trace; }
9 return result;
10})
11.then([](std::shared_ptr<GetTenantPackage_200_response> finalResp){
12 (void)finalResp;
13});
14

Λήψη πακέτων tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetTenantPackages_200_response

Παράδειγμα

Παράδειγμα getTenantPackages
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = 10.0;
4auto task = api->getTenantPackages(tenantId, skip).then([](pplx::task<std::shared_ptr<GetTenantPackages_200_response>> t){
5 try {
6 auto resp = t.get();
7 if (resp) {
8 (void)resp;
9 }
10 } catch (const std::exception&) {
11 auto fallback = std::make_shared<GetTenantPackages_200_response>();
12 (void)fallback;
13 }
14});
15

Αντικατάσταση πακέτου tenant Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tenantId string Ναι
id string Ναι
replaceTenantPackageBody ReplaceTenantPackageBody Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα replaceTenantPackage
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3utility::string_t packageId = utility::string_t("pkg-456");
4ReplaceTenantPackageBody body;
5body.name = utility::string_t("Premium Plan");
6body.planId = utility::string_t("premium_monthly");
7body.seats = 25;
8body.billingEmail = utility::string_t("billing@acme.com");
9boost::optional<utility::string_t> notes = boost::optional<utility::string_t>(utility::string_t("Migrated subscription"));
10body.notes = notes;
11api->replaceTenantPackage(tenantId, packageId, body).then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> task){
12 try{
13 auto resp = task.get();
14 if(resp){
15 auto resultCopy = std::make_shared<FlagCommentPublic_200_response>(*resp);
16 }
17 } catch(const std::exception&){
18 }
19});
20

Ενημέρωση πακέτου tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateTenantPackageBody UpdateTenantPackageBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateTenantPackage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t packageId = U("pkg-456");
4auto bodyPtr = std::make_shared<UpdateTenantPackageBody>();
5bodyPtr->name = utility::string_t(U("Pro Monthly"));
6bodyPtr->description = boost::optional<utility::string_t>(U("Monthly subscription for pro users"));
7bodyPtr->enabled = boost::optional<bool>(true);
8api->updateTenantPackage(tenantId, packageId, *bodyPtr)
9.then([](std::shared_ptr<FlagCommentPublic_200_response> resp){
10 std::cout << (resp ? "updateTenantPackage succeeded\n" : "updateTenantPackage returned null\n");
11});
12

Δημιουργία χρήστη tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
createTenantUserBody CreateTenantUserBody Ναι

Απόκριση

Επιστρέφει: CreateTenantUser_200_response

Παράδειγμα

Παράδειγμα createTenantUser
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateTenantUserBody createTenantUserBody;
4createTenantUserBody.email = utility::conversions::to_string_t("new.user@company.com");
5createTenantUserBody.password = utility::conversions::to_string_t("Secur3P@ssw0rd!");
6createTenantUserBody.displayName = boost::optional<utility::string_t>(utility::conversions::to_string_t("New User"));
7createTenantUserBody.roles = std::vector<utility::string_t>{utility::conversions::to_string_t("member")};
8
9api->createTenantUser(tenantId, createTenantUserBody)
10 .then([](pplx::task<std::shared_ptr<CreateTenantUser_200_response>> task){
11 try {
12 auto resp = task.get();
13 auto created = std::make_shared<CreateTenantUser_200_response>(*resp);
14 } catch (const std::exception&) {
15 }
16 });
17

Διαγραφή χρήστη tenant Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
deleteComments string Όχι
commentDeleteMode string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteTenantUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user@example.com");
4boost::optional<utility::string_t> deleteComments = boost::optional<utility::string_t>(U("true"));
5boost::optional<utility::string_t> commentDeleteMode = boost::optional<utility::string_t>(U("soft"));
6auto fallback = std::make_shared<FlagCommentPublic_200_response>();
7api->deleteTenantUser(tenantId, userId, deleteComments, commentDeleteMode)
8.then([fallback](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
9 try {
10 auto resp = t.get();
11 if (!resp) resp = fallback;
12 std::cout << "deleteTenantUser completed\n";
13 } catch (const std::exception &e) {
14 std::cout << "deleteTenantUser failed: " << e.what() << "\n";
15 }
16}).wait();
17

Λήψη χρήστη tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetTenantUser_200_response

Παράδειγμα

Παράδειγμα getTenantUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("alice@example.com");
4boost::optional<utility::string_t> includeMetadata = boost::optional<utility::string_t>(U("true"));
5api->getTenantUser(tenantId, userId).then([includeMetadata](pplx::task<std::shared_ptr<GetTenantUser_200_response>> t)
6{
7 try {
8 auto resp = t.get();
9 auto result = resp ? resp : std::make_shared<GetTenantUser_200_response>();
10 if (includeMetadata && result) { (void)includeMetadata; }
11 (void)result;
12 } catch (const std::exception& e) {
13 auto fallback = std::make_shared<GetTenantUser_200_response>();
14 (void)fallback;
15 }
16});
17

Λήψη χρηστών tenant Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
skip double Όχι

Απόκριση

Επιστρέφει: GetTenantUsers_200_response

Παράδειγμα

Παράδειγμα getTenantUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = boost::optional<double>(20);
4api->getTenantUsers(tenantId, skip)
5 .then([=](pplx::task<std::shared_ptr<GetTenantUsers_200_response>> t) {
6 try {
7 std::shared_ptr<GetTenantUsers_200_response> resp = t.get();
8 if (!resp) resp = std::make_shared<GetTenantUsers_200_response>();
9 (void)resp;
10 } catch (const std::exception& ex) {
11 (void)ex;
12 std::shared_ptr<GetTenantUsers_200_response> err = std::make_shared<GetTenantUsers_200_response>();
13 }
14 });
15

Αντικατάσταση χρήστη tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
replaceTenantUserBody ReplaceTenantUserBody Ναι
updateComments string Όχι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα replaceTenantUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("user@example.com");
4ReplaceTenantUserBody replaceBody;
5boost::optional<utility::string_t> updateComments = boost::optional<utility::string_t>(U("true"));
6api->replaceTenantUser(tenantId, id, replaceBody, updateComments)
7.then([](std::shared_ptr<FlagCommentPublic_200_response> resp){
8 if (resp) {
9 auto copy = std::make_shared<FlagCommentPublic_200_response>(*resp);
10 }
11});
12

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
redirectURL string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα sendLoginLink
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user@example.com");
4boost::optional<utility::string_t> redirectURL = utility::string_t(U("https://app.example.com/welcome"));
5api->sendLoginLink(tenantId, userId, redirectURL)
6 .then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t)
7 {
8 try
9 {
10 auto resp = t.get();
11 if (resp) return resp;
12 return std::make_shared<FlagCommentPublic_200_response>();
13 }
14 catch (...)
15 {
16 return std::make_shared<FlagCommentPublic_200_response>();
17 }
18 });
19

Ενημέρωση χρήστη tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateTenantUserBody UpdateTenantUserBody Ναι
updateComments string Όχι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateTenantUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("jane.doe@example.com");
4auto bodyPtr = std::make_shared<UpdateTenantUserBody>();
5bodyPtr->setEmail(U("jane.doe@example.com"));
6bodyPtr->setDisplayName(U("Jane Doe"));
7boost::optional<utility::string_t> updateComments = U("Normalized display name");
8
9api->updateTenantUser(tenantId, userId, *bodyPtr, updateComments)
10.then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t){
11 try {
12 auto resp = t.get();
13 if (resp) std::cout << "Tenant user updated successfully\n";
14 else std::cout << "Update returned no data\n";
15 } catch (const std::exception& ex) {
16 std::cerr << "Update failed: " << ex.what() << '\n';
17 }
18});
19

Δημιουργία tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createTenantBody CreateTenantBody Ναι

Απόκριση

Επιστρέφει: CreateTenant_200_response

Παράδειγμα

createTenant Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateTenantBody createTenantBody;
4createTenantBody.displayName = U("My Tenant Inc");
5createTenantBody.adminEmail = U("admin@mytenant.com");
6createTenantBody.plan = boost::optional<utility::string_t>(U("pro"));
7auto task = api->createTenant(tenantId, createTenantBody)
8 .then([](std::shared_ptr<CreateTenant_200_response> resp){
9 if (resp){
10 auto createdId = std::make_shared<utility::string_t>(resp->tenantId);
11 }
12 });
13task.wait();
14

Διαγραφή tenant Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
sure string Όχι

Απάντηση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα deleteTenant
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("flag-456");
4boost::optional<utility::string_t> sure = utility::string_t(U("true"));
5api->deleteTenant(tenantId, id, sure)
6 .then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> t) {
7 try {
8 auto resp = t.get();
9 auto safeResp = resp ? resp : std::make_shared<FlagCommentPublic_200_response>();
10 (void)safeResp;
11 } catch (...) {}
12 });
13

Λήψη tenant Internal Link

Παράμετροι

Όνομα Type Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetTenant_200_response

Παράδειγμα

Παράδειγμα getTenant
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("admin@fastcomments.com");
4boost::optional<utility::string_t> asOf = boost::optional<utility::string_t>(U("2026-01-01T00:00:00Z"));
5api->getTenant(tenantId, id).then([asOf](pplx::task<std::shared_ptr<GetTenant_200_response>> t) {
6 try {
7 auto resp = t.get();
8 if (!resp) return;
9 auto processed = std::make_shared<GetTenant_200_response>(*resp);
10 } catch (const std::exception&) {
11 }
12});
13

Λήψη tenants Internal Link

Παράμετροι

Όνομα Type Απαιτείται Περιγραφή
tenantId string Ναι
meta string Όχι
skip double Όχι

Απάντηση

Επιστρέφει: GetTenants_200_response

Παράδειγμα

Παράδειγμα getTenants
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> meta = boost::optional<utility::string_t>(U("admin@example.com"));
4boost::optional<double> skip = boost::optional<double>(10.0);
5auto task = api->getTenants(tenantId, meta, skip)
6 .then([](std::shared_ptr<GetTenants_200_response> resp){
7 if (resp) {
8 auto copy = std::make_shared<GetTenants_200_response>(*resp);
9 }
10 });
11

Ενημέρωση tenant Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateTenantBody UpdateTenantBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic_200_response

Παράδειγμα

Παράδειγμα updateTenant
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto id = utility::string_t(U("tenant-0001"));
4auto bodyPtr = std::make_shared<UpdateTenantBody>();
5bodyPtr->setDisplayName(utility::string_t(U("Acme Corporation")));
6bodyPtr->setAdminEmail(utility::string_t(U("admin@acme.com")));
7bodyPtr->setIsActive(true);
8bodyPtr->setMaxUsers(boost::optional<int>(250));
9api->updateTenant(tenantId, id, *bodyPtr)
10.then([](pplx::task<std::shared_ptr<FlagCommentPublic_200_response>> task){
11 try {
12 auto resp = task.get();
13 if (resp) {
14 auto msg = resp->getMessage();
15 std::wcout << msg << std::endl;
16 }
17 } catch (const std::exception& e) {
18 std::cerr << e.what() << std::endl;
19 }
20});
21

Μεταφόρτωση εικόνας Internal Link

Μεταφόρτωση και αλλαγή μεγέθους εικόνας

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
file HttpContent Ναι
sizePreset SizePreset Όχι
urlId string Όχι

Απόκριση

Επιστρέφει: UploadImageResponse

Παράδειγμα

Παράδειγμα uploadImage
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3auto fileBytes = std::vector<unsigned char>{0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A};
4auto file = std::make_shared<HttpContent>(fileBytes, U("image/png"), U("avatar.png"));
5boost::optional<SizePreset> sizePreset = boost::optional<SizePreset>(SizePreset::MEDIUM);
6boost::optional<utility::string_t> urlId = boost::optional<utility::string_t>(U("user-avatar-987"));
7api->uploadImage(tenantId, file, sizePreset, urlId)
8 .then([](pplx::task<std::shared_ptr<UploadImageResponse>> task) {
9 try {
10 return task.get();
11 } catch (...) {
12 return std::shared_ptr<UploadImageResponse>();
13 }
14 });
15

Λήψη προόδου διακριτικού χρήστη με ID Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetUserBadgeProgressById_200_response

Παράδειγμα

Παράδειγμα getUserBadgeProgressById
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("badge-abc-456");
4boost::optional<utility::string_t> preferredLocale = boost::optional<utility::string_t>(U("en-US"));
5
6api->getUserBadgeProgressById(tenantId, id)
7.then([=](std::shared_ptr<GetUserBadgeProgressById_200_response> resp){
8 if(!resp) return;
9 auto copy = std::make_shared<GetUserBadgeProgressById_200_response>(*resp);
10 (void)copy;
11});
12

Λήψη προόδου διακριτικού με ID χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Ναι

Απόκριση

Επιστρέφει: GetUserBadgeProgressById_200_response

Παράδειγμα

Παράδειγμα getUserBadgeProgressByUserId
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> optUserId = utility::string_t(U("user@example.com"));
4api->getUserBadgeProgressByUserId(tenantId, optUserId.value()).then(
5 [](pplx::task<std::shared_ptr<GetUserBadgeProgressById_200_response>> t){
6 try {
7 auto resp = t.get();
8 auto copy = std::make_shared<GetUserBadgeProgressById_200_response>(*resp);
9 } catch (const std::exception&) {
10 }
11 }
12);
13

Λήψη λίστας προόδου διακριτικών χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
userId string Όχι
limit double Όχι
skip double Όχι

Απόκριση

Επιστρέφει: GetUserBadgeProgressList_200_response

Παράδειγμα

Παράδειγμα getUserBadgeProgressList
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
4boost::optional<double> limit = boost::optional<double>(50);
5boost::optional<double> skip = boost::optional<double>(0);
6
7api->getUserBadgeProgressList(tenantId, userId, limit, skip)
8.then([](pplx::task<std::shared_ptr<GetUserBadgeProgressList_200_response>> t){
9 try {
10 auto resp = t.get();
11 auto copied = std::make_shared<GetUserBadgeProgressList_200_response>(*resp);
12 std::cout << "Badge progress entries received\n";
13 } catch (const std::exception &e) {
14 std::cerr << "Failed to get badge progress: " << e.what() << '\n';
15 }
16});
17

Δημιουργία διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createUserBadgeParams CreateUserBadgeParams Ναι

Απόκριση

Επιστρέφει: CreateUserBadge_200_response

Παράδειγμα

Παράδειγμα createUserBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateUserBadgeParams params;
4params.userId = U("user@example.com");
5params.badgeId = U("trusted-contributor");
6params.note = boost::optional<utility::string_t>(U("Awarded for outstanding moderation"));
7api->createUserBadge(tenantId, params)
8.then([](std::shared_ptr<CreateUserBadge_200_response> resp){
9 if (resp) {
10 auto copied = std::make_shared<CreateUserBadge_200_response>(*resp);
11 }
12})
13.wait();
14

Διαγραφή διακριτικού χρήστη Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: UpdateUserBadge_200_response

Παράδειγμα

deleteUserBadge Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3utility::string_t badgeId = utility::conversions::to_string_t("badge-456");
4boost::optional<utility::string_t> traceId = boost::none;
5api->deleteUserBadge(tenantId, badgeId)
6.then([traceId](pplx::task<std::shared_ptr<UpdateUserBadge_200_response>> t) {
7 try {
8 auto resp = t.get();
9 if (!resp) resp = std::make_shared<UpdateUserBadge_200_response>();
10 return resp;
11 } catch (const std::exception&) {
12 return std::shared_ptr<UpdateUserBadge_200_response>();
13 }
14});
15

Λήψη διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetUserBadge_200_response

Παράδειγμα

getUserBadge Παράδειγμα
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("user@example.com");
4boost::optional<utility::string_t> traceId = U("trace-456");
5api->getUserBadge(tenantId, id).then([traceId](std::shared_ptr<GetUserBadge_200_response> resp) {
6 if (!resp) resp = std::make_shared<GetUserBadge_200_response>();
7 utility::string_t activeTrace = traceId.value_or(U(""));
8 (void)activeTrace;
9 return resp;
10});
11

Λήψη διακριτικών χρήστη Internal Link

Παράμετροι

Όνομα Type Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι
badgeId string Όχι
type double Όχι
displayedOnComments bool Όχι
limit double Όχι
skip double Όχι

Απόκριση

Επιστρέφει: GetUserBadges_200_response

Παράδειγμα

Παράδειγμα getUserBadges
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> userId(utility::conversions::to_string_t("user@example.com"));
4boost::optional<utility::string_t> badgeId(utility::conversions::to_string_t("badge-elite"));
5boost::optional<double> type(1.0);
6boost::optional<bool> displayedOnComments(true);
7boost::optional<double> limit(50.0);
8boost::optional<double> skip(0.0);
9auto resultHolder = std::make_shared<GetUserBadges_200_response>();
10api->getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip)
11.then([&resultHolder](std::shared_ptr<GetUserBadges_200_response> resp){
12 if (resp) resultHolder = resp;
13 return resultHolder;
14});
15

Ενημέρωση διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateUserBadgeParams UpdateUserBadgeParams Ναι

Απόκριση

Επιστρέφει: UpdateUserBadge_200_response

Παράδειγμα

Παράδειγμα updateUserBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("user@example.com");
4UpdateUserBadgeParams updateParams;
5updateParams.badgeId = U("badge-top-100");
6updateParams.label = U("Top Contributor");
7updateParams.active = boost::optional<bool>(true);
8updateParams.expiresAt = boost::optional<utility::string_t>(U("2026-12-31T23:59:59Z"));
9api->updateUserBadge(tenantId, id, updateParams)
10.then([](pplx::task<std::shared_ptr<UpdateUserBadge_200_response>> task){
11 try {
12 auto resp = task.get();
13 if (resp) {
14 auto result = std::make_shared<UpdateUserBadge_200_response>(*resp);
15 }
16 } catch (const std::exception&) {
17 }
18});
19

Λήψη αριθμού ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: GetUserNotificationCount_200_response

Παράδειγμα

Παράδειγμα getUserNotificationCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
4std::shared_ptr<GetUserNotificationCount_200_response> result;
5api->getUserNotificationCount(tenantId, sso)
6.then([&result](pplx::task<std::shared_ptr<GetUserNotificationCount_200_response>> t) {
7 try {
8 result = t.get();
9 if (!result) result = std::make_shared<GetUserNotificationCount_200_response>();
10 } catch (...) {
11 result = std::make_shared<GetUserNotificationCount_200_response>();
12 }
13}).wait();
14

Λήψη ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
pageSize int32_t Όχι
afterId string Όχι
includeContext bool Όχι
afterCreatedAt int64_t Όχι
unreadOnly bool Όχι
dmOnly bool Όχι
noDm bool Όχι
includeTranslations bool Όχι
sso string Όχι

Απόκριση

Επιστρέφει: GetUserNotifications_200_response

Παράδειγμα

Παράδειγμα getUserNotifications
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<int32_t> pageSize = 50;
4boost::optional<utility::string_t> afterId = utility::conversions::to_string_t("notif_98765");
5boost::optional<bool> includeContext = true;
6boost::optional<int64_t> afterCreatedAt = static_cast<int64_t>(1672531200);
7boost::optional<bool> unreadOnly = true;
8boost::optional<bool> dmOnly = false;
9boost::optional<bool> noDm = false;
10boost::optional<bool> includeTranslations = true;
11boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
12
13api->getUserNotifications(tenantId, pageSize, afterId, includeContext, afterCreatedAt, unreadOnly, dmOnly, noDm, includeTranslations, sso)
14.then([](pplx::task<std::shared_ptr<GetUserNotifications_200_response>> task){
15 try {
16 auto resp = task.get();
17 auto copy = std::make_shared<GetUserNotifications_200_response>(*resp);
18 return copy;
19 } catch (...) {
20 return std::shared_ptr<GetUserNotifications_200_response>();
21 }
22});
23

Επαναφορά αριθμού ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: ResetUserNotifications_200_response

Παράδειγμα

Παράδειγμα resetUserNotificationCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
4api->resetUserNotificationCount(tenantId, sso)
5 .then([](pplx::task<std::shared_ptr<ResetUserNotifications_200_response>> task) {
6 try {
7 auto resp = task.get();
8 if (!resp) resp = std::make_shared<ResetUserNotifications_200_response>();
9 } catch (const std::exception &e) {
10 (void)e;
11 }
12 });
13

Επαναφορά ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
afterId string Όχι
afterCreatedAt int64_t Όχι
unreadOnly bool Όχι
dmOnly bool Όχι
noDm bool Όχι
sso string Όχι

Απάντηση

Επιστρέφει: ResetUserNotifications_200_response

Παράδειγμα

Παράδειγμα resetUserNotifications
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> afterId = boost::optional<utility::string_t>(U("notif-987654321"));
4boost::optional<int64_t> afterCreatedAt = boost::optional<int64_t>(1625097600000LL);
5boost::optional<bool> unreadOnly = boost::optional<bool>(true);
6boost::optional<bool> dmOnly = boost::optional<bool>(false);
7boost::optional<bool> noDm;
8boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
9
10api->resetUserNotifications(tenantId, afterId, afterCreatedAt, unreadOnly, dmOnly, noDm, sso)
11 .then([](pplx::task<std::shared_ptr<ResetUserNotifications_200_response>> t)
12 {
13 try
14 {
15 auto resp = t.get();
16 auto respCopy = std::make_shared<ResetUserNotifications_200_response>(*resp);
17 return respCopy;
18 }
19 catch (...)
20 {
21 return std::shared_ptr<ResetUserNotifications_200_response>();
22 }
23 });
24

Ενημέρωση κατάστασης συνδρομής σχολίων ειδοποιήσεων χρήστη Internal Link

Ενεργοποίηση ή απενεργοποίηση ειδοποιήσεων για ένα συγκεκριμένο σχόλιο.

Παράμετροι

Name Type Required Description
tenantId string Yes
notificationId string Yes
optedInOrOut string Yes
commentId string Yes
sso string No

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus_200_response

Παράδειγμα

Παράδειγμα updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2utility::string_t tenantId = utility::string_t(U("my-tenant-123"));
3utility::string_t notificationId = utility::string_t(U("notif-789"));
4utility::string_t optedInOrOut = utility::string_t(U("opted_in"));
5utility::string_t commentId = utility::string_t(U("cmt-456"));
6boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(utility::string_t(U("user@example.com")));
7api->updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso)
8.then([](pplx::task<std::shared_ptr<UpdateUserNotificationStatus_200_response>> t){
9 try {
10 auto resp = t.get();
11 auto result = resp ? resp : std::make_shared<UpdateUserNotificationStatus_200_response>();
12 } catch (const std::exception&) {}
13});
14

Ενημέρωση κατάστασης συνδρομής σελίδας ειδοποιήσεων χρήστη Internal Link

Ενεργοποιήστε ή απενεργοποιήστε τις ειδοποιήσεις για μια σελίδα. Όταν οι χρήστες είναι εγγεγραμμένοι σε μια σελίδα, δημιουργούνται ειδοποιήσεις για νέα κύρια σχόλια, και επίσης

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
url string Ναι
pageTitle string Ναι
subscribedOrUnsubscribed string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus_200_response

Παράδειγμα

Παράδειγμα updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("page-456");
4utility::string_t url = U("https://www.example.com/articles/2026/new-feature");
5utility::string_t pageTitle = U("New Feature Announcement");
6utility::string_t subscribedOrUnsubscribed = U("subscribed");
7boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
8auto placeholder = std::make_shared<UpdateUserNotificationStatus_200_response>();
9api->updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso)
10.then([](pplx::task<std::shared_ptr<UpdateUserNotificationStatus_200_response>> task){
11 try {
12 auto resp = task.get();
13 (void)resp;
14 } catch (const std::exception &e) {
15 (void)e;
16 }
17});
18

Ενημέρωση κατάστασης ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
notificationId string Ναι
newStatus string Ναι
sso string Όχι

Απάντηση

Επιστρέφει: UpdateUserNotificationStatus_200_response

Παράδειγμα

Παράδειγμα updateUserNotificationStatus
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t notificationId = U("notification-789");
4utility::string_t newStatus = U("read");
5boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("sso-token-abc123"));
6api->updateUserNotificationStatus(tenantId, notificationId, newStatus, sso)
7.then([](pplx::task<std::shared_ptr<UpdateUserNotificationStatus_200_response>> task){
8 try {
9 auto resp = task.get();
10 if (resp) {
11 auto result = std::make_shared<UpdateUserNotificationStatus_200_response>(*resp);
12 }
13 } catch (...) {
14 }
15});
16

Λήψη καταστάσεων παρουσίας χρηστών Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlIdWS string Ναι
userIds string Ναι

Απάντηση

Επιστρέφει: GetUserPresenceStatuses_200_response

Παράδειγμα

Παράδειγμα getUserPresenceStatuses
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlIdWS = U("wss://realtime.fastcomments.com/socket/tenant-abc");
4boost::optional<utility::string_t> optUserIds = U("alice@example.com,bob@example.com");
5utility::string_t userIds = optUserIds.value_or(U("alice@example.com"));
6auto task = api->getUserPresenceStatuses(tenantId, urlIdWS, userIds)
7 .then([](std::shared_ptr<GetUserPresenceStatuses_200_response> resp) {
8 if (!resp) return;
9 auto copy = std::make_shared<GetUserPresenceStatuses_200_response>(*resp);
10 });
11task.wait();
12

Αναζήτηση χρηστών Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
urlId string Ναι
usernameStartsWith string Όχι
mentionGroupIds vector<string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: SearchUsers_200_response

Παράδειγμα

Παράδειγμα searchUsers
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3utility::string_t urlId = utility::string_t("/posts/2026/new-feature");
4boost::optional<utility::string_t> usernameStartsWith = boost::optional<utility::string_t>(utility::string_t("alex"));
5boost::optional<std::vector<utility::string_t>> mentionGroupIds{std::vector<utility::string_t>{utility::string_t("ops-team"), utility::string_t("support")}};
6boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(utility::string_t("saml-idp"));
7api->searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso)
8 .then([](pplx::task<std::shared_ptr<SearchUsers_200_response>> t){
9 try {
10 auto resp = t.get();
11 if (!resp) resp = std::make_shared<SearchUsers_200_response>();
12 } catch (...) {}
13 });
14

Λήψη χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetUser_200_response

Παράδειγμα

Παράδειγμα getUser
Copy Copy
1
2boost::optional<utility::string_t> tenant(U("my-tenant-123"));
3boost::optional<utility::string_t> userId(U("user@example.com"));
4api->getUser(tenant.value(), userId.value())
5 .then([](pplx::task<std::shared_ptr<GetUser_200_response>> task) {
6 try {
7 auto resp = task.get();
8 if (resp) {
9 auto result_copy = std::make_shared<GetUser_200_response>(*resp);
10 } else {
11 auto fallback = std::make_shared<GetUser_200_response>();
12 }
13 } catch (const std::exception &e) {
14 }
15 });
16

Δημιουργία ψήφου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Ναι
direction string Ναι
userId string Όχι
anonUserId string Όχι

Απάντηση

Επιστρέφει: VoteComment_200_response

Παράδειγμα

Παράδειγμα createVote
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4utility::string_t direction = U("up");
5boost::optional<utility::string_t> userId = boost::optional<utility::string_t>(U("user@example.com"));
6api->createVote(tenantId, commentId, direction, userId, boost::none)
7.then([](pplx::task<std::shared_ptr<VoteComment_200_response>> task) {
8 try {
9 auto resp = task.get();
10 if (!resp) resp = std::make_shared<VoteComment_200_response>();
11 } catch (...) {}
12});
13

Διαγραφή ψήφου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
editKey string Όχι

Απόκριση

Επιστρέφει: DeleteCommentVote_200_response

Παράδειγμα

Παράδειγμα deleteVote
Copy Copy
1
2utility::string_t tenantId = utility::conversions::to_string_t("my-tenant-123");
3utility::string_t voteId = utility::conversions::to_string_t("vote-98765");
4boost::optional<utility::string_t> editKey = boost::optional<utility::string_t>(utility::conversions::to_string_t("user-edit-key-abc123"));
5
6api->deleteVote(tenantId, voteId, editKey)
7.then([](pplx::task<std::shared_ptr<DeleteCommentVote_200_response>> t){
8 try {
9 auto resp = t.get();
10 auto result = resp ? std::make_shared<DeleteCommentVote_200_response>(*resp)
11 : std::make_shared<DeleteCommentVote_200_response>();
12 (void)result;
13 } catch (const std::exception& e) {
14 (void)e;
15 }
16});
17

Λήψη ψήφων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι

Απόκριση

Επιστρέφει: GetVotes_200_response

Παράδειγμα

Παράδειγμα getVotes
Copy Copy
1
2boost::optional<utility::string_t> tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<utility::string_t> urlId = utility::string_t(U("/posts/2025/new-features"));
4auto task = api->getVotes(tenantId.value(), urlId.value()).then([](std::shared_ptr<GetVotes_200_response> resp){
5 if (resp) {
6 auto copy = std::make_shared<GetVotes_200_response>(*resp);
7 std::cout << "Fetched votes successfully\n";
8 } else {
9 std::cout << "No votes response\n";
10 }
11});
12task.wait();
13

Λήψη ψήφων για χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: GetVotesForUser_200_response

Παράδειγμα

Παράδειγμα getVotesForUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-987");
4boost::optional<utility::string_t> userId = utility::string_t(U("user@example.com"));
5boost::optional<utility::string_t> anonUserId;
6api->getVotesForUser(tenantId, urlId, userId, anonUserId)
7.then([](pplx::task<std::shared_ptr<GetVotesForUser_200_response>> task){
8 try {
9 auto resp = task.get();
10 if (resp) {
11 auto copy = std::make_shared<GetVotesForUser_200_response>(*resp);
12 }
13 } catch (const std::exception&) {
14 }
15});
16

Χρειάζεστε βοήθεια;

Εάν αντιμετωπίσετε οποιοδήποτε πρόβλημα ή έχετε απορίες σχετικά με το C++ SDK, παρακαλώ:

Συνεισφορές

Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλούμε επισκεφθείτε το αποθετήριο στο GitHub για τις οδηγίες συνεισφοράς.