void Ledger::history(const QStringList& keys, const int& pageNumber) { QJsonObject params; params["per_page"] = 100; params["page"] = pageNumber; keysQuery("history", "historySuccess", "historyFailure", params); }
void Ledger::inventory(const QStringList& keys) { keysQuery("inventory", "inventorySuccess", "inventoryFailure"); }
void Ledger::keysQuery(const QString& endpoint, const QString& success, const QString& fail) { QJsonObject requestParams; keysQuery(endpoint, success, fail, requestParams); }
void Ledger::balance(const QStringList& keys) { keysQuery("balance", "balanceSuccess", "balanceFailure"); }
bool UserDataAccess::loadKeyboardLayout(const QString& id, KeyboardLayout* target) { target->setIsValid(false); QSqlDatabase db = database(); if (!db.isOpen()) return false; QSqlQuery keyboardLayoutQuery(db); keyboardLayoutQuery.prepare("SELECT title, name, width, height FROM keyboard_layouts WHERE id = ? LIMIT 1"); keyboardLayoutQuery.bindValue(0, id); keyboardLayoutQuery.exec(); if (keyboardLayoutQuery.lastError().isValid()) { kWarning() << keyboardLayoutQuery.lastError().text(); raiseError(keyboardLayoutQuery.lastError()); return false; } if (!keyboardLayoutQuery.next()) { const QString warning = i18n("No keyboard layout with ID %1", id); kWarning() << warning; raiseError(warning); } target->setId(id); target->setTitle(keyboardLayoutQuery.value(0).toString()); target->setName(keyboardLayoutQuery.value(1).toString()); target->setWidth(keyboardLayoutQuery.value(2).toInt()); target->setHeight(keyboardLayoutQuery.value(3).toInt()); target->clearKeys(); QSqlQuery keysQuery(db); keysQuery.prepare("SELECT id, left, top, width, height, type, finger_index, has_haptic_marker, special_key_type, modifier_id, label FROM keyboard_layout_keys WHERE keyboard_layout_id = ?"); keysQuery.bindValue(0, id); keysQuery.exec(); QSqlQuery keyCharsQuery(db); keyCharsQuery.prepare("SELECT position, character, modifier FROM keyboard_layout_key_chars WHERE key_id = ?"); if (keysQuery.lastError().isValid()) { kWarning() << keysQuery.lastError().text(); raiseError(keysQuery.lastError()); return false; } while (keysQuery.next()) { AbstractKey* abstractKey; KeyTypeId keyType = static_cast<KeyTypeId>(keysQuery.value(5).toInt()); if (keyType == KeyId) { Key* key = new Key(); key->setFingerIndex(keysQuery.value(6).toInt()); key->setHasHapticMarker(keysQuery.value(7).toBool()); keyCharsQuery.bindValue(0, keysQuery.value(0)); keyCharsQuery.exec(); if (keyCharsQuery.lastError().isValid()) { kWarning() << keyCharsQuery.lastError().text(); raiseError(keyCharsQuery.lastError()); return false; } while (keyCharsQuery.next()) { KeyChar* keyChar = new KeyChar(); keyChar->setPosition(static_cast<KeyChar::Position>(keyCharsQuery.value(0).toInt())); keyChar->setValue(keyCharsQuery.value(1).toString().at(0)); keyChar->setModifier(keyCharsQuery.value(2).toString()); key->addKeyChar(keyChar); } abstractKey = key; } else { SpecialKey* specialKey = new SpecialKey(); specialKey->setTypeStr(keysQuery.value(8).toString()); specialKey->setModifierId(keysQuery.value(9).toString()); specialKey->setLabel(keysQuery.value(10).toString()); abstractKey = specialKey; } abstractKey->setLeft(keysQuery.value(1).toInt()); abstractKey->setTop(keysQuery.value(2).toInt()); abstractKey->setWidth(keysQuery.value(3).toInt()); abstractKey->setHeight(keysQuery.value(4).toInt()); target->addKey(abstractKey); } target->setIsValid(true); return true; }