@steroidsjs/nest-notifier
v0.2.1
Published
Steroids Nest Notifier Module
Downloads
203
Keywords
Readme
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:
- FirebasePushProvider
- MailProvider
- SmscCallProvider
- SmscSmsProvider
- SmscVoiceMessageProvider
- SmsRuCallProvider
- SmsRuSmsProvider
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;
}
}