From 0d4d90816215b28bdf4c540ebaffa7373476f85c Mon Sep 17 00:00:00 2001 From: Hector Ortega Date: Thu, 4 May 2017 06:22:41 -0500 Subject: [PATCH] Bump up Twilio version to 3.0.0 --- index.js | 28 ++++++++++++++++++---------- package.json | 2 +- spec/index.spec.js | 16 ++++++++++++++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 120c450..b547203 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,8 @@ const http = require('http'); const express = require('express'); const { urlencoded } = require('body-parser'); const twilio = require('twilio'); +const ClientCapability = twilio.jwt.ClientCapability; +const VoiceResponse = twilio.twiml.VoiceResponse; let app = express(); app.use(express.static(__dirname + '/public')); @@ -11,12 +13,17 @@ app.use(urlencoded({ extended: false })); // Generate a Twilio Client capability token app.get('/token', (request, response) => { - let capability = new twilio.Capability( - process.env.TWILIO_ACCOUNT_SID, - process.env.TWILIO_AUTH_TOKEN + const capability = new ClientCapability({ + accountSid: process.env.TWILIO_ACCOUNT_SID, + authToken: process.env.TWILIO_AUTH_TOKEN + }); + + capability.addScope( + new ClientCapability.OutgoingClientScope({ + applicationSid: process.env.TWILIO_TWIML_APP_SID}) ); - capability.allowClientOutgoing(process.env.TWILIO_TWIML_APP_SID); - let token = capability.generate(); + + const token = capability.toJwt(); // Include token in a JSON response response.send({ @@ -26,12 +33,13 @@ app.get('/token', (request, response) => { // Create TwiML for outbound calls app.post('/voice', (request, response) => { - let twiml = new twilio.TwimlResponse(); - twiml.dial(request.body.number, { - callerId: process.env.TWILIO_NUMBER - }); + const voiceResponse = new VoiceResponse(); + voiceResponse.dial({ + callerId: process.env.TWILIO_NUMBER, + }, request.body.number); + response.type('text/xml'); - response.send(twiml.toString()); + response.send(voiceResponse.toString()); }); let server = http.createServer(app); diff --git a/package.json b/package.json index f1221e8..70821ad 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "dependencies": { "body-parser": "^1.15.2", "express": "^4.14.0", - "twilio": "^2.11.0" + "twilio": "~3.0.0" }, "devDependencies": { "chai": "^3.5.0", diff --git a/spec/index.spec.js b/spec/index.spec.js index 4ca49d7..d6302a4 100644 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -32,3 +32,19 @@ describe('index route', function () { }); }); }); + +describe('token route', function () { + describe('GET /token', function () { + it('responds with token', function (done) { + var testApp = supertest(app); + testApp + .get('/token') + .expect(200) + .end(function(err, res) { + const jsonResponse = JSON.parse(res.text); + expect(jsonResponse.token.length).to.be.above(0); + done(); + }); + }); + }); +});