MojErr PopBusDispatcher::CredentialsChanged(MojServiceMessage* msg, MojObject& payload) { // cancel shut down if it is in shut down state CancelShutdown(); MojLogTrace(s_log); MojString json; MojErr err = payload.toJson(json); ErrorToException(err); MojLogInfo(s_log, "PopBusDispatcher::CredentialsChanged: payload=%s", json.data()); MojObject accountId; err = payload.getRequired("accountId", accountId); ErrorToException(err); try { ClientPtr client = GetOrCreateClient(accountId); // Calling UpdateAccount will force a folder sync. client->UpdateAccount(payload, true); } catch (const std::exception& e) { MojErrThrowMsg(MojErrInternal, "%s", e.what()); } return msg->replySuccess(); }
MojErr PopBusDispatcher::AccountEnabled(MojServiceMessage* msg, MojObject& payload) { // cacel shut down if it is in shut down state CancelShutdown(); MojLogTrace(s_log); MojLogInfo(s_log, "AccountEnabled's payload: %s", AsJsonString(payload).c_str()); bool enabled = false; MojErr err = payload.getRequired("enabled", enabled); ErrorToException(err); MojObject accountId; err = payload.getRequired("accountId", accountId); ErrorToException(err); if(enabled) { ClientPtr client = GetOrCreateClient(accountId, false); client->EnableAccount(msg, payload); client->UpdateAccount(payload, false); } else { ClientPtr client = GetOrCreateClient(accountId, false); client->DisableAccount(msg, payload); } return MojErrNone; }