8000 GitHub - steroids/nest-notifier
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

steroids/nest-notifier

Repository files navigation

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) {

672B
        const response = await this.notifierService.send({
            [NotifierProviderType.CALL]: {
                phone,
            } as INotifierCallOptions,
        });

        code = response[NotifierProviderType.CALL];

        return code;
    }
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
0