v0.1.0 -> v0.1.1

This commit is contained in:
2019-12-21 22:46:33 +08:00
parent 198839c0f2
commit b74ca545cb
3 changed files with 12 additions and 3 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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);