string OAuthClient::getSignedUrl(string url, bool post, bool remove, bool put){ // cout << "Get URL signed" << endl; string urlSigned=""; string parameter; size_t pos = url.find(questionMark); string query; if(remove) query = deleteQuery(url, true); else if(post) query = postQuery(url, true); else if(put) query = putQuery(url, true); else query = getQuery(url, true); if(pos!=string::npos){ // if '?' found parameter = url.substr(pos+1, url.size()-1); url = url.substr(0,pos); } urlSigned = url + questionMark + query; return urlSigned; }
static bool putIndexData(SQLiteDatabase& db, IDBKey* key, int64_t indexId, int64_t objectStoreDataId) { SQLiteStatement putQuery(db, "INSERT INTO IndexData (keyString, keyDate, keyNumber, indexId, objectStoreDataId) VALUES (?, ?, ?, ?, ?)"); if (putQuery.prepare() != SQLResultOk) return false; key->bindWithNulls(putQuery, 1); putQuery.bindInt64(4, indexId); putQuery.bindInt64(5, objectStoreDataId); return putQuery.step() == SQLResultDone; }
void IDBObjectStoreBackendImpl::put(PassRefPtr<SerializedScriptValue> prpValue, PassRefPtr<IDBKey> prpKey, bool addOnly, PassRefPtr<IDBCallbacks> callbacks) { RefPtr<SerializedScriptValue> value = prpValue; RefPtr<IDBKey> key = prpKey; if (!m_keyPath.isNull()) { if (key) { callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "A key was supplied for an objectStore that has a keyPath.")); return; } Vector<RefPtr<SerializedScriptValue> > values; values.append(value); Vector<RefPtr<IDBKey> > idbKeys; IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath(values, m_keyPath, idbKeys); if (idbKeys.isEmpty()) { callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "An invalid keyPath was supplied for an objectStore.")); return; } key = idbKeys[0]; } if (!key) { callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::DATA_ERR, "No key supplied.")); return; } SQLiteStatement getQuery(sqliteDatabase(), "SELECT id FROM ObjectStoreData " + whereClause(key->type())); bool ok = getQuery.prepare() == SQLResultOk; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling? bindWhereClause(getQuery, m_id, key.get()); bool existingValue = getQuery.step() == SQLResultRow; if (addOnly && existingValue) { callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::CONSTRAINT_ERR, "Key already exists in the object store.")); return; } String sql = existingValue ? "UPDATE ObjectStoreData SET keyString = ?, keyDate = ?, keyNumber = ?, value = ? WHERE id = ?" : "INSERT INTO ObjectStoreData (keyString, keyDate, keyNumber, value, objectStoreId) VALUES (?, ?, ?, ?, ?)"; SQLiteStatement putQuery(sqliteDatabase(), sql); ok = putQuery.prepare() == SQLResultOk; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling? switch (key->type()) { case IDBKey::StringType: putQuery.bindText(1, key->string()); putQuery.bindNull(2); putQuery.bindNull(3); break; // FIXME: Implement date. case IDBKey::NumberType: putQuery.bindNull(1); putQuery.bindNull(2); putQuery.bindInt(3, key->number()); break; case IDBKey::NullType: putQuery.bindNull(1); putQuery.bindNull(2); putQuery.bindNull(3); break; default: ASSERT_NOT_REACHED(); } putQuery.bindText(4, value->toWireString()); if (existingValue) putQuery.bindInt(5, getQuery.getColumnInt(0)); else putQuery.bindInt64(5, m_id); ok = putQuery.step() == SQLResultDone; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling? callbacks->onSuccess(key.get()); }