gewe_core/message/
send.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct SendTextRequest<'a> {
6    #[serde(rename = "appId")]
7    pub app_id: &'a str,
8    #[serde(rename = "toWxid")]
9    pub to_wxid: &'a str,
10    pub content: &'a str,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub ats: Option<&'a str>,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, Default)]
16#[serde(rename_all = "camelCase")]
17pub struct SendTextResponse {
18    pub to_wxid: String,
19    pub create_time: i64,
20    pub msg_id: i64,
21    pub new_msg_id: i64,
22    #[serde(rename = "type")]
23    pub msg_type: i32,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct PostImageRequest<'a> {
29    #[serde(rename = "appId")]
30    pub app_id: &'a str,
31    #[serde(rename = "toWxid")]
32    pub to_wxid: &'a str,
33    #[serde(rename = "imgUrl")]
34    pub img_url: &'a str,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize, Default)]
38#[serde(rename_all = "camelCase")]
39pub struct PostImageResponse {
40    pub to_wxid: String,
41    pub create_time: i64,
42    pub msg_id: i64,
43    pub new_msg_id: i64,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub r#type: Option<i32>,
46    pub aes_key: String,
47    pub file_id: String,
48    pub length: i64,
49    pub width: i64,
50    pub height: i64,
51    pub md5: String,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(rename_all = "camelCase")]
56pub struct PostVoiceRequest<'a> {
57    #[serde(rename = "appId")]
58    pub app_id: &'a str,
59    #[serde(rename = "toWxid")]
60    pub to_wxid: &'a str,
61    #[serde(rename = "voiceUrl")]
62    pub voice_url: &'a str,
63    #[serde(rename = "voiceDuration")]
64    pub voice_duration: i64,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize, Default)]
68#[serde(rename_all = "camelCase")]
69pub struct PostVoiceResponse {
70    pub to_wxid: String,
71    pub create_time: i64,
72    pub msg_id: i64,
73    pub new_msg_id: i64,
74    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
75    pub msg_type: Option<i32>,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(rename_all = "camelCase")]
80pub struct PostVideoRequest<'a> {
81    #[serde(rename = "appId")]
82    pub app_id: &'a str,
83    #[serde(rename = "toWxid")]
84    pub to_wxid: &'a str,
85    #[serde(rename = "videoUrl")]
86    pub video_url: &'a str,
87    #[serde(rename = "thumbUrl")]
88    pub thumb_url: &'a str,
89    #[serde(rename = "videoDuration")]
90    pub video_duration: i64,
91}
92
93#[derive(Debug, Clone, Serialize, Deserialize, Default)]
94#[serde(rename_all = "camelCase")]
95pub struct PostVideoResponse {
96    pub to_wxid: String,
97    #[serde(default, skip_serializing_if = "Option::is_none")]
98    pub create_time: Option<i64>,
99    pub msg_id: i64,
100    pub new_msg_id: i64,
101    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
102    pub msg_type: Option<i32>,
103    pub aes_key: String,
104    pub file_id: String,
105    pub length: i64,
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize)]
109#[serde(rename_all = "camelCase")]
110pub struct PostFileRequest<'a> {
111    #[serde(rename = "appId")]
112    pub app_id: &'a str,
113    #[serde(rename = "toWxid")]
114    pub to_wxid: &'a str,
115    #[serde(rename = "fileUrl")]
116    pub file_url: &'a str,
117    #[serde(rename = "fileName")]
118    pub file_name: &'a str,
119}
120
121pub type PostFileResponse = SendTextResponse;
122
123#[derive(Debug, Clone, Serialize, Deserialize)]
124#[serde(rename_all = "camelCase")]
125pub struct PostLinkRequest<'a> {
126    #[serde(rename = "appId")]
127    pub app_id: &'a str,
128    #[serde(rename = "toWxid")]
129    pub to_wxid: &'a str,
130    pub title: &'a str,
131    pub desc: &'a str,
132    #[serde(rename = "linkUrl")]
133    pub link_url: &'a str,
134    #[serde(rename = "thumbUrl")]
135    pub thumb_url: &'a str,
136}
137
138pub type PostLinkResponse = SendTextResponse;
139
140#[derive(Debug, Clone, Serialize, Deserialize)]
141#[serde(rename_all = "camelCase")]
142pub struct PostEmojiRequest<'a> {
143    #[serde(rename = "appId")]
144    pub app_id: &'a str,
145    #[serde(rename = "toWxid")]
146    pub to_wxid: &'a str,
147    #[serde(rename = "emojiMd5")]
148    pub emoji_md5: &'a str,
149    #[serde(rename = "emojiSize")]
150    pub emoji_size: i64,
151}
152
153#[derive(Debug, Clone, Serialize, Deserialize, Default)]
154#[serde(rename_all = "camelCase")]
155pub struct PostEmojiResponse {
156    pub to_wxid: String,
157    pub create_time: i64,
158    pub msg_id: i64,
159    pub new_msg_id: i64,
160    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
161    pub msg_type: Option<i32>,
162}
163
164#[derive(Debug, Clone, Serialize, Deserialize)]
165#[serde(rename_all = "camelCase")]
166pub struct PostAppMsgRequest<'a> {
167    #[serde(rename = "appId")]
168    pub app_id: &'a str,
169    #[serde(rename = "toWxid")]
170    pub to_wxid: &'a str,
171    pub appmsg: &'a str,
172}
173
174pub type PostAppMsgResponse = SendTextResponse;
175
176#[derive(Debug, Clone, Serialize, Deserialize)]
177#[serde(rename_all = "camelCase")]
178pub struct PostMiniAppRequest<'a> {
179    #[serde(rename = "appId")]
180    pub app_id: &'a str,
181    #[serde(rename = "toWxid")]
182    pub to_wxid: &'a str,
183    #[serde(rename = "miniAppId")]
184    pub mini_app_id: &'a str,
185    #[serde(rename = "displayName")]
186    pub display_name: &'a str,
187    #[serde(rename = "pagePath")]
188    pub page_path: &'a str,
189    #[serde(rename = "coverImgUrl")]
190    pub cover_img_url: &'a str,
191    pub title: &'a str,
192    #[serde(rename = "userName")]
193    pub user_name: &'a str,
194}
195
196pub type PostMiniAppResponse = SendTextResponse;
197
198#[derive(Debug, Clone, Serialize, Deserialize)]
199#[serde(rename_all = "camelCase")]
200pub struct PostNameCardRequest<'a> {
201    #[serde(rename = "appId")]
202    pub app_id: &'a str,
203    #[serde(rename = "toWxid")]
204    pub to_wxid: &'a str,
205    #[serde(rename = "nickName")]
206    pub nick_name: &'a str,
207    #[serde(rename = "nameCardWxid")]
208    pub name_card_wxid: &'a str,
209}
210
211pub type PostNameCardResponse = SendTextResponse;