Skip to content
This repository was archived by the owner on May 13, 2025. It is now read-only.

Commit a95f25e

Browse files
authored
Merge pull request #73 from TwilioDevEd/update-configuration-files
Update configuration files
2 parents 0a26638 + b7151a2 commit a95f25e

File tree

7 files changed

+424
-680
lines changed

7 files changed

+424
-680
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxx
22
TWILIO_AUTH_TOKEN=Your-Twilio-Auth-Token
33
TWILIO_NUMBER=+1707XXXXXXX
4+
NODE_ENV=production

app.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,17 @@ app.use((req, res, next) => {
2929

3030
app.use('/', MessagingRouter());
3131

32+
/**
33+
* production error handler
34+
* no stacktraces leaked to user
35+
*/
36+
// eslint-disable-next-line no-unused-vars
37+
app.use((err, req, res, next) => {
38+
res.status(err.status || 500);
39+
res.send({
40+
message: err.message,
41+
error: {},
42+
});
43+
});
44+
3245
module.exports = app;

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
"name": "receive-mms-node",
33
"version": "1.0.0",
44
"scripts": {
5-
"install": "npm run lint && npm test",
65
"lint": "node_modules/.bin/eslint ./",
76
"start": "node index.js",
8-
"test": "NODE_ENV=test node_modules/.bin/mocha test test/**/*.spec.js"
7+
"test": "NODE_ENV=test node_modules/.bin/mocha test test/**/*.spec.js && yarn run lint"
98
},
109
"description": "How to receive MMS messages with node.js",
1110
"author": {
@@ -45,7 +44,7 @@
4544
"devDependencies": {
4645
"chai": "^4.0.2",
4746
"cheerio": "^1.0.0-rc.1",
48-
"eslint": "^3.19.0",
47+
"eslint": "^8.1.0",
4948
"eslint-config-airbnb": "^15.0.1",
5049
"eslint-plugin-import": "^2.3.0",
5150
"eslint-plugin-jsx-a11y": "^5.0.3",

routes/messaging.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ function MessagingRouter() {
2727
function deleteMediaItem(mediaItem) {
2828
const client = getTwilioClient();
2929

30-
return client
31-
.api.accounts(twilioAccountSid)
30+
return client.api
31+
.accounts(twilioAccountSid)
3232
.messages(mediaItem.MessageSid)
33-
.media(mediaItem.mediaSid).remove();
33+
.media(mediaItem.mediaSid)
34+
.remove();
3435
}
3536

3637
async function SaveMedia(mediaItem) {
@@ -51,14 +52,14 @@ function MessagingRouter() {
5152
}
5253
}
5354

54-
5555
async function handleIncomingSMS(req, res) {
5656
const { body } = req;
5757
const { NumMedia, From: SenderNumber, MessageSid } = body;
5858
let saveOperations = [];
5959
const mediaItems = [];
6060

61-
for (var i = 0; i < NumMedia; i++) { // eslint-disable-line
61+
for (let i = 0; i < NumMedia; i += 1) {
62+
// eslint-disable-line
6263
const mediaUrl = body[`MediaUrl${i}`];
6364
const contentType = body[`MediaContentType${i}`];
6465
const extension = extName.mime(contentType)[0].ext;
@@ -71,20 +72,23 @@ function MessagingRouter() {
7172

7273
await Promise.all(saveOperations);
7374

74-
const messageBody = NumMedia === 0 ?
75-
'Send us an image!' :
76-
`Thanks for sending us ${NumMedia} file(s)`;
75+
const messageBody =
76+
NumMedia === 0
77+
? 'Send us an image!'
78+
: `Thanks for sending us ${NumMedia} file(s)`;
7779

7880
const response = new MessagingResponse();
79-
response.message({
80-
from: twilioPhoneNumber,
81-
to: SenderNumber,
82-
}, messageBody);
81+
response.message(
82+
{
83+
from: twilioPhoneNumber,
84+
to: SenderNumber,
85+
},
86+
messageBody,
87+
);
8388

8489
return res.send(response.toString()).status(200);
8590
}
8691

87-
8892
function getRecentImages() {
8993
return images;
9094
}

send-mms.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ const Twilio = require('twilio');
44
const { twilioAccountSid, twilioAuthToken, twilioPhoneNumber } = config;
55
const client = new Twilio(twilioAccountSid, twilioAuthToken);
66

7-
client.messages.create({
8-
to: twilioPhoneNumber,
9-
from: twilioPhoneNumber,
10-
body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
11-
mediaUrl: 'https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg',
12-
})
13-
.done();
7+
client.messages
8+
.create({
9+
to: twilioPhoneNumber,
10+
from: twilioPhoneNumber,
11+
body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
12+
mediaUrl: 'https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg',
13+
})
14+
.done();

test/messaging.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe('appointment', () => {
3838
beforeEach(() => {
3939
TwilioMock.twiml = Twilio.twiml;
4040
mockery.registerMock('twilio', TwilioMock);
41-
const app = require('../app'); // eslint-disable-line global-require
41+
const app = require('../app');// eslint-disable-line global-require
4242
agent = supertest(app);
4343
});
4444

0 commit comments

Comments
 (0)