void CWizSync::on_clientLoginDone() { m_kbSync->database()->setDatabaseInfo(WizGlobal()->userInfo().strKbGUID, WizGlobal()->userInfo().strDatabaseServer, "Private", 0); Q_EMIT syncLogined(); m_kbSync->callGetGroupList(); }
bool CWizApiBase::callClientKeepAlive() { CWizApiParamBase param; param.AddString("token", WizGlobal()->token()); return callXmlRpc(SyncMethod_ClientKeepAlive, ¶m); }
void CWizApiBase::_onXmlRpcError(const QString& strMethodName, WizXmlRpcError err, int errorCode, const QString& errorMessage) { // token timeout if (strMethodName == SyncMethod_ClientKeepAlive && err == errorXmlRpcFault) { TOLOG(tr("Token expired, Try to request another")); WizGlobal()->clearToken(); callClientLogin(m_strUserId, m_strPasswd); return; } if (err == errorNetwork) { WizGlobal()->clearToken(); } onXmlRpcError(strMethodName, err, errorCode, errorMessage); }
void CWizGroupAttributeForm::on_clientLoginDone() { QString strExt = QString("token=%1&kb_guid=%2").arg(WizGlobal()->token()).arg(m_strKbGUID); QByteArray bytes = QUrl::toPercentEncoding(strExt); QString strUrl = WizApiGetUrl("wiz", WIZ_CLIENT_VERSION, "view_group", bytes); // use raw url QUrl url; url.setEncodedUrl(strUrl.toAscii()); m_web->load(url); }
bool CWizApiBase::callClientLogin(const QString& strUserId, const QString& strPassword) { if (WizGlobal()->token().isEmpty()) { CWizApiParamBase param; param.AddString("user_id", MakeXmlRpcUserId(strUserId)); param.AddString("password", MakeXmlRpcPassword(strPassword)); return callXmlRpc(SyncMethod_ClientLogin, ¶m); } else { m_strUserId = strUserId; m_strPasswd = strPassword; return callClientKeepAlive(); } }
void CWizSync::on_getGroupListDone(const CWizGroupDataArray& arrayGroup) { m_arrayGroup.assign(arrayGroup.begin(), arrayGroup.end()); // reset database info CWizGroupDataArray::const_iterator it; for (it = m_arrayGroup.begin(); it != m_arrayGroup.end(); it++) { const WIZGROUPDATA& group = *it; if (!m_dbMgr.isOpened(group.strGroupGUID)) { if (!m_dbMgr.open(group.strGroupGUID)) { TOLOG("FATAL: can't open group db for sync!"); continue; } } m_dbMgr.db(group.strGroupGUID).setDatabaseInfo(group.strGroupGUID, group.strDatabaseServer, group.strGroupName, group.nUserGroup); } // close group database not in the list QStringList groups; m_dbMgr.Guids(groups); for (int i = 0; i < groups.size(); i++) { bool found = false; CWizGroupDataArray::const_iterator it; for (it = m_arrayGroup.begin(); it != m_arrayGroup.end(); it++) { const WIZGROUPDATA& group = *it; if (group.strGroupGUID == groups.at(i)) { found = true; break; } } if (!found) { m_dbMgr.close(groups.at(i)); } } // sync user private notes TOLOG(tr("Begin syncing user private data")); m_kbSync->startSync(WizGlobal()->userInfo().strKbGUID); }
CWizApiTokenParam::CWizApiTokenParam(CWizApiBase& api) { AddString("token", WizGlobal()->token()); AddString("kb_guid", api.kbGUID()); }
void CWizApiBase::onXmlRpcReturn(const QString& strMethodName, CWizXmlRpcValue& ret) { if (strMethodName == SyncMethod_ClientLogin) { qDebug() << "[XML-RPC]accounts.clientLogin:\n" << ret.ToString(); WIZUSERINFO userInfo; // pass empty kbguid here is ok if (!ret.ToData<WIZUSERINFO>(userInfo, kbGUID())) { return; } // save user info WizGlobal()->setUserInfo(userInfo); // set kbguid setKbGUID(userInfo.strKbGUID); onClientLogin(userInfo); Q_EMIT clientLoginDone(); } else if (strMethodName == SyncMethod_ClientKeepAlive) { // set kbguid setKbGUID(WizGlobal()->userInfo().strKbGUID); onClientLogin(WizGlobal()->userInfo()); Q_EMIT clientLoginDone(); } else if (strMethodName == SyncMethod_ClientLogout) { onClientLogout(); Q_EMIT clientLogoutDone(); } else if (strMethodName == SyncMethod_CreateAccount) { onCreateAccount(); } else if (strMethodName == SyncMethod_GetUserInfo) { onGetUserInfo(ret); } else if (strMethodName == SyncMethod_GetUserCert) { WIZUSERCERT data; ret.ToData(data, kbGUID()); onGetUserCert(data); } else if (strMethodName == SyncMethod_GetGroupList) { qDebug() << "[XML-RPC]accounts.getGroupKbList:\n" << ret.ToString(); std::deque<WIZGROUPDATA> arrayGroup; ret.ToArray<WIZGROUPDATA>(arrayGroup, kbGUID()); onGetGroupList(arrayGroup); Q_EMIT getGroupListDone(arrayGroup); } // deleteds else if (strMethodName == SyncMethod_GetDeletedList) { std::deque<WIZDELETEDGUIDDATA> arrayData; ret.ToArray<WIZDELETEDGUIDDATA>(arrayData, kbGUID()); onDeletedGetList(arrayData); } else if (strMethodName == SyncMethod_PostDeletedList) { CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { CWizDeletedGUIDDataArray arrayDeleted; onDeletedPostList(arrayDeleted); } else { onDeletedPostList(m_arrayCurrentPostDeletedGUID); } } // tags else if (strMethodName == SyncMethod_GetTagList) { std::deque<WIZTAGDATA> arrayData; ret.ToArray<WIZTAGDATA>(arrayData, kbGUID()); onTagGetList(arrayData); } else if (strMethodName == SyncMethod_PostTagList) { CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { CWizTagDataArray arrayTag; onTagPostList(arrayTag); } else { onTagPostList(m_arrayCurrentPostTag); } } // styles else if (strMethodName == SyncMethod_GetStyleList) { std::deque<WIZSTYLEDATA> arrayData; ret.ToArray<WIZSTYLEDATA>(arrayData, kbGUID()); onStyleGetList(arrayData); } else if (strMethodName == SyncMethod_PostStyleList) { CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { CWizStyleDataArray arrayStyle; onStylePostList(arrayStyle); } else { onStylePostList(m_arrayCurrentPostStyle); } } // documents else if (strMethodName == SyncMethod_GetDocumentList) { std::deque<WIZDOCUMENTDATABASE> arrayData; ret.ToArray<WIZDOCUMENTDATABASE>(arrayData, kbGUID()); onDocumentGetList(arrayData); } else if (strMethodName == SyncMethod_GetDocumentsInfo) { std::deque<WIZDOCUMENTDATABASE> arrayData; ret.ToArray<WIZDOCUMENTDATABASE>(arrayData, kbGUID()); onDocumentsGetInfo(arrayData); } else if (strMethodName == SyncMethod_GetDocumentData) { WIZDOCUMENTDATAEX data; ret.ToData(data, kbGUID()); onDocumentGetData(data); } else if (strMethodName == SyncMethod_PostDocumentData) { CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { WIZDOCUMENTDATAEX doc; onDocumentPostData(doc); } else { onDocumentPostData(m_currentDocument); } } // attachments else if (strMethodName == SyncMethod_GetAttachmentList) { std::deque<WIZDOCUMENTATTACHMENTDATAEX> arrayData; ret.ToArray<WIZDOCUMENTATTACHMENTDATAEX>(arrayData, kbGUID()); onAttachmentGetList(arrayData); } else if (strMethodName == SyncMethod_GetAttachmentsInfo) { std::deque<WIZDOCUMENTATTACHMENTDATAEX> arrayData; ret.ToArray<WIZDOCUMENTATTACHMENTDATAEX>(arrayData, kbGUID()); onAttachmentsGetInfo(arrayData); } else if (strMethodName == SyncMethod_PostAttachmentData) { CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { WIZDOCUMENTATTACHMENTDATAEX data; onAttachmentPostData(data); } else { onAttachmentPostData(m_currentAttachment); } } // trunk data else if (strMethodName == SyncMethod_DownloadObjectPart) { WIZOBJECTPARTDATA data; CWizXmlRpcFaultValue* pFault = dynamic_cast<CWizXmlRpcFaultValue *>(&ret); if (pFault) { onDownloadDataPart(data); } else { data = m_currentObjectPartData; ret.ToData(data, kbGUID()); onDownloadDataPart(data); } } else if (strMethodName == SyncMethod_UploadObjectPart) { onUploadDataPart(); } else { Q_ASSERT(0); } }