Skip to content

Instantly share code, notes, and snippets.

@karimgarza
Forked from jdhines/store.js
Last active August 29, 2015 14:23
Show Gist options
  • Select an option

  • Save karimgarza/384a5211e07e9f4b0158 to your computer and use it in GitHub Desktop.

Select an option

Save karimgarza/384a5211e07e9f4b0158 to your computer and use it in GitHub Desktop.
App.Adapter = DS.RESTAdapter.extend({
serializer: DS.RESTSerializer.extend({
extract: function(loader, json, type, record) {
var newJSON,
root;
root = this.rootForType(type);
newJSON = {};
newJSON[root] = json;
json = newJSON;
this.sideload(loader, type, json, root);
this.extractMeta(loader, type, json);
if (json[root]) {
if (record) {
loader.updateId(record, json[root]);
}
return this.extractRecordRepresentation(loader, type, json[root]);
} else {
return Ember.Logger.warn("Extract requested, but no data given for " + type + ". This may cause weird problems.");
}
},
extractMany: function(loader, json, type, records) {
var i,
newJSON,
objects,
reference,
references,
root;
root = this.rootForType(type);
root = this.pluralize(root);
newJSON = {};
newJSON[root] = json;
json = newJSON;
this.sideload(loader, type, json, root);
this.extractMeta(loader, type, json);
if (json[root]) {
objects = json[root];
references = [];
if (records) {
records = records.toArray();
}
i = 0;
while (i < objects.length) {
if (records) {
loader.updateId(records[i], objects[i]);
}
reference = this.extractRecordRepresentation(loader, type, objects[i]);
references.push(reference);
i++;
}
}
return loader.populateArray(references);
}
})
});
App.Store = DS.Store.extend({
revision: 12,
adapter: App.Adapter.create()
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment