Skip to content

Commit aedd64d

Browse files
author
Umesh Bhatt
committed
added addFieldToPayload lambda function to createEmail method
1 parent 07df0c8 commit aedd64d

2 files changed

Lines changed: 19 additions & 57 deletions

File tree

examples/messaging/messages/createEmail.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ int main() {
88

99
Appwrite appwrite(projectId, apiKey);
1010

11-
std::string messageId = "6b9k4016e14b8";
11+
std::string messageId = "email001";
1212
std::string subject = "Hello from C++ Appwrite SDK!";
1313
std::string content =
1414
"Testing Email message creation with topics, users, and targets.";

src/services/Messaging.cpp

Lines changed: 18 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -573,65 +573,27 @@ std::string Messaging::createEmail(
573573
R"(","subject":")" + Utils::escapeJsonString(subject) +
574574
R"(","content":")" + Utils::escapeJsonString(content) + R"(")";
575575

576-
if (!topics.empty()) {
577-
payload += R"(,"topics":[)";
578-
for (size_t i = 0; i < topics.size(); ++i) {
579-
payload += "\"" + Utils::escapeJsonString(topics[i]) + "\"";
580-
if (i != topics.size() - 1)
576+
auto addFieldToPayload = [](std::string &payload,
577+
const std::string &fieldName,
578+
const std::vector<std::string> &items) {
579+
if (items.empty())
580+
return;
581+
582+
payload += R"(,")" + fieldName + R"(":[)";
583+
for (size_t i = 0; i < items.size(); ++i) {
584+
payload += "\"" + Utils::escapeJsonString(items[i]) + "\"";
585+
if (i != items.size() - 1)
581586
payload += ",";
582587
}
583588
payload += "]";
584-
}
585-
586-
if (!users.empty()) {
587-
payload += R"(,"users":[)";
588-
for (size_t i = 0; i < users.size(); ++i) {
589-
payload += "\"" + Utils::escapeJsonString(users[i]) + "\"";
590-
if (i != users.size() - 1)
591-
payload += ",";
592-
}
593-
payload += "]";
594-
}
595-
596-
if (!targets.empty()) {
597-
payload += R"(,"targets":[)";
598-
for (size_t i = 0; i < targets.size(); ++i) {
599-
payload += "\"" + Utils::escapeJsonString(targets[i]) + "\"";
600-
if (i != targets.size() - 1)
601-
payload += ",";
602-
}
603-
payload += "]";
604-
}
605-
606-
if (!cc.empty()) {
607-
payload += R"(,"cc":[)";
608-
for (size_t i = 0; i < cc.size(); ++i) {
609-
payload += "\"" + Utils::escapeJsonString(cc[i]) + "\"";
610-
if (i != cc.size() - 1)
611-
payload += ",";
612-
}
613-
payload += "]";
614-
}
615-
616-
if (!bcc.empty()) {
617-
payload += R"(,"bcc":[)";
618-
for (size_t i = 0; i < bcc.size(); ++i) {
619-
payload += "\"" + Utils::escapeJsonString(bcc[i]) + "\"";
620-
if (i != bcc.size() - 1)
621-
payload += ",";
622-
}
623-
payload += "]";
624-
}
625-
626-
if (!attachments.empty()) {
627-
payload += R"(,"attachments":[)";
628-
for (size_t i = 0; i < attachments.size(); ++i) {
629-
payload += "\"" + Utils::escapeJsonString(attachments[i]) + "\"";
630-
if (i != attachments.size() - 1)
631-
payload += ",";
632-
}
633-
payload += "]";
634-
}
589+
};
590+
591+
addFieldToPayload(payload, "topics", topics);
592+
addFieldToPayload(payload, "users", users);
593+
addFieldToPayload(payload, "targets", targets);
594+
addFieldToPayload(payload, "cc", cc);
595+
addFieldToPayload(payload, "bcc", bcc);
596+
addFieldToPayload(payload, "attachments", attachments);
635597

636598
payload += std::string(R"(,"draft":)") + (draft ? "true" : "false");
637599

0 commit comments

Comments
 (0)