Skip to main content

dingtalk_stream/
credential.rs

1//! Credential module for DingTalk Stream SDK
2
3use serde::{Deserialize, Serialize};
4
5/// Credential for authenticating with DingTalk
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct Credential {
8    /// The client ID (app key)
9    pub client_id: String,
10    /// The client secret (app secret)
11    pub client_secret: String,
12}
13
14impl Credential {
15    /// Create a new Credential
16    pub fn new(client_id: String, client_secret: String) -> Self {
17        Self {
18            client_id,
19            client_secret,
20        }
21    }
22
23    pub fn from_env() -> Self {
24        let client_id = std::env::var("DINGTALK_CLIENT_ID")
25            .expect("DINGTALK_CLIENT_ID environment variable must be set");
26        let client_secret = std::env::var("DINGTALK_CLIENT_SECRET")
27            .expect("DINGTALK_CLIENT_SECRET environment variable must be set");
28        Self::new(client_id, client_secret)
29    }
30}