diff --git a/demo/built.html b/demo/built.html index c1c1ae5e..4772e032 100644 --- a/demo/built.html +++ b/demo/built.html @@ -39,7 +39,7 @@ diff --git a/src/backend/webstore.js b/src/backend/webstore.js deleted file mode 100644 index b08bfdfa..00000000 --- a/src/backend/webstore.js +++ /dev/null @@ -1,61 +0,0 @@ -this.recline = this.recline || {}; -this.recline.Backend = this.recline.Backend || {}; - -(function($, my) { - // ## Webstore Backend - // - // Connecting to [Webstores](http://github.com/okfn/webstore) - // - // To use this backend ensure your Dataset has a webstore_url in its attributes. - my.Webstore = Backbone.Model.extend({ - sync: function(method, model, options) { - if (method === "read") { - if (model.__type__ == 'Dataset') { - var base = model.get('webstore_url'); - var schemaUrl = base + '/schema.json'; - var jqxhr = $.ajax({ - url: schemaUrl, - dataType: 'jsonp', - jsonp: '_callback' - }); - var dfd = $.Deferred(); - my.wrapInTimeout(jqxhr).done(function(schema) { - var fieldData = _.map(schema.data, function(item) { - item.id = item.name; - delete item.name; - return item; - }); - model.fields.reset(fieldData); - model.docCount = schema.count; - dfd.resolve(model, jqxhr); - }) - .fail(function(arguments) { - dfd.reject(arguments); - }); - return dfd.promise(); - } - } - }, - query: function(model, queryObj) { - var base = model.get('webstore_url'); - var data = { - _limit: queryObj.size - , _offset: queryObj.from - }; - var jqxhr = $.ajax({ - url: base + '.json', - data: data, - dataType: 'jsonp', - jsonp: '_callback', - cache: true - }); - var dfd = $.Deferred(); - jqxhr.done(function(results) { - dfd.resolve(results.data); - }); - return dfd.promise(); - } - }); - recline.Model.backends['webstore'] = new my.Webstore(); - -}(jQuery, this.recline.Backend)); diff --git a/test/backend.test.js b/test/backend.test.js index 9f5475bd..e5b1f7cf 100644 --- a/test/backend.test.js +++ b/test/backend.test.js @@ -90,122 +90,6 @@ test('Memory Backend: update and delete', function () { }); }); -// TODO: move to fixtures -var webstoreSchema = { - "count": 3, - "data": [ - { - "name": "__id__", - "type": "integer", - "values_url": "/rufuspollock/demo/data/distinct/__id__" - }, - { - "name": "date", - "type": "text", - "values_url": "/rufuspollock/demo/data/distinct/date" - }, - { - "name": "geometry", - "type": "text", - "values_url": "/rufuspollock/demo/data/distinct/geometry" - }, - { - "name": "amount", - "type": "text", - "values_url": "/rufuspollock/demo/data/distinct/amount" - } - ], - "fields": [ - { - "name": "type" - }, - { - "name": "name" - }, - { - "name": "values_url" - } - ] -}; - -webstoreData = { - "count": null, - "data": [ - { - "__id__": 1, - "amount": "100", - "date": "2009-01-01", - "geometry": null - }, - { - "__id__": 2, - "amount": "200", - "date": "2010-01-01", - "geometry": null - }, - { - "__id__": 3, - "amount": "300", - "date": "2011-01-01", - "geometry": null - } - ], - "fields": [ - { - "name": "__id__" - }, - { - "name": "date" - }, - { - "name": "geometry" - }, - { - "name": "amount" - } - ] -}; - -test('Webstore Backend', function() { - var dataset = new recline.Model.Dataset({ - id: 'my-id', - webstore_url: 'http://webstore.test.ckan.org/rufuspollock/demo/data' - }, - 'webstore' - ); - var stub = sinon.stub($, 'ajax', function(options) { - if (options.url.indexOf('schema.json') != -1) { - return { - done: function(callback) { - callback(webstoreSchema); - return this; - }, - fail: function() { - return this; - } - } - } else { - return { - done: function(callback) { - callback(webstoreData); - }, - fail: function() { - } - } - } - }); - - dataset.fetch().done(function(dataset) { - deepEqual(['__id__', 'date', 'geometry', 'amount'], _.pluck(dataset.fields.toJSON(), 'id')); - equal(3, dataset.docCount) - dataset.query().done(function(docList) { - equal(3, docList.length) - equal("2009-01-01", docList.models[0].get('date')); - }); - }); - $.ajax.restore(); -}); - var dataProxyData = { "data": [