@telnyx/node-red-telnyx
Advanced tools
Comparing version 1.1.1 to 1.2.0
{ | ||
"name": "@telnyx/node-red-telnyx", | ||
"description": "A Node-RED node interacting with Telnyx", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"scripts": { | ||
@@ -17,3 +17,3 @@ "test": "echo \"Error: no test specified\" && exit 1" | ||
"license": "MIT", | ||
"homepage": "https://developers.telnyx.com/", | ||
"homepage": "https://developers.telnyx.com/docs/v2/development/node_red/node_red", | ||
"author": "Danilo Smaldone <danilo@telnyx.com> (http://www.telnyx.com/)", | ||
@@ -20,0 +20,0 @@ "contributors": [ |
@@ -19,5 +19,7 @@ | ||
- [ Installation](#install) | ||
- [ Usage](#usage) | ||
- [ Releases](#releases) | ||
- [node-red-telnyx](#node-red-telnyx) | ||
- [Table of Contents](#table-of-contents) | ||
- [Installation](#installation) | ||
- [Usage](#usage) | ||
- [Releases](#releases) | ||
@@ -50,3 +52,3 @@ </div> | ||
To get started, <a href="" target="_new">sign up</a> for a Portal account, then follow the steps in our quickstart guide to buy an SMS-enabled number. | ||
To get started, <a href="https://telnyx.com/sign-up" target="_new">sign up</a> for a Portal account, then follow the steps in our quickstart guide to buy an SMS-enabled number. | ||
@@ -63,2 +65,2 @@ | ||
Look at the reelease section to check the current state | ||
Look at the release section to check the current state |
module.exports = function (RED) { | ||
const telnyx = require("telnyx"); | ||
try { | ||
var apikey = | ||
RED.settings.telnyx // || require(process.env.NR_NODE_PATH + "apikey.js"); | ||
} catch (err) { | ||
console.log(err); | ||
} | ||
// TelnyxAPINode --- Declaration | ||
function TelnyxAPINode(n) { | ||
RED.nodes.createNode(this, n); | ||
this.name = n.name; | ||
// this.uuid = n.uuid; | ||
// this.apikeyv2 = n.apikeyv2; | ||
// https://nodered.org/docs/creating-nodes/credentials | ||
var credentials = this.credentials; | ||
let credentials = this.credentials; | ||
if (credentials) { | ||
this.uuid = credentials.uuid | ||
this.uuid = credentials.uuid; | ||
this.apikeyv2 = credentials.apikeyv2; | ||
} | ||
} | ||
// TelnyxAPINode --- Registration | ||
RED.nodes.registerType("telnyx-api", TelnyxAPINode, { | ||
credentials: { | ||
uuid: "text", | ||
apikeyv2: "password" | ||
} | ||
}) | ||
apikeyv2: "password", | ||
}, | ||
}); | ||
// TelnyxREDNode --- Declaration | ||
function TelnyxREDNode(n) { | ||
@@ -35,34 +29,39 @@ RED.nodes.createNode(this, n); | ||
this.on("input", function (msg, send, done) { | ||
this.api = RED.nodes.getNode(n.telnyx); | ||
// var tSender = "" | ||
let tSender, | ||
tProfile, | ||
tNumber; | ||
let telnyxREDNodeClient; | ||
if (n.product == "2way") { | ||
tSender = n.from; | ||
} else { | ||
tSender = n.alpha || "Sender" | ||
tProfile = n.profile | ||
tSender = n.alpha || "Sender"; | ||
tProfile = n.profile; | ||
} | ||
var tNumber = n.toNum; | ||
tNumber = n.toNum; | ||
try { | ||
var telnyxREDNodeClient = telnyx(this.api.apikeyv2) | ||
telnyxREDNodeClient = telnyx(this.api.apikeyv2); | ||
} catch (err) { | ||
this.error(`telnyxREDNodeClient instance catch ${err}`) | ||
this.error(`telnyxREDNodeClient instance catch ${err}`); | ||
} | ||
if (Object.prototype.toString.call(msg.payload) === '[object Object]') { | ||
msg.payload = JSON.stringify(msg.payload) | ||
if (Object.prototype.toString.call(msg.payload) === "[object Object]") { | ||
msg.payload = JSON.stringify(msg.payload); | ||
} | ||
try { | ||
telnyxREDNodeClient.messages.create({ | ||
messaging_profile_id: tProfile.toString(), | ||
from: tSender.toString(), | ||
to: tNumber.toString(), | ||
text: msg.payload.toString() || "This Telnyx Node-RED SMS" | ||
}).then(function (response) { | ||
msg.payload = response.data | ||
send(msg) | ||
}) | ||
telnyxREDNodeClient.messages | ||
.create({ | ||
messaging_profile_id: tProfile.toString(), | ||
from: tSender.toString(), | ||
to: tNumber.toString(), | ||
text: msg.payload.toString() || "This Telnyx Node-RED SMS", | ||
}) | ||
.then(function (response) { | ||
msg.payload = response.data; | ||
send(msg); | ||
}); | ||
} catch (err) { | ||
this.error(`telnyxREDNodeClient action catch ${err}`) | ||
this.error(`telnyxREDNodeClient action catch ${err}`); | ||
} | ||
@@ -73,4 +72,73 @@ send(msg); | ||
} | ||
// TelnyxREDNode | ||
RED.nodes.registerType("Telnyx", TelnyxREDNode); | ||
// TelnyxREDNode --- Registration | ||
RED.nodes.registerType("telnyx-sms", TelnyxREDNode); | ||
// Telnyx2FAREDNode --- Declaration | ||
function Telnyx2FAREDNode(n) { | ||
RED.nodes.createNode(this, n); | ||
let node = this; | ||
node.on("input", function (msg, send, done) { | ||
node.api = RED.nodes.getNode(n.telnyx); | ||
let vProfile, | ||
vNumber, | ||
vVerify, | ||
vCode; | ||
vProfile = n.profile; | ||
vNumber = n.toNum; | ||
vVerify = msg.payload.verify || false; | ||
vCode = msg.payload.code; | ||
let telnyxREDNodeClient; | ||
try { | ||
telnyxREDNodeClient = telnyx(node.api.apikeyv2); | ||
} catch (err) { | ||
this.error(`telnyxREDNodeClient instance catch ${err}`); | ||
} | ||
if (!vVerify) { | ||
try { | ||
telnyxREDNodeClient.verifications.sms | ||
.create({ | ||
verify_profile_id: vProfile.toString(), | ||
phone_number: vNumber.toString(), | ||
}) | ||
.then(function (response) { | ||
msg.payload = response.data; | ||
send(msg); | ||
}); | ||
} catch (err) { | ||
this.error(`telnyxREDNodeClient.sms action catch ${err}`); | ||
} | ||
} else { | ||
try { | ||
telnyxREDNodeClient.verifications.byPhoneNumber. | ||
submit(vNumber, { | ||
code: vCode, | ||
verify_profile_id: vProfile.toString() | ||
}) | ||
.then(function (response) { | ||
msg.payload = response.data.response_code; | ||
send(msg); | ||
}); | ||
} catch (err) { | ||
this.error(`telnyxREDNodeClient.byPhoneNumber action catch ${err}`); | ||
} | ||
} | ||
send(msg); | ||
console.log("No error"); | ||
// https://nodered.org/docs/creating-nodes/node-js#receiving-messages | ||
if (done) { | ||
done(); | ||
} | ||
}); | ||
} | ||
// Telnyx2FAREDNode --- Registration | ||
RED.nodes.registerType("telnyx-2fa", Telnyx2FAREDNode); | ||
}; |
Sorry, the diff of this file is not supported yet
26372
16
196
63