ghost
Version:
The professional publishing platform
36 lines (28 loc) • 945 B
JavaScript
const debug = require('@tryghost/debug')('api:endpoints:utils:serializers:output:default');
const mappers = require('./mappers');
const mapResponse = (docName, mappable, frame) => {
if (mappers[docName]) {
return mappers[docName](mappable, frame);
} else if (mappable.toJSON) {
return mappable.toJSON(frame.options);
}
return mappable;
};
module.exports = {
all(response, apiConfig, frame) {
const {docName, method} = apiConfig;
debug('serializing', docName, method);
if (!response) {
return;
}
frame.response = {};
if (response.data) {
frame.response[docName] = response.data.map(model => mapResponse(docName, model, frame));
} else {
frame.response[docName] = [mapResponse(docName, response, frame)];
}
if (response.meta) {
frame.response.meta = response.meta;
}
}
};