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