@steroidsjs/nest-notifier
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

nest-notifier

A module for Nest.js application that provides a set of providers for sending SMS, calls, email, push notifications. The following providers are currently available:

Getting started

Install package:

yarn add @steroidsjs/nest-notifier

Create Steroids.js Nest module, based on installed module. Add the necessary providers from the module to the providers array. Connect the NotifierService service and pass the connected providers to it.

import {Module} from '@steroidsjs/nest/infrastructure/decorators/Module';
import coreModule from '@steroidsjs/nest-notifier';
import {INotifierService} from '@steroidsjs/nest-modules/notifier/services/INotifierService';
import {ModuleHelper} from '@steroidsjs/nest/infrastructure/helpers/ModuleHelper';
import {NotifierService} from '@steroidsjs/nest-notifier/domain/services/NotifierService';
import {SmscSmsProvider} from '@steroidsjs/nest-notifier/domain/providers/SmscSmsProvider';
import {FirebasePushProvider} from '@steroidsjs/nest-notifier/domain/providers/FirebasePushProvider';
import {INotifierProviderService} from '@steroidsjs/nest-notifier/domain/interfaces/INotifierProviderService';
import {NotifierSendRequestService} from '@steroidsjs/nest-notifier/domain/services/NotifierSendRequestService';

@Module({
    ...coreModule,
    module: (config) => {
        const module = coreModule.module(config) as any;
        return {
            ...module,
            imports: [],
            providers: [
                ...module.providers,
                SmscSmsProvider,
                FirebasePushProvider,
                ModuleHelper.provide(NotifierService, INotifierService, [
                    INotifierProviderService,
                    NotifierSendRequestService,
                    [
                        SmscSmsProvider,
                        FirebasePushProvider,
                    ],
                ]),
            ],
            exports: [
                INotifierService,
            ],
        };
    },
})
export class NotifierModule {}

Set the environment variables required for the providers you have connected. You can look at the configuration file to determine the required variables. You can also define your own configuration file that implements the INotifierModuleConfig interface and add this file to the module.

Note: For FirebasePushProvider to work, you need to get the Firebase server key and specify the path to it in your OS environment variable GOOGLE_APPLICATION_CREDENTIALS.

Note: For MailProvider to work, you must also connect MailerModule from @nestjs-modules/mailer to your module

Generate and apply migrations:

yarn cli migrate:generate
yarn cli migrate

After setting up the module, inject INotifierService into the NestJS service you need and send a message using the send method:

export class AuthConfirmService {
    constructor(
        protected readonly notifierService: INotifierService,
    ) {}

    protected async sendCall(config: IAuthConfirmServiceConfig, phone: string) {
        const response = await this.notifierService.send({
            [NotifierProviderType.CALL]: {
                phone,
            } as INotifierCallOptions,
        });

        code = response[NotifierProviderType.CALL];

        return code;
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @steroidsjs/nest-notifier

Weekly Downloads

21

Version

0.1.4

License

MIT

Unpacked Size

363 kB

Total Files

136

Last publish

Collaborators

  • moondela
  • thesamebear
  • syomx
  • stiivenson
  • affka
  • krydenk
  • perlexed
  • dmartynov