Merge pull request #163 from slmnhq/master

[backend/couchdb][s]: Important bug fix from @slmhq.
This commit is contained in:
Rufus Pollock 2012-06-23 04:08:31 -07:00
commit 2d7e227869

View File

@ -14,9 +14,9 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
// TODO Add user/password arguments for couchdb authentication support.
my.CouchDBWrapper = function(db_url, view_url, options) {
var self = this;
this.endpoint = db_url;
this.view_url = (view_url) ? view_url : db_url+'/'+'_all_docs';
this.options = _.extend({
self.endpoint = db_url;
self.view_url = (view_url) ? view_url : db_url+'/'+'_all_docs';
self.options = _.extend({
dataType: 'json'
},
options);
@ -45,9 +45,9 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
// @return promise compatible deferred object.
this.mapping = function() {
var schemaUrl = self.view_url + '?limit=1&include_docs=true';
var jqxhr = this._makeRequest({
var jqxhr = self._makeRequest({
url: schemaUrl,
dataType: this.options.dataType
dataType: self.options.dataType
});
return jqxhr;
};
@ -58,8 +58,8 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
//
// @return promise compatible deferred object.
this.get = function(_id) {
var base = this.endpoint + '/' + _id;
return this._makeRequest({
var base = self.endpoint + '/' + _id;
return self._makeRequest({
url: base,
dataType: 'json'
});
@ -73,13 +73,13 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
// @return deferred supporting promise API
this.upsert = function(doc) {
var data = JSON.stringify(doc);
url = this.endpoint;
url = self.endpoint;
if (doc._id) {
url += '/' + doc._id;
}
// use a PUT, not a POST to update the document:
// http://wiki.apache.org/couchdb/HTTP_Document_API#POST
return this._makeRequest({
return self._makeRequest({
url: url,
type: 'PUT',
data: data,
@ -95,9 +95,9 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
// @param {Object} id id of object to delete
// @return deferred supporting promise API
this.delete = function(_id) {
url = this.endpoint;
url = self.endpoint;
url += '/' + _id;
return this._makeRequest({
return self._makeRequest({
url: url,
type: 'DELETE',
dataType: 'json'
@ -131,14 +131,14 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {};
// @param {Object} additional couchdb view query options.
// @return deferred supporting promise API
this.query = function(query_object, query_options) {
var norm_q = this._normalizeQuery(query_object);
var url = this.view_url;
var norm_q = self._normalizeQuery(query_object);
var url = self.view_url;
var q = _.extend(query_options, norm_q);
var jqxhr = this._makeRequest({
var jqxhr = self._makeRequest({
url: url,
data: JSON.stringify(q),
dataType: this.options.dataType,
dataType: self.options.dataType,
});
return jqxhr;
}