diff --git a/lib/nodegen.js b/lib/nodegen.js
index affc53a..4d8fb80 100644
--- a/lib/nodegen.js
+++ b/lib/nodegen.js
@@ -331,6 +331,7 @@ function swagger2node(data, options) {
return params.split(',').filter(p => p).some(p => p !== 'body') ? render(content) : '';
}
};
+ var hasServiceParams = swagger.host === undefined || swagger.security !== undefined;
// Create node.js
var nodeSourceCode = CodeGen.getCustomCode({
@@ -344,7 +345,8 @@ function swagger2node(data, options) {
mustache: {
nodeName: data.name,
isBodyParam: isBodyParam,
- isNotBodyParam: isNotBodyParam
+ isNotBodyParam: isNotBodyParam,
+ hasServiceParams: hasServiceParams
},
lint: false,
beautify: false
@@ -367,7 +369,8 @@ function swagger2node(data, options) {
nodeName: data.name,
category: data.category || 'function',
isNotBodyParam: isNotBodyParam,
- hasOptionalParams: hasOptionalParams
+ hasOptionalParams: hasOptionalParams,
+ hasServiceParams: hasServiceParams
},
lint: false,
beautify: false
@@ -407,6 +410,7 @@ function swagger2node(data, options) {
mustache: {
nodeName: data.name,
projectName: data.module,
+ hasServiceParams: hasServiceParams
},
lint: false,
beautify: false
diff --git a/templates/swagger/node.html.mustache b/templates/swagger/node.html.mustache
index 43aa19b..1cf3d42 100644
--- a/templates/swagger/node.html.mustache
+++ b/templates/swagger/node.html.mustache
@@ -1,15 +1,17 @@
-
+{{#hasServiceParams}}
+{{/hasServiceParams}}
diff --git a/templates/swagger/node.js.mustache b/templates/swagger/node.js.mustache
index bdfff21..78ce2cb 100644
--- a/templates/swagger/node.js.mustache
+++ b/templates/swagger/node.js.mustache
@@ -4,7 +4,9 @@ var lib = require('./lib.js');
module.exports = function (RED) {
function {{&className}}Node(config) {
RED.nodes.createNode(this, config);
+ {{#hasServiceParams}}
this.service = RED.nodes.getNode(config.service);
+ {{/hasServiceParams}}
this.method = config.method;
{{#methods}}
@@ -97,8 +99,10 @@ module.exports = function (RED) {
}
});
}
+
RED.nodes.registerType("{{&nodeName}}", {{&className}}Node);
+ {{#hasServiceParams}}
function {{&className}}ServiceNode(n) {
RED.nodes.createNode(this, n);
{{^domain}}
@@ -122,6 +126,7 @@ module.exports = function (RED) {
{{/isSecureBasic}}
{{/isSecure}}
}
+
RED.nodes.registerType("{{&nodeName}}-service", {{&className}}ServiceNode, {
credentials: {
{{#isSecure}}
@@ -139,4 +144,5 @@ module.exports = function (RED) {
temp: { type: "text" }
}
});
+ {{/hasServiceParams}}
};
diff --git a/templates/swagger/test/node_spec.js.mustache b/templates/swagger/test/node_spec.js.mustache
index 20dd70c..64ea10f 100644
--- a/templates/swagger/test/node_spec.js.mustache
+++ b/templates/swagger/test/node_spec.js.mustache
@@ -1,6 +1,6 @@
-var should = require("should");
-var helper = require("node-red-node-test-helper");
-var node = require("../node.js");
+var should = require('should');
+var helper = require('node-red-node-test-helper');
+var node = require('../node.js');
helper.init(require.resolve('node-red'));
@@ -19,9 +19,9 @@ describe('{{&nodeName}} node', function () {
});
it('should be loaded', function (done) {
- var flow = [{ id: "n1", type: "{{&nodeName}}", name: "{{&nodeName}}" }];
+ var flow = [{ id: 'n1', type: '{{&nodeName}}', name: '{{&nodeName}}' }];
helper.load(node, flow, function () {
- var n1 = helper.getNode("n1");
+ var n1 = helper.getNode('n1');
n1.should.have.property('name', '{{&nodeName}}');
done();
});
@@ -30,19 +30,26 @@ describe('{{&nodeName}} node', function () {
{{#methods}}
it('should handle {{&methodName}}()', function (done) {
var flow = [
- { id: "n1", type: "{{&nodeName}}", name: "{{&nodeName}}", wires: [["n2"]],
- method: "{{&methodName}}",
+ { id: 'n1', type: '{{&nodeName}}', name: '{{&nodeName}}',
+ method: '{{&methodName}}',
{{#parameters}}
- {{&methodName}}_{{&camelCaseName}}: "", // (1) define node properties
+ {{&methodName}}_{{&camelCaseName}}: '', // (1) define node properties
{{/parameters}}
- service: "n3" },
- { id: "n2", type: "{{&nodeName}}-service" },
- { id: "n3", type: "helper" }
+ {{#hasServiceParams}}
+ wires: [['n3']],
+ service: 'n2' },
+ { id: 'n2', type: '{{&nodeName}}-service', host: 'http://' }, // (4) define host name
+ {{/hasServiceParams}}
+ {{^hasServiceParams}}
+ wires: [['n3']]
+ },
+ {{/hasServiceParams}}
+ { id: 'n3', type: 'helper' }
];
helper.load(node, flow, function () {
- var n3 = helper.getNode("n3");
- var n1 = helper.getNode("n1");
- n3.on("input", function (msg) {
+ var n3 = helper.getNode('n3');
+ var n1 = helper.getNode('n1');
+ n3.on('input', function (msg) {
try {
msg.should.have.property('payload', '