7 #ifndef _NIM_SDK_CPP_SYSMSG_HELPER_H_
8 #define _NIM_SDK_CPP_SYSMSG_HELPER_H_
13 #include "nim_define_include.h"
16 #include "nim_wrapper_util/nim_json_util.h"
36 : need_push_(BS_NOT_INIT)
37 , push_need_badge_(BS_NOT_INIT)
38 , push_need_prefix_(BS_NOT_INIT)
39 , need_offline_(BS_NOT_INIT)
40 , anti_spam_enable_(BS_NOT_INIT) {}
47 void ToJsonValue(nim_cpp_wrapper_util::Json::Value& message)
const {
48 if (push_need_badge_ != BS_NOT_INIT)
49 message[kNIMSysMsgKeyPushNeedBadge] = push_need_badge_;
50 if (need_push_ != BS_NOT_INIT)
51 message[kNIMSysMsgKeyPushEnable] = need_push_;
52 if (push_need_prefix_ != BS_NOT_INIT)
53 message[kNIMSysMsgKeyPushNeedPrefix] = push_need_prefix_;
54 if (need_offline_ != BS_NOT_INIT)
55 message[kNIMSysMsgKeyCustomSaveFlag] = need_offline_;
56 if (!push_payload_.empty())
57 message[kNIMSysMsgKeyPushPayload] = GetJsonStringWithNoStyled(push_payload_);
58 if (!push_content_.empty())
59 message[kNIMSysMsgKeyCustomApnsText] = push_content_;
60 if (anti_spam_enable_ != BS_NOT_INIT)
61 message[kNIMSysMsgKeyAntiSpamEnable] = anti_spam_enable_ == BS_TRUE ? 1 : 0;
62 if (!anti_spam_content_.empty())
63 message[kNIMSysMsgKeyAntiSpamContent] = anti_spam_content_;
64 if (!env_config_.empty())
65 message[kNIMSysMsgKeyEnvConfig] = env_config_;
74 if (message.isMember(kNIMSysMsgKeyPushNeedBadge))
75 push_need_badge_ = (BoolStatus)message[kNIMSysMsgKeyPushNeedBadge].asInt() == 1 ? BS_TRUE : BS_FALSE;
76 if (message.isMember(kNIMSysMsgKeyPushEnable))
77 need_push_ = (BoolStatus)message[kNIMSysMsgKeyPushEnable].asInt() == 1 ? BS_TRUE : BS_FALSE;
78 if (message.isMember(kNIMSysMsgKeyPushNeedPrefix))
79 push_need_prefix_ = (BoolStatus)message[kNIMSysMsgKeyPushNeedPrefix].asInt() == 1 ? BS_TRUE : BS_FALSE;
80 if (message.isMember(kNIMSysMsgKeyCustomSaveFlag))
81 need_offline_ = (BoolStatus)message[kNIMSysMsgKeyCustomSaveFlag].asInt() == 1 ? BS_TRUE : BS_FALSE;
82 nim_cpp_wrapper_util::Json::Reader reader;
83 if (!reader.parse(message[kNIMSysMsgKeyPushPayload].asString(), push_payload_) || !push_payload_.isObject())
85 push_content_ = message[kNIMSysMsgKeyCustomApnsText].asString();
86 if (message.isMember(kNIMSysMsgKeyAntiSpamEnable))
87 anti_spam_enable_ = message[kNIMSysMsgKeyAntiSpamEnable].asInt() == 1 ? BS_TRUE : BS_FALSE;
88 anti_spam_content_ = message[kNIMSysMsgKeyAntiSpamContent].asString();
89 if (message.isMember(kNIMSysMsgKeyEnvConfig))
90 env_config_ = message[kNIMSysMsgKeyEnvConfig].asString();
115 , total_unread_count_(0)
116 , type_(kNIMSysMsgTypeUnknown)
117 , status_(kNIMSysMsgStatusNone)
118 , feature_(kNIMMessageFeatureDefault) {}
125 nim_cpp_wrapper_util::Json::Value values;
126 values[kNIMSysMsgKeyToAccount] = receiver_accid_;
127 values[kNIMSysMsgKeyFromAccount] = sender_accid_;
128 values[kNIMSysMsgKeyType] = type_;
129 values[kNIMSysMsgKeyAttach] = attach_;
130 values[kNIMSysMsgKeyMsg] = content_;
131 values[kNIMSysMsgKeyLocalClientMsgId] = client_msg_id_;
132 values[kNIMSysMsgKeyTime] = timetag_;
133 values[kNIMSysMsgKeyMsgId] = id_;
134 values[kNIMSysMsgKeyLocalStatus] = status_;
136 return GetJsonStringWithNoStyled(values);
146 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseSysMessage(
const std::string& sysmsg_json, SysMessage& msg);
155 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseSysMessages(
const std::string& sysmsgs_json, std::list<SysMessage>& msgs,
int* unread);
163 NIM_SDK_CPPWRAPPER_DLL_API
void ParseSysMessageContent(
const nim_cpp_wrapper_util::Json::Value& content_json, SysMessage& msg);
166 #endif //_NIM_SDK_CPP_SYSMSG_HELPER_H_