Quantcast
Channel: Ember.JS - Latest topics
Viewing all articles
Browse latest Browse all 4828

Creating serializer dynamically

$
0
0

@zardaloop wrote:

Here is the issue I have when I call ds.store.query my server returns data like this :

{
"Job": [
{
"Customer_Name": {
"Primary_Key": "Customer1",
"Contact": "Contact 1"
}
}
]
}

but if I call it using for examle ds.findAll it returns like this :

{
"Job": [
{
"Customer_Name": "Customer1"
}
]
}

so it means the Customer_Name which here is the foreign key or in ember world belong-to type to the customer table does not get resolved.

So I am trying to define a pattern to deal with both scenario in the app//serializer/application.js file using propabbly normalizeQueryResponse to serialize data when ds.store.query is called.
Because I can't define a serializer for Job model when there is two different scenarios for serializing the data, can I ?

Could someone please advise what should I do ?

this is what I have so far but it doesnt work :

normalizeQueryResponse(store, primaryModelClass, payload, id, requestType) {
console.log(payload);

function getListOfkeys(payload) {
  var list = [];
  payload.forEach(function (item) {
    for (var key in item) {
      if (item.hasOwnProperty(key)) {
        if (item[key] !== null && typeof item[key] === 'object') {
          list.pushObject(key);
        }
      }
    }
  }, this);
  return list;
}
var keys = getListOfkeys(payload[Ember.String.capitalize(primaryModelClass.modelName)]);

if (keys.length > 0) {
  let attrs = {};
  keys.forEach(function (key) {
    attrs[key] = {
      serialize: 'records',
      deserialize: 'records'
    }
  }, this);
  Ember.getOwner(store).registry.register('serializer:' + Ember.String.dasherize(primaryModelClass.modelName), DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { attrs: attrs }));
}

var normaliszedResponse = this._normalizeResponse(store, primaryModelClass, payload, id, requestType, true);
return normaliszedResponse;

},

Many thanks in advance

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 4828

Trending Articles