Пример #1
0
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();
}
Пример #2
0
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;
}