# `NestJS` 云之讯短信服务集成插件

注意：<font color="#dd0000">仍在开发中，目前仅在内部使用</font><br /> 

## 支持环境

* node >=`14.x`
* NestJS >= `7.x`

## 安装

```shell
$ npm i @lantsang/nestjs-ucpaas-sms

or
$ yarn add @lantsang/nestjs-ucpaas-sms  # 推荐使用yarn
```

## 配置

### 同步方式

```typescript
import { Module } from '@nestjs/common';
import { UcpaasModule } from '@lantsang/nestjs-ucpaas-sms'

@Module({
  imports: [
    UcpaasModule.forRoot({
      appid: '你的云之讯平台appid', 
      sid: '你的云之讯平台sid',
      token: '你的云之讯平台token'
    })
  ]
})
export class AppModule { }
```

### 异步方式

```typescript
import { Module } from '@nestjs/common';
import { UcpaasModule } from '@lantsang/nestjs-ucpaas-sms'
import { ConfigModule } from './modules/config/config.module';
import { CONFIG_PROVIDER } from './modules/config/constants/config.constant';
import { ConfigService } from './modules/config/services/config.service';

@Module({
  imports: [
    UcpaasModule.forRootAsync({
      useFactory: (configService: ConfigService) => ({
        appid: configService.ucpaas.appid,
        sid: configService.ucpaas.sid,
        token: configService.ucpaas.token
      }),
      inject: [CONFIG_PROVIDER]
    }),
    ConfigModule
  ]
})
export class AppModule { }
```

> 提示：异步注册方式采用的 `ConfigModule` 并不是 `NestJS` 自带的配置功能，而是我基于官方自己设计的一套，具体实现请参考笔记：[NestJS配置模块设计](https://github.com/IricBing/note/blob/master/NodeJS/NestJS/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/%E9%85%8D%E7%BD%AE%E6%A8%A1%E5%9D%97%E8%AE%BE%E8%AE%A1/README.md)

## 文档地址

* [私有Gitlab](https://gitlab.lantsang.cn/nestjs-plugins/nestjs-ucpaas-sms/tree/master/docs)
* [GitHub](https://github.com/lantsang/nestjs-ucpaas-sms/tree/master/docs)
* [Gitee](https://gitee.com/lantsang/nestjs-ucpaas-sms/tree/master/docs)
