Skip to content

Edgar-P-yan/node-sms-ru

Repository files navigation

node-sms-ru

sms.ru logo

License NPM Badge install size

node-sms-ru это библиотека для работы с API сервиса СМС рассылок sms.ru.

Installation

Используйте пакетный менеджер для установки node-sms-ru:

С помощью npm:

npm install node-sms-ru

Или же с помощью yarn:

yarn add node-sms-ru

Usage

Сначала инициируем класс:

const { SMSRu } = require('node-sms-ru');

const smsRu = new SMSRu('ваш api_id');
// или
const smsRu = new SMSRu('ваш логин', 'ваш пароль');

Отправка СМС:

const sendResult = await smsRu.sendSms({
  to: '+7 000 000 00 00',
  msg: 'Hi'
  // ... описание всех опций можно найти в документации
});

Проверка статуса сообщений:

const statusResult = await smsRu.checkSmsStatuses(['id сообщения']);

Полное описание API находится здесь: edgar-p-yan.github.io/node-sms-ru

Nest.js integration

В модуль встроена интеграция с фреймворком Nest.js.

import { SMSRuModule } from 'node-sms-ru/nestjs'

@Module({
  imports: [SMSRuModule.forRoot({ api_id: 'ваш api_id' })]
})
export class AppModule {}

Или через .forRootAsync()

import { SMSRuModule } from 'node-sms-ru/nestjs'

@Module({
  imports: [
    SMSRuModule.forRootAsync({
      useFactory: (config: ConfigService) => ({
        api_id: config.get('SMS_RU_API_ID'),
      }),
      inject: [ConfigService],
    }),
  ],
})
export class AppModule {}

А после этого используем его в сервисах

import { SMSRu } from 'node-sms-ru';

@Injectable()
export class AppService {
  constructor(private readonly smsRu: SMSRu) {}

  async sendSMSNotification(to: string, msg: string): Promise<void> {
    await this.smsRu.sendSms({ to, msg });
  }
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT