"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendSms = void 0; var tslib_1 = require("tslib"); var oak_external_sdk_1 = require("oak-external-sdk"); var assert_1 = require("oak-domain/lib/utils/assert"); var types_1 = require("oak-domain/lib/types"); function sendSms(options, context) { var _a, _b, _c, _d, _e; return tslib_1.__awaiter(this, void 0, void 0, function () { var origin, templateName, mobile, templateParamSet, application, system, _f, platform, systemConfig, platformConfig, accountConfigs, smsConfigs, smsConfigs_1, smsConfigs_1_1, smsConfig, smsConfig_1, accountConfig, template, SmsSdkInstance, data, sendStatus, e_1_1; var e_1, _g; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: origin = options.origin, templateName = options.templateName, mobile = options.mobile, templateParamSet = options.templateParamSet; application = context.getApplication(); system = application.system; _f = system, platform = _f.platform, systemConfig = _f.config; platformConfig = platform.config; accountConfigs = ((_a = systemConfig === null || systemConfig === void 0 ? void 0 : systemConfig.Account) === null || _a === void 0 ? void 0 : _a[origin]) || ((_b = platformConfig === null || platformConfig === void 0 ? void 0 : platformConfig.Account) === null || _b === void 0 ? void 0 : _b[origin]); smsConfigs = ((_c = systemConfig === null || systemConfig === void 0 ? void 0 : systemConfig.Sms) === null || _c === void 0 ? void 0 : _c[origin]) || ((_d = platformConfig === null || platformConfig === void 0 ? void 0 : platformConfig.Sms) === null || _d === void 0 ? void 0 : _d[origin]); if (!accountConfigs || accountConfigs.length === 0 || !smsConfigs || smsConfigs.length === 0) { (0, assert_1.assert)(false, "".concat(origin, "\u77ED\u4FE1\u672A\u914D\u7F6E")); } if (!(origin === 'tencent')) return [3 /*break*/, 9]; _h.label = 1; case 1: _h.trys.push([1, 6, 7, 8]); smsConfigs_1 = tslib_1.__values(smsConfigs), smsConfigs_1_1 = smsConfigs_1.next(); _h.label = 2; case 2: if (!!smsConfigs_1_1.done) return [3 /*break*/, 5]; smsConfig = smsConfigs_1_1.value; smsConfig_1 = smsConfigs[0]; accountConfig = accountConfigs[0]; template = (_e = smsConfig_1.templates) === null || _e === void 0 ? void 0 : _e[templateName]; SmsSdkInstance = oak_external_sdk_1.SmsSdk.getInstance(origin, accountConfig.secretId, accountConfig.secretKey, accountConfig.region, accountConfig.endpoint); return [4 /*yield*/, SmsSdkInstance.sendSms({ PhoneNumberSet: [mobile], SmsSdkAppId: smsConfig_1.smsSdkAppId, SignName: template.signName || smsConfig_1.defaultSignName, TemplateId: template.code, TemplateParamSet: templateParamSet, })]; case 3: data = _h.sent(); sendStatus = data.SendStatusSet[0]; if (sendStatus.Code === 'Ok') { return [2 /*return*/, true]; } console.warn("\u901A\u8FC7\u5FAE\u4FE1\u4E91\u53D1\u9001sms\u5931\u8D25\uFF0C\u7535\u8BDD\u662F".concat(mobile, "\uFF0C\u6A21\u677FId\u662F").concat(template.code), sendStatus); _h.label = 4; case 4: smsConfigs_1_1 = smsConfigs_1.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_1_1 = _h.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 8]; case 7: try { if (smsConfigs_1_1 && !smsConfigs_1_1.done && (_g = smsConfigs_1.return)) _g.call(smsConfigs_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 8: return [3 /*break*/, 10]; case 9: throw new Error('未实现'); case 10: throw new types_1.OakExternalException('尝试发送sms短信失败'); } }); }); } exports.sendSms = sendSms;