void MojoDatabase::GetEmailsToDelete(Signal::SlotRef slot) { MojErr err; MojDbQuery query; err = query.from(PopEmailAdapter::POP_EMAIL_KIND); ErrorToException(err); err = query.select(PopEmailAdapter::ID); ErrorToException(err); err = query.select(PopEmailAdapter::SERVER_UID); ErrorToException(err); err = query.select(EmailSchema::FOLDER_ID); ErrorToException(err); err = query.where("_del", MojDbQuery::OpEq, true); ErrorToException(err); query.includeDeleted(true); slot.cancel(); err = m_dbClient.find(slot, query); ErrorToException(err); }
void MojoDatabase::GetEmailsToMove(Signal::SlotRef slot, const MojObject& accountId) { MojErr err; MojDbQuery query; err = query.from(PopEmailAdapter::POP_EMAIL_KIND); ErrorToException(err); err = query.select(PopEmailAdapter::ID); ErrorToException(err); err = query.select("folderId"); ErrorToException(err); err = query.select("destFolderId"); ErrorToException(err); err = query.select("flags"); ErrorToException(err); err = query.select(PopEmailAdapter::SERVER_UID); ErrorToException(err); err = query.where("destFolderId", MojDbQuery::OpNotEq, MojObject()); ErrorToException(err); slot.cancel(); err = m_dbClient.find(slot, query); ErrorToException(err); }
void MojoDatabase::GetEmailSyncList(Signal::SlotRef slot, const MojObject& folderId, const MojInt64& rev, bool desc, MojDbQuery::Page& page, MojInt32 limit) { MojErr err; MojDbQuery query; err = query.from(PopEmailAdapter::POP_EMAIL_KIND);//EmailSchema::Kind::EMAIL); ErrorToException(err); // Select relevant fields err = query.select(PopEmailAdapter::ID); ErrorToException(err); err = query.select(PopEmailAdapter::SERVER_UID); ErrorToException(err); err = query.select(EmailSchema::TIMESTAMP); ErrorToException(err); err = query.where(EmailSchema::FOLDER_ID, MojDbQuery::OpEq, folderId); ErrorToException(err); if (rev > 0) { err = query.where(PopFolderAdapter::LAST_SYNC_REV, MojDbQuery::OpGreaterThan, rev); ErrorToException(err); } query.page(page); // Sort by timestamp descending err = query.order(EmailSchema::TIMESTAMP); ErrorToException(err); query.desc(desc); // Set limit if(limit > 0) { query.limit(limit); } slot.cancel(); // cancel existing slot in case we're in a callback err = m_dbClient.find(slot, query); ErrorToException(err); }
void MojoDatabase::GetDeletedEmails(Signal::SlotRef slot, const MojObject& folderId, const MojInt64& rev, MojDbQuery::Page& page, MojInt32 limit) { MojErr err; MojDbQuery query; err = query.from(PopEmailAdapter::POP_EMAIL_KIND); ErrorToException(err); // Select relevant fields err = query.select(PopEmailAdapter::ID); ErrorToException(err); err = query.select(PopEmailAdapter::SERVER_UID); ErrorToException(err); err = query.where(EmailSchema::FOLDER_ID, MojDbQuery::OpEq, folderId); ErrorToException(err); err = query.where("_del", MojDbQuery::OpEq, true); ErrorToException(err); // Set limit if(limit > 0) { query.limit(limit); } // Make sure deleted objects are returned query.includeDeleted(true); // Set page query.page(page); slot.cancel(); // cancel existing slot in case we're in a callback err = m_dbClient.find(slot, query); ErrorToException(err); }