UNPKG

1.44 kBJavaScriptView Raw
1'use strict';
2
3var _ = require('lodash');
4
5function renameCardTypes(response) {
6 if (response.cardTypes && response.cardTypes.cardType) {
7 _.each(response.cardTypes.cardType, function rename(cardType) {
8 cardType.name = cardType._;
9 delete cardType._;
10 });
11 }
12
13 return response;
14}
15
16function nullifyNilsRecursive(parent, key) {
17 var value = parent[key];
18
19 if (value['xsi:nil'] === 'true') {
20 parent[key] = null;
21 return;
22 }
23
24 if (_.isArray(value) || _.isObject(value)) {
25 _.forEach(value, function (v, k) {
26 return nullifyNilsRecursive(value, k);
27 });
28 }
29}
30
31function nullifyNils(response) {
32 _.forEach(response, function (v, k) {
33 nullifyNilsRecursive(response, k);
34 });
35
36 return response;
37}
38
39// Given a deserialized XML response this function will remove the xml
40// specific nodes that aren't interesting to consumers.
41//
42// - @param {Object} response - the deserialized XML response object
43// - @return {Object} the reponse with the XMl namespace keys removed
44function removeXmlNamespaceKeys(response) {
45 delete response['xmlns:xsi'];
46 delete response['xmlns:xsd'];
47 delete response['xsi:noNamespaceSchemaLocation'];
48 return response;
49}
50
51module.exports.ensureCollections = require('./ensure-collections');
52module.exports.renameCardTypes = renameCardTypes;
53module.exports.removeXmlNamespaceKeys = removeXmlNamespaceKeys;
54module.exports.nullifyNils = nullifyNils;
55module.exports.collectionPaths = require('./collection-paths');