Skip to content

Commit d8a7901

Browse files
authored
Merge pull request #21 from dynamiccast/remove-cast-id
Upgrade json-api-serializer to have built-in id casting to string
2 parents e6b6858 + 710baee commit d8a7901

File tree

3 files changed

+2
-38
lines changed

3 files changed

+2
-38
lines changed

lib/api/services/JsonApiService.js

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const _ = require("lodash");
2-
const cleanObject = require('clean-object');
32
const JSONAPISerializer = require('json-api-serializer');
43
const jsonApiValidator = require('../../context-aware-jsonapi-validator/validator');
54
const Serializer = new JSONAPISerializer();
@@ -10,23 +9,6 @@ var createRecord = require('../blueprints/create');
109
var destroyOneRecord = require('../blueprints/destroy');
1110
var updateOneRecord = require('../blueprints/update');
1211

13-
function deepMap(obj, iterator) {
14-
return _.transform(obj, function(result, val, key) {
15-
result[key] = _.isObject(val) ?
16-
deepMap(val, iterator) :
17-
iterator.call(this, val, key, obj);
18-
});
19-
}
20-
21-
function _setIdTypeToString(object) {
22-
23-
if (typeof object['id'] === "number") {
24-
object['id'] = object['id'].toString();
25-
}
26-
27-
return object;
28-
}
29-
3012
module.exports = {
3113

3214
findRecords: findRecords,
@@ -107,22 +89,7 @@ module.exports = {
10789
id: 'id'
10890
});
10991

110-
var dataToSerialize = null;
111-
112-
// JSON API specifies resource IDs MUST be strings
113-
// Let's convert all Sails integer index to strings
114-
if (data instanceof Array) {
115-
dataToSerialize = [];
116-
117-
data.forEach(function(resource) {
118-
var object = _setIdTypeToString(resource);
119-
dataToSerialize.push(object);
120-
});
121-
} else if (typeof data === "object") {
122-
dataToSerialize = _setIdTypeToString(data);
123-
}
124-
125-
var returnedValue = cleanObject(Serializer.serialize(modelName, dataToSerialize));
92+
var returnedValue = Serializer.serialize(modelName, data);
12693
delete returnedValue.jsonapi; // Let's ignore the version for now
12794

12895
return returnedValue;

lib/hook.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
var _ = require('lodash');
66
var util = require('util');
7-
var nodePath = require('path');
87
var pluralize = require('pluralize');
98
var BlueprintController = {
109
create : require('./api/blueprints/create')

package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@
2525
},
2626
"homepage": "https://github.com/dynamiccast/sails-json-api-blueprints#readme",
2727
"dependencies": {
28-
"clean-object": "^1.0.2",
29-
"json-api-serializer": "1.0.0",
28+
"json-api-serializer": "1.1.0",
3029
"jsonapi-validator": "^2.0.0",
3130
"lodash": "3.10.1",
32-
"path": "^0.12.7",
3331
"pluralize": "^2.0.0",
3432
"util": "^0.10.3"
3533
},

0 commit comments

Comments
 (0)