diff --git a/lib/link/messages.js b/lib/link/messages.js index 3f86989e..4cc1bd7a 100644 --- a/lib/link/messages.js +++ b/lib/link/messages.js @@ -10,11 +10,10 @@ const errors = require("lib/errors"); */ class Request { constructor({ - type, sources, targets, requestProperties = {}, responseProperties = {} + type, links, requestProperties = {}, responseProperties = {} }) { this.type = type; - this.sources = sources; - this.targets = targets; + this.links = links; this.requestType = type + '_request'; this.responseType = type + '_response'; @@ -76,12 +75,12 @@ class Request { */ attach(link, handler) { // Source side. - if (this.sources.includes(link.source) && this.targets.includes(link.target)) { + if (this.links.includes(`${link.source}-${link.target}`)) { link.setValidator(this.responseType, this._responseValidator); } // Target side. Note: Source and target is reversed here. - if (this.targets.includes(link.source) && this.sources.includes(link.target)) { + if (this.links.includes(`${link.target}-${link.source}`)) { if (!handler) { throw new Error(`Missing handler for ${this.requestType} on ${link.target}-${link.source} link`); } @@ -145,8 +144,7 @@ class InstanceRequest { }) { this._masterRequest = new Request({ type: type + '_master', - sources, - targets: ['master'], + links: sources.map(source => `${source}-master`), requestProperties: { "instance_id": { type: "integer" }, ...requestProperties, @@ -155,8 +153,7 @@ class InstanceRequest { }); this._slaveRequest = new Request({ type: type + '_slave', - sources: ['master'], - targets: ['slave'], + links: ['master-slave'], requestProperties: { "instance_id": { type: "integer" }, ...requestProperties, @@ -224,8 +221,7 @@ let messages = {} // Management requests messages.listSlaves = new Request({ type: 'list_slaves', - sources: ['control'], - targets: ['master'], + links: ['control-master'], responseProperties: { "list": { type: "array", @@ -246,8 +242,7 @@ messages.listSlaves = new Request({ messages.listInstances = new Request({ type: 'list_instances', - sources: ['control'], - targets: ['master'], + links: ['control-master'], responseProperties: { "list": { type: "array", @@ -266,8 +261,7 @@ messages.listInstances = new Request({ messages.setInstanceOutputSubscriptions = new Request({ type: 'set_instance_output_subscriptions', - sources: ['control'], - targets: ['master'], + links: ['control-master'], requestProperties: { "instance_ids": { type: "array", @@ -278,8 +272,7 @@ messages.setInstanceOutputSubscriptions = new Request({ messages.createInstanceCommand = new Request({ type: 'create_instance', - sources: ['control'], - targets: ['master'], + links: ['control-master'], requestProperties: { "name": { type: "string" }, "slave_id": { type: "integer" }, @@ -288,8 +281,7 @@ messages.createInstanceCommand = new Request({ messages.createInstance = new Request({ type: 'create_instance', - sources: ['master'], - targets: ['slave'], + links: ['master-slave'], requestProperties: { "id": { type: "integer" }, "options": { @@ -347,10 +339,9 @@ messages.sendRcon = new InstanceRequest({ class Event { - constructor({ type, sources, targets, eventProperties = {} }) { + constructor({ type, links, eventProperties = {} }) { this.type = type; - this.sources = sources; - this.targets = targets; + this.links = links; this.eventType = type + '_event'; this._eventValidator = schema.compile({ @@ -368,7 +359,7 @@ class Event { attach(link, handler) { // Target side. Note: Source and target is reversed here. - if (this.targets.includes(link.source) && this.sources.includes(link.target)) { + if (this.links.includes(`${link.target}-${link.source}`)) { if (!handler) { throw new Error(`Missing handler for ${this.eventType} on ${link.target}-${link.source} link`); } @@ -394,8 +385,7 @@ class Event { messages.updateInstances = new Event({ type: 'update_instances', - sources: ['slave'], - targets: ['master'], + links: ['slave-master'], eventProperties: { "instances": { type: "array", @@ -414,8 +404,7 @@ messages.updateInstances = new Event({ messages.instanceOutput = new Event({ type: 'instance_output', - sources: ['slave', 'master'], - targets: ['master', 'control'], + links: ['slave-master', 'master-control'], eventProperties: { "instance_id": { type: "integer" }, "output": { diff --git a/test/lib/link/messages.js b/test/lib/link/messages.js index 92085044..1fa245c6 100644 --- a/test/lib/link/messages.js +++ b/test/lib/link/messages.js @@ -15,8 +15,7 @@ describe("lib/link/messages", function() { describe("class Request", function() { let testRequest = new link.Request({ type: 'test', - sources: 'source', - targets: 'target', + links: ['source-target'], }); describe(".attach()", function() { @@ -114,8 +113,7 @@ describe("lib/link/messages", function() { describe("class Event", function() { let testEvent = new link.Event({ type: 'test', - sources: 'source', - targets: 'target', + links: ['source-target'], }); describe(".attach()", function() {