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