wuwenjing
3 years ago
5 changed files with 99 additions and 0 deletions
@ -0,0 +1,70 @@ |
|||||
|
const NotificationProvider = require("./notification-provider"); |
||||
|
const { DOWN, UP } = require("../../src/util"); |
||||
|
const Core = require("@alicloud/pop-core"); |
||||
|
|
||||
|
class AliyunSMS extends NotificationProvider { |
||||
|
name = "AliyunSMS"; |
||||
|
|
||||
|
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { |
||||
|
let okMsg = "Sent Successfully."; |
||||
|
|
||||
|
try { |
||||
|
var client = new Core({ |
||||
|
accessKeyId: notification.accessKeyId, |
||||
|
accessKeySecret: notification.secretAccessKey, |
||||
|
endpoint: "https://dysmsapi.aliyuncs.com", |
||||
|
apiVersion: "2017-05-25", |
||||
|
}); |
||||
|
|
||||
|
var params = { |
||||
|
PhoneNumbers: notification.phonenumber, |
||||
|
TemplateCode: notification.templateCode, |
||||
|
SignName: notification.signName, |
||||
|
TemplateParam: JSON.stringify({ |
||||
|
name: "", |
||||
|
time: "", |
||||
|
status: "", |
||||
|
msg: msg, |
||||
|
}), |
||||
|
}; |
||||
|
|
||||
|
if (heartbeatJSON != null) { |
||||
|
params.TemplateParam = JSON.stringify({ |
||||
|
name: monitorJSON["name"], |
||||
|
time: heartbeatJSON["time"], |
||||
|
status: this.statusToString(heartbeatJSON["status"]), |
||||
|
msg: heartbeatJSON["msg"], |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
var requestOption = { |
||||
|
method: "POST", |
||||
|
}; |
||||
|
|
||||
|
await client.request("SendSms", params, requestOption).then( |
||||
|
(result) => { |
||||
|
console.log(JSON.stringify(result)); |
||||
|
return okMsg; |
||||
|
}, |
||||
|
(ex) => { |
||||
|
console.log(ex); |
||||
|
} |
||||
|
); |
||||
|
} catch (error) { |
||||
|
this.throwGeneralAxiosError(error); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
statusToString(status) { |
||||
|
switch (status) { |
||||
|
case DOWN: |
||||
|
return "DOWN"; |
||||
|
case UP: |
||||
|
return "UP"; |
||||
|
default: |
||||
|
return status; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = AliyunSMS; |
@ -0,0 +1,24 @@ |
|||||
|
<template> |
||||
|
<div class="mb-3"> |
||||
|
<label for="accessKeyId" class="form-label">{{ $t("AccessKeyId") }}<span style="color: red;"><sup>*</sup></span></label> |
||||
|
<input id="accessKeyId" v-model="$parent.notification.accessKeyId" type="text" class="form-control" required> |
||||
|
|
||||
|
<label for="secretAccessKey" class="form-label">{{ $t("SecretAccessKey") }}<span style="color: red;"><sup>*</sup></span></label> |
||||
|
<input id="secretAccessKey" v-model="$parent.notification.secretAccessKey" type="text" class="form-control" required> |
||||
|
|
||||
|
<label for="phonenumber" class="form-label">{{ $t("Phonenumber") }}<span style="color: red;"><sup>*</sup></span></label> |
||||
|
<input id="phonenumber" v-model="$parent.notification.phonenumber" type="text" class="form-control" required> |
||||
|
|
||||
|
<label for="templateCode" class="form-label">{{ $t("TemplateCode") }}<span style="color: red;"><sup>*</sup></span></label> |
||||
|
<input id="templateCode" v-model="$parent.notification.templateCode" type="text" class="form-control" required> |
||||
|
|
||||
|
<label for="signName" class="form-label">{{ $t("SignName") }}<span style="color: red;"><sup>*</sup></span></label> |
||||
|
<input id="signName" v-model="$parent.notification.signName" type="text" class="form-control" required> |
||||
|
|
||||
|
<div class="form-text"> |
||||
|
<i18n-t tag="p" keypath="Read more:"> |
||||
|
<a href="https://help.aliyun.com/document_detail/101414.html" target="_blank">https://help.aliyun.com/document_detail/101414.html</a> |
||||
|
</i18n-t> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
Loading…
Reference in new issue