@bandwidth/node-bandwidth-extra

Extra functions and middlewares for node-bandwidth

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@bandwidth/node-bandwidth-extra
Minified + gzip package size for @bandwidth/node-bandwidth-extra in KB

Readme

node-bandwidth-extras

npm version Build Status dependencies Known Vulnerabilities

Helper functions and middlewares for node-bandwidth. Read more documentation here.

Install

Run

npm install @bandwidth/node-bandwidth-extra

Examples

Helpers

const {application, phoneNumber} = require("@bandwidth/node-bandwidth-extra");

const appId = await application.getOrCreateApplication(api, 'My app', 'my.domain.com'); // It will return exisitng application Id or create it otherwise

const number = await phoneNumber.getOrCreatePhoneNumber(api, appId, {name: 'Support', areaCode: '910'}); // It will reserve a linked to this app phone number and assign name to it. If number with such name already exists it returns it.

Middlewares

Koa

const {middlewares} = require("@bandwidth/node-bandwidth-extra");

const app = new Koa();
app.use(middlewares.koa({
    name: 'My app', // application name on Bandwidth server
    auth: {userId: 'bandwidthUserId', apiToken: 'bandwidthApiToken', apiSecret: 'bandwidthSecret'}, // Bandwidth auth data
    phoneNumber: { // Options to reserve phone number
        phoneType: 'local',
        areaCode: '910'
    },
    callCallback: async (data, ctx) => {
        // Handle calls events here
        if(data.eventType === 'answer' && ctx.phoneNumber === data.to){
            console.log('Answered');
        }
    }
}));

app.use(async (ctx, next) => {
    console.log(ctx.phoneNumber); // calls and messages to this phone number will be handled by this web app
    await next();
});

Express

const {middlewares} = require("@bandwidth/node-bandwidth-extra");

const app = express();
app.use(middlewares.express({
    name: 'My app', // application name on Bandwidth server
    auth: {userId: 'bandwidthUserId', apiToken: 'bandwidthApiToken', apiSecret: 'bandwidthSecret'}, // Bandwidth auth data
    phoneNumber: { // Options to reserve phone number
        phoneType: 'local',
        areaCode: '910'
    },
    callCallback: async (data, req) => {
        // Handle calls events here
        if(data.eventType === 'answer' && req.phoneNumber === data.to){
            console.log('Answered');
        }
    }
}));

app.use((req, res, next) => {
    console.log(req.phoneNumber); // calls and messages to this phone number will be handled by this web app
    next();
});

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.