1.14.0 • Published 4 years ago

@rexfng/send v1.14.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

Description

wrapper of sendgrid and various messaging methods to send email, text messages, and make phone calls

Initialize

  1. define enviornment variable EMAIL_PASS by sendgrid api_key
  2. define enviornment variable TWILIO_SID and TWILIO_API_KEY by Twilio credentials
const Send = require('@rexfng/send')
const email = Send.helpers.email

Helper Methods

//returns helpers which can be used for sending emails. Method returns a promise.

const Send = require('@rexfng/send')
const email = Send.helpers.email
email({
    from: "John<john@example.com>", // sender address
    to: "Paul<paul@example.com>", // list of receivers
    subject: "Welcome Message", // Subject line
    text: "Welcome to our service.", // plain text body
    html: "<h1>Welcome to our service.</h1>" // html body
})
	

Router Methods

//returns routes which can be used with express ex.
const express = require('express')
app = express();
app.listen(3000);
const Send = require('@rexfng/send')
app.use('/email', Send.routes.email) //POST
app.use('/sms/send', Send.routes.sms.send) //POST
app.use('/sms/webhook', Send.routes.sms.webhook) 
app.use('/twixml', Send.routes.twixml) 
app.use('/voice', Send.routes.voice) 
	

SMS Send Endpoint

The endpoint takes in JSON Body in the following format http://localhost:3000/sms/send POST

{
	body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
	from: '+16468635472',
	to: ['+16047123445', '+16041234456']
}

Response Code | CODE| MESSAGE | Details | |-----|----------------------|---| | 200 | SUCCESS | OK | | 500 | INTERNAL_ERROR | Server side error |

Response LINK

{
  "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "api_version": "2010-04-01",
  "body": "This is the ship that made the Kessel Run in fourteen parsecs?",
  "date_created": "Thu, 30 Jul 2015 20:12:31 +0000",
  "date_sent": "Thu, 30 Jul 2015 20:12:33 +0000",
  "date_updated": "Thu, 30 Jul 2015 20:12:33 +0000",
  "direction": "outbound-api",
  "error_code": null,
  "error_message": null,
  "from": "+15017122661",
  "messaging_service_sid": null,
  "num_media": "0",
  "num_segments": "1",
  "price": null,
  "price_unit": null,
  "sid": "MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "sent",
  "subresource_uris": {
    "media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Media.json"
  },
  "to": "+15558675310",
  "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
}

SMS Webhook Endpoint

Provide Twilio this endpoint as a webhook and have responses logged in DB {"type": "twilio-webhook"} http://localhost:3000/sms/webhook POST

Voice Endpoint

Provide Twilio this endpoint as a webhook and have responses logged in DB http://localhost:3000/voice POST

{
	url: 'http://demo.twilio.com/docs/voice.xml',
	to: '+123456789',
	from: '+987654321'
}

Response TWIML

{
  "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "annotation": null,
  "answered_by": null,
  "api_version": "2010-04-01",
  "caller_name": null,
  "date_created": "Tue, 31 Aug 2010 20:36:28 +0000",
  "date_updated": "Tue, 31 Aug 2010 20:36:44 +0000",
  "direction": "inbound",
  "duration": "15",
  "end_time": "Tue, 31 Aug 2010 20:36:44 +0000",
  "forwarded_from": "+141586753093",
  "from": "+987654321",
  "from_formatted": "+987654321",
  "group_sid": null,
  "parent_call_sid": null,
  "phone_number_sid": "PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "price": "-0.03000",
  "price_unit": "USD",
  "sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "start_time": "Tue, 31 Aug 2010 20:36:29 +0000",
  "status": "completed",
  "subresource_uris": {
    "notifications": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Notifications.json",
    "recordings": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings.json",
    "feedback": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Feedback.json",
    "feedback_summaries": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/FeedbackSummary.json",
    "payments": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Payments.json"
  },
  "to": "+123456789",
  "to_formatted": "+123456789",
  "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
}

Twixml Template Endpoint

Generate Twixml Endpoint with Mustache engine. If template is empty, it renders no content.

GET Query

?template={template_id}&key1=value1&key2=value2
1.14.0

4 years ago

1.13.0

4 years ago

1.12.0

4 years ago

1.11.0

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago