/twilio

Twilio channel for NestJS notification

Primary LanguageTypeScriptMIT LicenseMIT

issues npm version license Open Source Helpers

Twilio notification channel for NestJS

This package makes it easy to send Twilio notifications with NestJS.

This package is a sub-module of NestJS notification.

Contents

Installation

::: code

$ npm i @nestjs-notification-channels/twilio
$ yarn add @nestjs-notification-channels/twilio

:::

Configuration

Add your Twilio Account SID, Auth Token, and Sender (optional) to your .env:

TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_SENDER=

Usage

Module declaration

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import {
  NestjsNotificationModule,
  NestjsNotificationModuleOptions,
} from '@sinuos/nestjs-notification';

@Module({
  imports: [
    NestjsNotificationModule.register(<NestjsNotificationModuleOptions>{}),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

You can also declare the account sid, auth token and sender by declaring them like this.

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import {
  NestjsNotificationModule,
  NestjsNotificationModuleOptions,
} from '@sinuos/nestjs-notification';
import { TwilioChannelModule } from '@nestjs-notification-channels/twilio';

@Module({
  imports: [
    NestjsNotificationModule.register(<NestjsNotificationModuleOptions>{}),
    TwilioChannelModule.register({
      twilioAccountSid: 'xxx',
      twilioAuthToken: 'xxx',
      twilioSender: 'xxx', // SENDER OR +212xxxxxx,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Now you can use the channel in your sendToChannels() method inside the notification:

import { NestJsNotification } from '@sinuos/nestjs-notification';
import {
  TwilioChannel,
  TwilioChannelMessage,
  ITwilioChannel,
} from '@nestjs-notification-channels/twilio';

export class OrderedNotification implements NestJsNotification {
  public sendToChannels() {
    return [TwilioChannel];
  }

  toTwilio() {
    return new TwilioChannelMessage()
      .setToFrom('+212xxxxxxxx')
      .setMessage('Your order XXXXX is placed');
  }
}

Available Message methods

TwilioMessage

  • accountSid('') - Optional if account sid is defined in your env.
  • authToken('') - Optional if auth token is defined in your env.
  • sender('') - Optional if sender is defined in your env.
  • message('') - SMS content.
  • toPhoneNumber('') - Your recipient.

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

::: code

$ npm run test
$ yarn test

:::

Security

If you discover any security related issues, please email gregoriohc@gmail.com instead of using the issue tracker.

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.