[#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:
Rufus Pollock
2012-06-24 14:36:19 +01:00
parent 1fee4c2821
commit 1e550e4437
2 changed files with 10 additions and 31 deletions

View File

@@ -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
}); });
}) })

View File

@@ -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"
}, },