From 6bfe590b0de90c7ba4b05cd0d771aa82237f6ee7 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Sun, 12 Nov 2017 12:56:41 -0800 Subject: [PATCH] Config to use 1/0 for booleans --- lib/config.coffee | 1 + lib/session.coffee | 2 ++ lib/soap.js | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/lib/config.coffee b/lib/config.coffee index 3b255c5..74b5fc3 100644 --- a/lib/config.coffee +++ b/lib/config.coffee @@ -66,6 +66,7 @@ options = { ACCESS_LOG_FORMAT : {type : 'string', default : ''}, MAX_CONCURRENT_REQUESTS : {type : 'int', default: 20}, DATETIME_MILLISECONDS : {type: 'bool', default: true}, + BOOLEAN_LITERAL : {type: 'bool', default: true} # XML configuration XML_RECOVER : {type : 'bool', default : false}, diff --git a/lib/session.coffee b/lib/session.coffee index b6974de..282cf8d 100644 --- a/lib/session.coffee +++ b/lib/session.coffee @@ -1014,6 +1014,7 @@ generateSetRpcRequest = (sessionContext) -> # Set values GPV_BATCH_SIZE = config.get('GPV_BATCH_SIZE', sessionContext.deviceId) DATETIME_MILLISECONDS = config.get('DATETIME_MILLISECONDS', sessionContext.deviceId) + BOOLEAN_LITERAL = config.get('BOOLEAN_LITERAL', sessionContext.deviceId) parameterValues = [] syncState.spv.forEach((v, k) -> @@ -1038,6 +1039,7 @@ generateSetRpcRequest = (sessionContext) -> name: 'SetParameterValues' parameterList: ([p[0].join('.'), p[1], p[2]] for p in parameterValues) DATETIME_MILLISECONDS: DATETIME_MILLISECONDS + BOOLEAN_LITERAL: BOOLEAN_LITERAL } # Download diff --git a/lib/soap.js b/lib/soap.js index cfc359c..5ebdf3c 100644 --- a/lib/soap.js +++ b/lib/soap.js @@ -216,6 +216,10 @@ function SetParameterValues(xml, methodRequest) { if (methodRequest.DATETIME_MILLISECONDS === false) val = val.replace('.000', ''); } + if (p[2] === 'xsd:boolean' && typeof val === 'boolean') { + if (methodRequest.BOOLEAN_LITERAL === false) + val = +val; + } pvs.node("Value").attr({"xsi:type": p[2]}).text(val); }