[#165,#162,be/dataproxy][s]: simplify dataproxy to return raw fields and records as cleanup and normalization now done in Dataset (cf previous commit).
This commit is contained in:
@@ -10,6 +10,8 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
|
|||||||
// ## load
|
// ## load
|
||||||
//
|
//
|
||||||
// Load data from a URL via the [DataProxy](http://github.com/okfn/dataproxy).
|
// Load data from a URL via the [DataProxy](http://github.com/okfn/dataproxy).
|
||||||
|
//
|
||||||
|
// Returns array of field names and array of arrays for records
|
||||||
my.fetch = function(dataset) {
|
my.fetch = function(dataset) {
|
||||||
var data = {
|
var data = {
|
||||||
url: dataset.url,
|
url: dataset.url,
|
||||||
@@ -27,32 +29,9 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
|
|||||||
dfd.reject(results.error);
|
dfd.reject(results.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename duplicate fieldIds as each field name needs to be
|
|
||||||
// unique.
|
|
||||||
var seen = {};
|
|
||||||
var fields = _.map(results.fields, function(field, index) {
|
|
||||||
var fieldId = field;
|
|
||||||
while (fieldId in seen) {
|
|
||||||
seen[field] += 1;
|
|
||||||
fieldId = field + seen[field];
|
|
||||||
}
|
|
||||||
if (!(field in seen)) {
|
|
||||||
seen[field] = 0;
|
|
||||||
}
|
|
||||||
return { id: fieldId, label: field }
|
|
||||||
});
|
|
||||||
|
|
||||||
// data is provided as arrays so need to zip together with fields
|
|
||||||
var records = _.map(results.data, function(doc) {
|
|
||||||
var tmp = {};
|
|
||||||
_.each(results.fields, function(key, idx) {
|
|
||||||
tmp[key] = doc[idx];
|
|
||||||
});
|
|
||||||
return tmp;
|
|
||||||
});
|
|
||||||
dfd.resolve({
|
dfd.resolve({
|
||||||
records: records,
|
records: results.data,
|
||||||
fields: fields,
|
fields: results.fields,
|
||||||
useMemoryStore: true
|
useMemoryStore: true
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -50,13 +50,13 @@ var sample_gdocs_spreadsheet_data = {
|
|||||||
],
|
],
|
||||||
"xmlns$openSearch": "http://a9.com/-/spec/opensearchrss/1.0/",
|
"xmlns$openSearch": "http://a9.com/-/spec/opensearchrss/1.0/",
|
||||||
"entry": [
|
"entry": [
|
||||||
{
|
|
||||||
"category": [
|
|
||||||
{
|
{
|
||||||
"term": "http://schemas.google.com/spreadsheets/2006#list",
|
"category": [
|
||||||
"scheme": "http://schemas.google.com/spreadsheets/2006"
|
{
|
||||||
}
|
"term": "http://schemas.google.com/spreadsheets/2006#list",
|
||||||
],
|
"scheme": "http://schemas.google.com/spreadsheets/2006"
|
||||||
|
}
|
||||||
|
],
|
||||||
"updated": {
|
"updated": {
|
||||||
"$t": "2010-07-12T18:32:16.200Z"
|
"$t": "2010-07-12T18:32:16.200Z"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user