use super::post_send;
use crate::{wechat::WxApiRequestBuilder, SdkResult};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize)]
pub struct UniformMsg {
pub touser: String,
#[serde(default)]
pub weapp_template_msg: Option<WeappTemplateMsg>,
pub mp_template_msg: MpTemplateMsg,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct WeappTemplateMsg {
pub template_id: String,
pub page: String,
pub form_id: String,
pub data: HashMap<String, Value>,
pub emphasis_keyword: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Value {
pub value: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MpTemplateMsg {
pub appid: String,
pub template_id: String,
pub url: String,
pub miniprogram: String,
pub data: HashMap<String, ValueColor>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ValueColor {
pub value: String,
pub color: String,
}
pub struct UniformMessageModule<'a, T: WxApiRequestBuilder>(pub(crate) &'a T);
impl<'a, T: WxApiRequestBuilder> UniformMessageModule<'a, T> {
pub async fn send(&self, query: &UniformMsg) -> SdkResult<()> {
let url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send";
post_send(self.0, url, query).await
}
}