Skip to content

sinuoslabs/twilio

Repository files navigation

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 [email protected] instead of using the issue tracker.

Contributing

Please see CONTRIBUTING for details.

License

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