wecom_rs/client/contact/async_batch/
model.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize, Default)]
4pub struct JobStatus {
5    /// 任务状态,整型,1表示任务开始,2表示任务进行中,3表示任务已完成
6    pub status: i32,
7    /// 操作类型,字节串,目前分别有:
8    /// 1. sync_user(增量更新成员)
9    /// 2. replace_user(全量覆盖成员)
10    /// 3. replace_party(全量覆盖部门)
11    #[serde(rename = "type")]
12    pub kind: JobType,
13    /// 任务运行总条数
14    pub total: i32,
15    /// 目前运行百分比,当任务完成时为100
16    pub percentage: i32,
17    /// 详细的处理结果,具体格式参考下面说明。当任务完成后此字段有效
18    pub result: Vec<Job>,
19}
20
21#[derive(Debug, Deserialize, Serialize, Default)]
22pub enum JobType {
23    /// 增量更新成员
24    #[default]
25    #[serde(rename = "sync_user")]
26    SyncUser,
27    /// 全量覆盖成员
28    #[serde(rename = "replace_user")]
29    ReplaceUser,
30    /// 全量覆盖部门
31    #[serde(rename = "replace_party")]
32    ReplaceParty,
33}
34
35#[derive(Debug, Deserialize, Serialize, Default)]
36pub struct Job {
37    #[serde(rename = "errcode")]
38    pub err_code: String,
39    #[serde(rename = "errmsg")]
40    pub err_msg: i64,
41    #[serde(flatten, skip_serializing_if = "Option::is_none")]
42    pub user: Option<UserId>,
43    #[serde(flatten, skip_serializing_if = "Option::is_none")]
44    pub party: Option<Party>,
45}
46
47/// 用户相关批量异步接口结果
48/// type为sync_user、replace_user时:
49#[derive(Debug, Deserialize, Serialize, Default)]
50pub struct UserId {
51    /// 成员UserID。对应管理端的帐号
52    pub userid: String,
53}
54
55/// 部门相关批量异步接口结果
56/// type为replace_party时:
57#[derive(Debug, Deserialize, Serialize, Default)]
58pub struct Party {
59    /// 操作类型(按位或):
60    /// 1 新建部门 ,
61    /// 2 更改部门名称,
62    /// 4 移动部门,
63    /// 8 修改部门排序
64    pub action: i32,
65    /// 部门ID
66    pub partyid: i64,
67}