v0.1.0 -> v0.1.1
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dingtalk"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
authors = ["Hatter Jiang <jht5945@gmail.com>"]
|
||||
edition = "2018"
|
||||
description = "DingTalk Util"
|
||||
|
||||
@@ -16,6 +16,8 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
#### Changelog
|
||||
|
||||
* v0.1.1
|
||||
* Add `set_default_webhook_url`, default dingtalk webhook url
|
||||
* v0.1.0
|
||||
* Add `DingTalk::send_link(...)`, send link message
|
||||
* v0.0.3
|
||||
|
||||
11
src/lib.rs
11
src/lib.rs
@@ -35,6 +35,7 @@ const DEFAULT_DINGTALK_ROBOT_URL: &str = "https://oapi.dingtalk.com/robot/send?a
|
||||
/// dt.send_message(&DingTalkMessage::new_text("Hello World!").at_all())?;
|
||||
/// ```
|
||||
pub struct DingTalk<'a> {
|
||||
pub default_webhook_url: &'a str,
|
||||
pub access_token: &'a str,
|
||||
pub sec_token: &'a str,
|
||||
}
|
||||
@@ -140,11 +141,17 @@ impl <'a> DingTalk<'a> {
|
||||
/// `access_token` is access token, `sec_token` can be empty `""`
|
||||
pub fn new(access_token: &'a str, sec_token: &'a str) -> Self {
|
||||
DingTalk {
|
||||
default_webhook_url: DEFAULT_DINGTALK_ROBOT_URL,
|
||||
access_token: access_token,
|
||||
sec_token: sec_token,
|
||||
}
|
||||
}
|
||||
|
||||
/// Set default webhook url
|
||||
pub fn set_default_webhook_url(&mut self, default_webhook_url: &'a str) {
|
||||
self.default_webhook_url = default_webhook_url;
|
||||
}
|
||||
|
||||
/// Send DingTalk message
|
||||
pub fn send_message(&self, dingtalk_message: &DingTalkMessage) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut message_json = match dingtalk_message.message_type {
|
||||
@@ -216,7 +223,7 @@ impl <'a> DingTalk<'a> {
|
||||
/// Generate signed dingtalk webhook URL
|
||||
pub fn generate_signed_url(&self) -> String {
|
||||
let mut signed_url = String::with_capacity(1024);
|
||||
signed_url.push_str(DEFAULT_DINGTALK_ROBOT_URL);
|
||||
signed_url.push_str(self.default_webhook_url);
|
||||
signed_url.push_str(&urlencoding::encode(self.access_token));
|
||||
|
||||
if self.sec_token != "" {
|
||||
@@ -234,7 +241,7 @@ impl <'a> DingTalk<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// calc hma_sha256 digest
|
||||
fn calc_hmac_sha256(key: &[u8], message: &[u8]) -> MacResult {
|
||||
let mut hmac = Hmac::new(Sha256::new(), key);
|
||||
hmac.input(message);
|
||||
|
||||
Reference in New Issue
Block a user