From 3e8353fa0e18e4c9ceeaf1f0cdc2c776adbaed6b Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 22 Oct 2017 11:00:48 +0100 Subject: [PATCH] bump waht3words package add msg.payload{lat:lon} option --- parsers/what3words/README.md | 7 +++++++ parsers/what3words/package.json | 2 +- parsers/what3words/what3words.js | 17 +++++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/parsers/what3words/README.md b/parsers/what3words/README.md index 45fd9539..6dd9d356 100644 --- a/parsers/what3words/README.md +++ b/parsers/what3words/README.md @@ -27,6 +27,11 @@ To convert position to words it requires - `msg.location.lat` - `msg.location.lon` +or + + - `msg.payload.lat` + - `msg.payload.lon` + or - `msg.payload` containing a string lat,lon @@ -36,6 +41,8 @@ To convert words to position it requires - `msg.payload` containing a string of _unique.three.words_ + A 3 word string separated by dots. + The API-key is stored in a separate credentials file. diff --git a/parsers/what3words/package.json b/parsers/what3words/package.json index 6d50f509..ea996dc7 100644 --- a/parsers/what3words/package.json +++ b/parsers/what3words/package.json @@ -1,6 +1,6 @@ { "name" : "node-red-node-what3words", - "version" : "0.0.5", + "version" : "0.0.7", "description" : "A Node-RED node to convert locations to/from what3words", "dependencies" : { "geo.what3words" : "^2.0.0" diff --git a/parsers/what3words/what3words.js b/parsers/what3words/what3words.js index ea3c7af1..4d8a2fa3 100644 --- a/parsers/what3words/what3words.js +++ b/parsers/what3words/what3words.js @@ -12,10 +12,19 @@ module.exports = function(RED) { var w1 = /^\*\w{6,31}$/; var w3 = /^\w+\.\w+\.\w+$/; this.on("input", function(msg) { - if (msg.hasOwnProperty("location")) { - var lat = msg.location.lat; - var lon = msg.location.lon; - node.w3w.positionToWords({ position:lat + "," + lon, lang:node.lang }) + if (msg.hasOwnProperty("location") && msg.location.hasOwnProperty("lat") && msg.location.hasOwnProperty("lon")) { + node.w3w.positionToWords({ position:msg.location.lat + "," + msg.location.lon, lang:node.lang }) + .then(function(response) { + msg.payload = response; // prom.cape.pump + if (!msg.hasOwnProperty("topic") || (msg.topic === "")) { msg.topic = "what3words"; } + node.send(msg); + }) + .catch(function(err) { + node.warn(err) + }); + } + else if (msg.hasOwnProperty("payload") && msg.payload.hasOwnProperty("lat") && msg.payload.hasOwnProperty("lon")) { + node.w3w.positionToWords({ position:msg.payload.lat + "," + msg.payload.lon, lang:node.lang }) .then(function(response) { msg.payload = response; // prom.cape.pump if (!msg.hasOwnProperty("topic") || (msg.topic === "")) { msg.topic = "what3words"; }