module.exports = function(data, options) {
  var type = pluralize(options.resource || options.model.collection.name);
  var keys = options.attributes || Object.keys(options.model.schema.paths);
  var attributes = _.reject(keys, function(key) {
    return key.indexOf('_') === 0;
  });

  if (options.translateId) {
    attributes.push('originalId');
  }

  var schema = {
    attributes: attributes,
    typeForAttribute: function (attribute) {
      var attributeOptions = _.get(options.model.schema.paths, attribute + '.options');
      var referenceType = _.get(attributeOptions, 'ref') || _.get(attributeOptions, 'type.0.ref');
      if (referenceType) {
        return _.lowerCase(pluralize(referenceType));
      }

      if (options.selfReferences && options.selfReferences[attribute]) {
        return options.selfReferences[attribute];
      }

      return attribute;
    },
  };

  attributes.forEach(function(attribute) {
    var attributeOptions = _.get(options.model.schema.paths, attribute + '.options');
    if (_.get(attributeOptions, 'ref') || _.get(attributeOptions, 'type.0.ref')) {
      schema[attribute] = {
        ref: true,
      };
    }
  });

  // add self-reference relationships i.e. the relationship's id is the same as the object id
  if (options.selfReferences) {
    Object.keys(options.selfReferences).forEach(function(key) {
      schema.attributes.push(key);

      if (Array.isArray(data)) {
        data.forEach(item => _.assign(item, { [key]: '****' }));
      } else {
        _.assign(data, { [key]: '****' });
      }

      schema[key] = {
        ref: function(object) {
          return object._id;
        },
      };
    });
  }

  var serializer = new JSONAPISerializer(type, schema);

  return serializer.serialize(data);
};
function format(data) {
    var JSONAPISerializer = require('jsonapi-serializer').Serializer;
    var UserSerializer = new JSONAPISerializer('users', {
      attributes: ['id', 'email', 'password',  'usergrade', 'status', 'userprofile']
    });

    return UserSerializer.serialize(data);
}
function format(data) {
    var JSONAPISerializer = require('jsonapi-serializer').Serializer;
    var TodoItemSerializer = new JSONAPISerializer('todoItems', {
        attributes: ['id', 'userid', 'title',  'checked', 'star',
         'timestamp', 'recordstatus', 'enddate', 'startdate', 'ispublish',
          'ischildorparent', 'childtodos', 'parenttodo', 'remark', 'user', 'category']
    });

    return TodoItemSerializer.serialize(data);
}
Esempio n. 4
0
    static serialize(data, options = {}) {
        let serializer = new Serializer(
            JSON_API_TYPE,
            _.mergeWith(
                SERIALIZER_DEFAULT_OPTIONS,
                options,
                (objValue, srcValue) => {
                    if (_.isArray(objValue)) {
                        return srcValue;
                    }
                }
            )
        );

        return serializer.serialize(data);
    }
Esempio n. 5
0
    static serialize(data, attributes) {
        if (attributes) {
            storySerializer.opts.attributes = attributes.split(',');
        } else {
            storySerializer.opts.attributes = ALL_ATTRIBUTES;
        }

        return storySerializer.serialize(data);
    }
 static serializeLatest(data) {
     return prodesLatestSerializer.serialize(data);
 }
 static serialize(data) {
     return prodesLossSerializer.serialize(data);
 }
 static serializeLatest(data) {
     return gladLatestSerializer.serialize(data);
 }
 static serialize(data) {
     return gladAlertsSerializer.serialize(data);
 }
 static serialize(data) {
     return elasticSerializer.serialize(data);
 }
 static serialize(data) {
   return coverageSerializer.serialize(data);
 }
 static serialize(data) {
     return umdIflSerializer.serialize(data);
 }
Esempio n. 13
0
 static serialize(data) {
   return geoJSONSerializer.serialize(data);
 }
 serialize (payload, includeModelNames) {
   const serializer = new JSONAPISerializer(this._type, this.optsGenerator(includeModelNames, 'serialize'))
   return serializer.serialize(payload)
 }
 static serialize(data) {
   return geoStoreSerializer.serialize(data);
 }
Esempio n. 16
0
 .then(audio => {
   res.json(JSONAPI.serialize(audio));
 })
 static serialize(data) {
   return urthecastSerializer.serialize(data);
 }