const system = require("../system");
const Core = require('@alicloud/pop-core');
class SmsClient {
  constructor() {
    this.smsTeml = "http://123.57.156.109:4103/api/Send";
    this.restClient = system.getObject("util.restClient");
    this.aliclient = new Core({
      accessKeyId: 'LTAI4FtNp3wcqFzaADvo1WtZ',
      accessKeySecret: 'VBKn1Anx4UmMF0LKNz7PVaCFG1phcg',
      endpoint: 'https://dysmsapi.aliyuncs.com',
      apiVersion: '2017-05-25'
    });

  }

  async aliSendMsg(to, tmplcode, signName, jsonContent) {
    var params = {
      "RegionId": "default",
      "PhoneNumbers": to,
      "SignName": signName,
      "TemplateCode": tmplcode,
      "TemplateParam": jsonContent
    }
    var requestOption = {
      method: 'POST'
    };
    this.aliclient.request('SendSms', params, requestOption).then((result) => {
      console.log(JSON.stringify(result));
    }, (ex) => {
      console.log(ex);
    })
  }

  async aliOtherSendMsg(to, accessKeyId, accessKeySecret, tmplcode, signName, jsonContent) {
    var params = {
      "RegionId": "default",
      "PhoneNumbers": to,
      "SignName": signName,
      "TemplateCode": tmplcode,
      "TemplateParam": jsonContent
    };
    var requestOption = {
      method: 'POST'
    };
    var otherAliclient = new Core({
      accessKeyId: accessKeyId,
      accessKeySecret: accessKeySecret,
      endpoint: 'https://dysmsapi.aliyuncs.com',
      apiVersion: '2017-05-25'
    });

    otherAliclient.request('SendSms', params, requestOption).then((result) => {
      console.log(JSON.stringify(result));
    }, (ex) => {
      console.log(ex);
    });
  }

  async sendMsg(to, content) {
    var txtObj = {
      "appId": 8,
      "mobilePhone": to,
      "content": content
    }
    return this.restClient.execPost(txtObj, this.smsTeml);
  }
  async getUidStr(len, radix) {
    var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
    var uuid = [], i;
    radix = radix || chars.length;
    if (len) {
      for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
    } else {
      var r;
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
      uuid[14] = '4';
      for (i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | Math.random() * 16;
          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
        }
      }
    }
    return uuid.join('');
  }

}
module.exports = SmsClient;

//  var sms=new SmsClient();
// sms.aliSendMsg("13381139519","SMS_173946419","iboss",JSON.stringify({code:"hello"}));
