Skip to content

Commit 984b637

Browse files
fix error handling in item.save().
When item.save(callbackFn) is called with invalid input, the server rejects the request with a 400 response, as expected. The client, however, does not call the given callbackFn to provide the error to the caller. Instead, an uncaught error is thrown trying to wrap the `null` data into a collection. This fixes the problem by only wrapping non-`null` response `data`.
1 parent 927bf14 commit 984b637

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

lib/CollectionItem.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
this.save = function(saveCallback) {
2525
restHandlers.editItem(data.id, kind, changedData, function (error, data, additionalData, req, res) {
26-
var collectionItems = wrapCollectionItems([data], kind, options);
26+
var collectionItems = wrapCollectionItems(data ? [data] : data, kind, options);
2727
saveCallback(error, collectionItems[0], additionalData, req, res);
2828
});
2929

@@ -41,14 +41,14 @@
4141

4242
this.merge = function (withId, callback) {
4343
return restHandlers.mergeItem(data.id, withId, kind, function (error, data, additionalData, req, res) {
44-
var collectionItems = wrapCollectionItems([data], kind, options);
44+
var collectionItems = wrapCollectionItems(data ? [data] : data, kind, options);
4545
callback(error, collectionItems[0], additionalData, req, res);
4646
});
4747
};
4848

4949
this.duplicate = function (callback) {
5050
return restHandlers.duplicateItem(data.id, kind, function (error, data, additionalData, req, res) {
51-
var collectionItems = wrapCollectionItems([data], kind, options);
51+
var collectionItems = wrapCollectionItems(data ? [data] : data, kind, options);
5252
callback(error, collectionItems[0], additionalData, req, res);
5353
});
5454
};

0 commit comments

Comments
 (0)