From ca042d5fd323ed82a482d2a447e31a522e1a22ad Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 14 Mar 2022 16:49:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E6=96=B0=E5=A2=9E=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E9=82=AE=E7=AE=B1=E4=B8=9A=E5=8A=A1=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WorkClientExecuteCgibinExmailExtensions.cs | 106 ++++++++++++++++++ .../Group/CgibinExmailGroupCreateRequest.cs | 2 +- .../Group/CgibinExmailGroupGetResponse.cs | 2 +- .../Group/CgibinExmailGroupSearchResponse.cs | 9 +- .../Group/CgibinExmailGroupUpdateRequest.cs | 6 +- .../CgibinExmailPublicMailCreateRequest.cs | 66 +++++++++++ .../CgibinExmailPublicMailCreateResponse.cs | 15 +++ .../CgibinExmailPublicMailDeleteRequest.cs | 15 +++ .../CgibinExmailPublicMailDeleteResponse.cs | 9 ++ .../CgibinExmailPublicMailGetRequest.cs | 17 +++ .../CgibinExmailPublicMailGetResponse.cs | 84 ++++++++++++++ .../CgibinExmailPublicMailSearchRequest.cs | 22 ++++ .../CgibinExmailPublicMailSearchResponse.cs | 42 +++++++ .../CgibinExmailPublicMailUpdateRequest.cs | 58 ++++++++++ .../CgibinExmailPublicMailUpdateResponse.cs | 9 ++ .../CgibinExmailGroupSearchResponse.json | 1 - .../CgibinExmailPublicMailCreateRequest.json | 13 +++ .../CgibinExmailPublicMailCreateResponse.json | 5 + .../CgibinExmailPublicMailDeleteRequest.json | 3 + .../CgibinExmailPublicMailDeleteResponse.json | 4 + .../CgibinExmailPublicMailGetRequest.json | 3 + .../CgibinExmailPublicMailGetResponse.json | 20 ++++ .../CgibinExmailPublicMailSearchResponse.json | 16 +++ .../CgibinExmailPublicMailUpdateRequest.json | 13 +++ .../CgibinExmailPublicMailUpdateResponse.json | 4 + 25 files changed, 529 insertions(+), 15 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs index 916fa174..2ecd2c66 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs @@ -115,5 +115,111 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region PublicMail + /// + /// 异步调用 [POST] /cgi-bin/exmail/publicmail/create 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95511 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailPublicMailCreateAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailCreateRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "create") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/exmail/publicmail/update 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95511 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailPublicMailUpdateAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailUpdateRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "update") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/exmail/publicmail/delete 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95511 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailPublicMailDeleteAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailDeleteRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "delete") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /cgi-bin/exmail/publicmail/search 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailPublicMailSearchAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailSearchRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "cgi-bin", "exmail", "publicmail", "search") + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("fuzzy", request.IsFuzzy ? 1 : 0); + + if (request.EmailOrName != null) + flurlReq.SetQueryParam("email", request.EmailOrName); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/exmail/publicmail/get 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailPublicMailGetAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailGetRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs index 83838134..d20fe0b7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs @@ -100,7 +100,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public int? AllowType { get; set; } /// - /// 获取或设置使用权限。 + /// 获取或设置使用的邮箱列表。 /// [Newtonsoft.Json.JsonProperty("allow_emaillist")] [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs index c8bc9264..e299ac59 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs @@ -98,7 +98,7 @@ public int AllowType { get; set; } /// - /// 获取或设置使用权限。 + /// 获取或设置使用的邮箱列表。 /// [Newtonsoft.Json.JsonProperty("allow_emaillist")] [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs index 79ca79cc..c63e8908 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs @@ -10,7 +10,7 @@ public class EmailGroup { /// - /// 获取或设置邮件群组ID。 + /// 获取或设置邮件群组 ID。 /// [Newtonsoft.Json.JsonProperty("groupid")] [System.Text.Json.Serialization.JsonPropertyName("groupid")] @@ -31,12 +31,5 @@ [Newtonsoft.Json.JsonProperty("groups")] [System.Text.Json.Serialization.JsonPropertyName("groups")] public Types.EmailGroup[] EmailGroupList { get; set; } = default!; - - /// - /// 获取或设置返回条数。 - /// - [Newtonsoft.Json.JsonProperty("count")] - [System.Text.Json.Serialization.JsonPropertyName("count")] - public int Count { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs index 72b19717..08438737 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/exmail/group/update 接口的请求。 @@ -76,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public int? AllowType { get; set; } /// - /// 获取或设置使用权限。 + /// 获取或设置使用的邮箱列表。 /// [Newtonsoft.Json.JsonProperty("allow_emaillist")] [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.cs new file mode 100644 index 00000000..97f0a525 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/create 接口的请求。 + /// + public class CgibinExmailPublicMailCreateRequest : WechatWorkRequest + { + public static class Types + { + public class UserIdList + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public IList Items { get; set; } = new List(); + } + + public class TagIdList : CgibinExmailGroupCreateRequest.Types.TagIdList + { + } + + public class DepartmentIdList : CgibinExmailGroupCreateRequest.Types.DepartmentIdList + { + } + } + + /// + /// 获取或设置业务邮箱。 + /// + [Newtonsoft.Json.JsonProperty("email")] + [System.Text.Json.Serialization.JsonPropertyName("email")] + public string Email { get; set; } = string.Empty; + + /// + /// 获取或设置业务邮箱名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = string.Empty; + + /// + /// 获取或设置允许使用的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public Types.UserIdList? AllowUserIdList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.cs new file mode 100644 index 00000000..81f8d415 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/create 接口的响应。 + /// + public class CgibinExmailPublicMailCreateResponse : WechatWorkResponse + { + /// + /// 获取或设置业务邮箱 ID + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.cs new file mode 100644 index 00000000..91dd6958 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/delete 接口的请求。 + /// + public class CgibinExmailPublicMailDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置业务邮箱 ID + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.cs new file mode 100644 index 00000000..cd4ff30d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/delete 接口的响应。 + /// + public class CgibinExmailPublicMailDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.cs new file mode 100644 index 00000000..2f708fea --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/get 接口的请求。 + /// + public class CgibinExmailPublicMailGetRequest : WechatWorkRequest + { + /// + /// 获取或设置业务邮箱 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("id_list")] + [System.Text.Json.Serialization.JsonPropertyName("id_list")] + public IList IdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.cs new file mode 100644 index 00000000..2e139fba --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.cs @@ -0,0 +1,84 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/get 接口的响应。 + /// + public class CgibinExmailPublicMailGetResponse : WechatWorkResponse + { + public static class Types + { + public class Mail + { + public static class Types + { + public class UserIdList + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public string[] Items { get; set; } = default!; + } + + public class TagIdList : CgibinExmailGroupGetResponse.Types.TagIdList + { + } + + public class DepartmentIdList : CgibinExmailGroupGetResponse.Types.DepartmentIdList + { + } + } + + /// + /// 获取或设置业务邮箱 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + + /// + /// 获取或设置业务邮箱地址。 + /// + [Newtonsoft.Json.JsonProperty("email")] + [System.Text.Json.Serialization.JsonPropertyName("email")] + public string Email { get; set; } = default!; + + /// + /// 获取或设置业务邮箱名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置允许使用的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public Types.UserIdList? AllowUserIdList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } + } + + /// + /// 获取或设置业务邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Mail[] MailList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchRequest.cs new file mode 100644 index 00000000..64e134f7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/publicmail/search 接口的请求。 + /// + public class CgibinExmailPublicMailSearchRequest : WechatWorkRequest + { + /// + /// 获取或设置是否开启模糊搜索。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public bool IsFuzzy { get; set; } + + /// + /// 获取或设置业务邮箱或名称。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? EmailOrName { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.cs new file mode 100644 index 00000000..8fd4e07e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/publicmail/search 接口的响应。 + /// + public class CgibinExmailPublicMailSearchResponse : WechatWorkResponse + { + public static class Types + { + public class Mail + { + /// + /// 获取或设置业务邮箱 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + + /// + /// 获取或设置业务邮箱地址。 + /// + [Newtonsoft.Json.JsonProperty("email")] + [System.Text.Json.Serialization.JsonPropertyName("email")] + public string Email { get; set; } = default!; + + /// + /// 获取或设置业务邮箱名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + } + } + + /// + /// 获取或设置业务邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Mail[] MailList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.cs new file mode 100644 index 00000000..4014f7b1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.cs @@ -0,0 +1,58 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/update 接口的请求。 + /// + public class CgibinExmailPublicMailUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class UserIdList : CgibinExmailPublicMailCreateRequest.Types.UserIdList + { + } + + public class TagIdList : CgibinExmailPublicMailCreateRequest.Types.TagIdList + { + } + + public class DepartmentIdList : CgibinExmailPublicMailCreateRequest.Types.DepartmentIdList + { + } + } + + /// + /// 获取或设置业务邮箱 ID + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + + /// + /// 获取或设置业务邮箱名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置允许使用的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public Types.UserIdList? AllowUserIdList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.cs new file mode 100644 index 00000000..88a0b0a0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/publicmail/update 接口的响应。 + /// + public class CgibinExmailPublicMailUpdateResponse : WechatWorkResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json index 2f7ddc5f..902178ea 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json @@ -1,7 +1,6 @@ { "errcode": 0, "errmsg": "ok", - "count": 2, "groups": [ { "groupid": "g_all@gzdev.com", diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.json new file mode 100644 index 00000000..31e823cc --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateRequest.json @@ -0,0 +1,13 @@ +{ + "email": "apitest@gzdev.com", + "name": "apitest", + "userid_list": { + "list": ["apitest1", "apitest2"] + }, + "department_list": { + "list": [1, 2] + }, + "tag_list": { + "list": [1, 2] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.json new file mode 100644 index 00000000..e291f7aa --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailCreateResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "id": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.json new file mode 100644 index 00000000..ff206088 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteRequest.json @@ -0,0 +1,3 @@ +{ + "id": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.json new file mode 100644 index 00000000..4dfc6cba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailDeleteResponse.json @@ -0,0 +1,4 @@ +{ + "errcode": 0, + "errmsg": "ok" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.json new file mode 100644 index 00000000..65261b08 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetRequest.json @@ -0,0 +1,3 @@ +{ + "id_list": [1, 2] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.json new file mode 100644 index 00000000..ed71ee25 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailGetResponse.json @@ -0,0 +1,20 @@ +{ + "errcode": 0, + "errmsg": "ok", + "list": [ + { + "id": 1, + "email": "apitest3@gzdev.com", + "name": "测试", + "userid_list": { + "list": ["member", "member2"] + }, + "department_list": { + "list": [1, 2] + }, + "tag_list": { + "list": [1, 2] + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.json new file mode 100644 index 00000000..3c94fef2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailSearchResponse.json @@ -0,0 +1,16 @@ +{ + "errcode": 0, + "errmsg": "ok", + "list": [ + { + "id": 11, + "email": "apitest3@gzdev.com", + "name": "apitest3" + }, + { + "id": 12, + "email": "apitest4@gzdev.com", + "name": "apitest4" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.json new file mode 100644 index 00000000..6f457304 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateRequest.json @@ -0,0 +1,13 @@ +{ + "id": 1, + "name": "apitest", + "userid_list": { + "list": ["apitest1", "apitest2"] + }, + "department_list": { + "list": [1, 2] + }, + "tag_list": { + "list": [1, 2] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.json new file mode 100644 index 00000000..4dfc6cba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/PublicMail/CgibinExmailPublicMailUpdateResponse.json @@ -0,0 +1,4 @@ +{ + "errcode": 0, + "errmsg": "ok" +}