diff --git a/lib/serializer.js b/lib/serializer.js index 0d355c1..f7d99ec 100644 --- a/lib/serializer.js +++ b/lib/serializer.js @@ -3,7 +3,8 @@ var _ = require('lodash') var RelUtils = require('./utilities/relationship-utils') var utils = require('./utils') - + +var apiRoot = 'api/v1/'; function defaultBeforeSerialize (options, cb) { cb(null, options) } @@ -33,6 +34,10 @@ function defaultSerialize (options, cb) { } resultData.data = result + + // Overriding data.links as the links were wrong + resultData.data.links = makeLinks(options.topLevelLinks); + if (options.meta) resultData.meta = options.meta /** @@ -60,10 +65,16 @@ function defaultAfterSerialize (options, cb) { } module.exports = function serializer (type, data, relations, options, cb) { + + // #SAM + // as we always have model type based on api versioning lets say api/v1 concatenating this + type = apiRoot + type ; + options = _.clone(options) options.attributes = options.attributes || {} options.isRelationshipRequest = false + options.modelPath = apiRoot + options.modelPath; if (options.topLevelLinks.self.match(/\/relationships\//)) { options.topLevelLinks.related = options.topLevelLinks.self.replace( @@ -238,15 +249,16 @@ function parseRelations (data, relations, options) { } else { toType = utils.pluralForModel(relation.modelTo) } - + + toType = apiRoot + toType // Relationship `links` should always be defined unless this is a // relationship request if (!options.isRelationshipRequest) { + relationships[name] = { links: { related: options.host + - options.restApiRoot + - '/' + + '/' + options.modelPath + '/' + pk + @@ -411,7 +423,7 @@ function handleIncludes (resp, includes, relations, options) { resource.relationships[include].data = included.map(relData => { return { id: String(relData[propertyKey]), - type: plural + type: apiRoot + plural } }) } else { @@ -427,7 +439,7 @@ function handleIncludes (resp, includes, relations, options) { resource.relationships[include].data = { id: String(resource.attributes[include][propertyKey]), - type: plural + type: apiRoot + plural } embeds.push(compoundIncludes) } @@ -482,6 +494,7 @@ function createCompoundIncludes ( includedRelations, options ) { + type = apiRoot + type; var compoundInclude = makeRelation(type, String(relationship[key])) if (options && !_.isEmpty(includedRelations)) {