From 5608151f1d34e63683d1eb35ce641d0d886fddc5 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 14 Mar 2022 16:30:58 +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=E7=BE=A4=E7=BB=84=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WorkClientExecuteCgibinExmailExtensions.cs | 119 +++++++++++++++++ .../Group/CgibinExmailGroupCreateRequest.cs | 123 ++++++++++++++++++ .../Group/CgibinExmailGroupCreateResponse.cs | 9 ++ .../Group/CgibinExmailGroupDeleteRequest.cs | 15 +++ .../Group/CgibinExmailGroupDeleteResponse.cs | 9 ++ .../Group/CgibinExmailGroupGetRequest.cs | 15 +++ .../Group/CgibinExmailGroupGetResponse.cs | 121 +++++++++++++++++ .../Group/CgibinExmailGroupSearchRequest.cs | 22 ++++ .../Group/CgibinExmailGroupSearchResponse.cs | 42 ++++++ .../Group/CgibinExmailGroupUpdateRequest.cs | 99 ++++++++++++++ .../Group/CgibinExmailGroupUpdateResponse.cs | 9 ++ .../Group/CgibinExmailGroupCreateRequest.json | 26 ++++ .../CgibinExmailGroupCreateResponse.json | 4 + .../Group/CgibinExmailGroupDeleteRequest.json | 3 + .../CgibinExmailGroupDeleteResponse.json | 4 + .../Group/CgibinExmailGroupGetResponse.json | 28 ++++ .../CgibinExmailGroupSearchResponse.json | 15 +++ .../Group/CgibinExmailGroupUpdateRequest.json | 26 ++++ .../CgibinExmailGroupUpdateResponse.json | 4 + 19 files changed, 693 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupGetResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs new file mode 100644 index 00000000..916fa174 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExmailExtensions.cs @@ -0,0 +1,119 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinExmailExtensions + { + #region Group + /// + /// 异步调用 [POST] /cgi-bin/exmail/group/create 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailGroupCreateAsync(this WechatWorkClient client, Models.CgibinExmailGroupCreateRequest 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", "group", "create") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/exmail/group/update 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailGroupUpdateAsync(this WechatWorkClient client, Models.CgibinExmailGroupUpdateRequest 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", "group", "update") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/exmail/group/delete 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailGroupDeleteAsync(this WechatWorkClient client, Models.CgibinExmailGroupDeleteRequest 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", "group", "delete") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /cgi-bin/exmail/group/search 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailGroupSearchAsync(this WechatWorkClient client, Models.CgibinExmailGroupSearchRequest 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", "group", "search") + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("fuzzy", request.IsFuzzy ? 1 : 0); + + if (request.GroupId != null) + flurlReq.SetQueryParam("groupid", request.GroupId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /cgi-bin/exmail/group/get 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95510 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExmailGroupGetAsync(this WechatWorkClient client, Models.CgibinExmailGroupGetRequest 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", "group", "get") + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("groupid", request.GroupId); + + 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 new file mode 100644 index 00000000..83838134 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateRequest.cs @@ -0,0 +1,123 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/create 接口的请求。 + /// + public class CgibinExmailGroupCreateRequest : WechatWorkRequest + { + public static class Types + { + public class EmailList + { + /// + /// 获取或设置邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public IList Items { get; set; } = new List(); + } + + public class EmailGroupList + { + /// + /// 获取或设置邮箱群组列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public IList Items { get; set; } = new List(); + } + + public class TagIdList + { + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public IList Items { get; set; } = new List(); + } + + public class DepartmentIdList + { + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public IList Items { get; set; } = new List(); + } + } + + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public string GroupId { get; set; } = string.Empty; + + /// + /// 获取或设置邮件群组名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = string.Empty; + + /// + /// 获取或设置邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("email_list")] + [System.Text.Json.Serialization.JsonPropertyName("email_list")] + public Types.EmailList? EmailList { get; set; } + + /// + /// 获取或设置邮箱群组列表。 + /// + [Newtonsoft.Json.JsonProperty("group_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_list")] + public Types.EmailGroupList? EmailGroupList { get; set; } + + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? TagIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? DepartmentIdList { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_type")] + [System.Text.Json.Serialization.JsonPropertyName("allow_type")] + public int? AllowType { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_emaillist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] + public Types.EmailList? AllowEmailList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_taglist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_taglist")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_departmentlist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_departmentlist")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateResponse.cs new file mode 100644 index 00000000..d256f2f5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupCreateResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/create 接口的响应。 + /// + public class CgibinExmailGroupCreateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.cs new file mode 100644 index 00000000..974b3632 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/delete 接口的请求。 + /// + public class CgibinExmailGroupDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public string GroupId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.cs new file mode 100644 index 00000000..75635b09 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/delete 接口的响应。 + /// + public class CgibinExmailGroupDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetRequest.cs new file mode 100644 index 00000000..d2c579c5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/group/get 接口的请求。 + /// + public class CgibinExmailGroupGetRequest : WechatWorkRequest + { + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string GroupId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs new file mode 100644 index 00000000..c8bc9264 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupGetResponse.cs @@ -0,0 +1,121 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/group/get 接口的响应。 + /// + public class CgibinExmailGroupGetResponse : WechatWorkResponse + { + public static class Types + { + public class EmailList + { + /// + /// 获取或设置邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public string[] Items { get; set; } = default!; + } + + public class EmailGroupList + { + /// + /// 获取或设置邮箱群组列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public string[] Items { get; set; } = default!; + } + + public class TagIdList + { + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public int[] Items { get; set; } = default!; + } + + public class DepartmentIdList + { + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public long[] Items { get; set; } = default!; + } + } + + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public string GroupId { get; set; } = default!; + + /// + /// 获取或设置邮件群组名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + + /// + /// 获取或设置邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("email_list")] + [System.Text.Json.Serialization.JsonPropertyName("email_list")] + public Types.EmailList? EmailList { get; set; } + + /// + /// 获取或设置邮箱群组列表。 + /// + [Newtonsoft.Json.JsonProperty("group_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_list")] + public Types.EmailGroupList? EmailGroupList { get; set; } + + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? TagIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? DepartmentIdList { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_type")] + [System.Text.Json.Serialization.JsonPropertyName("allow_type")] + public int AllowType { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_emaillist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] + public Types.EmailList? AllowEmailList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_taglist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_taglist")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_departmentlist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_departmentlist")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchRequest.cs new file mode 100644 index 00000000..b02a710d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/group/search 接口的请求。 + /// + public class CgibinExmailGroupSearchRequest : WechatWorkRequest + { + /// + /// 获取或设置是否开启模糊搜索。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public bool IsFuzzy { get; set; } + + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? GroupId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs new file mode 100644 index 00000000..79ca79cc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupSearchResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/exmail/group/search 接口的响应。 + /// + public class CgibinExmailGroupSearchResponse : WechatWorkResponse + { + public static class Types + { + public class EmailGroup + { + /// + /// 获取或设置邮件群组ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public string GroupId { get; set; } = default!; + + /// + /// 获取或设置邮件群组名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + } + } + + /// + /// 获取或设置邮件群组列表。 + /// + [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 new file mode 100644 index 00000000..72b19717 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.cs @@ -0,0 +1,99 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/update 接口的请求。 + /// + public class CgibinExmailGroupUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class EmailList : CgibinExmailGroupCreateRequest.Types.EmailList + { + } + + public class EmailGroupList : CgibinExmailGroupCreateRequest.Types.EmailGroupList + { + } + + public class TagIdList : CgibinExmailGroupCreateRequest.Types.TagIdList + { + } + + public class DepartmentIdList : CgibinExmailGroupCreateRequest.Types.DepartmentIdList + { + } + } + + /// + /// 获取或设置邮件群组 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public string GroupId { get; set; } = string.Empty; + + /// + /// 获取或设置邮件群组名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string? GroupName { get; set; } + + /// + /// 获取或设置邮箱列表。 + /// + [Newtonsoft.Json.JsonProperty("email_list")] + [System.Text.Json.Serialization.JsonPropertyName("email_list")] + public Types.EmailList? EmailList { get; set; } + + /// + /// 获取或设置邮箱群组列表。 + /// + [Newtonsoft.Json.JsonProperty("group_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_list")] + public Types.EmailGroupList? EmailGroupList { get; set; } + + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_list")] + [System.Text.Json.Serialization.JsonPropertyName("tag_list")] + public Types.TagIdList? TagIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("department_list")] + [System.Text.Json.Serialization.JsonPropertyName("department_list")] + public Types.DepartmentIdList? DepartmentIdList { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_type")] + [System.Text.Json.Serialization.JsonPropertyName("allow_type")] + public int? AllowType { get; set; } + + /// + /// 获取或设置使用权限。 + /// + [Newtonsoft.Json.JsonProperty("allow_emaillist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_emaillist")] + public Types.EmailList? AllowEmailList { get; set; } + + /// + /// 获取或设置允许使用的标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_taglist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_taglist")] + public Types.TagIdList? AllowTagIdList { get; set; } + + /// + /// 获取或设置允许使用的部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("allow_departmentlist")] + [System.Text.Json.Serialization.JsonPropertyName("allow_departmentlist")] + public Types.DepartmentIdList? AllowDepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.cs new file mode 100644 index 00000000..4e1ca08e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/exmail/group/update 接口的响应。 + /// + public class CgibinExmailGroupUpdateResponse : WechatWorkResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateRequest.json new file mode 100644 index 00000000..a5fc3582 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateRequest.json @@ -0,0 +1,26 @@ +{ + "groupid": "zhangsangroup@gzdev.com", + "groupname": "zhangsangroup", + "email_list": { + "list": ["lisi@gzdev.com", "wangwu@gzdev.com"] + }, + "tag_list": { + "list": [2, 5] + }, + "department_list": { + "list": [1, 2] + }, + "group_list": { + "list": ["aaa@gzdev.com"] + }, + "allow_type": 3, + "allow_emaillist": { + "list": ["zhangsanp@gzdev.com"] + }, + "allow_departmentlist": { + "list": [1, 2] + }, + "allow_taglist": { + "list": [1, 3] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateResponse.json new file mode 100644 index 00000000..4dfc6cba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupCreateResponse.json @@ -0,0 +1,4 @@ +{ + "errcode": 0, + "errmsg": "ok" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.json new file mode 100644 index 00000000..f14220c1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteRequest.json @@ -0,0 +1,3 @@ +{ + "groupid": "zhangsangroup@gzdev.com" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.json new file mode 100644 index 00000000..4dfc6cba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupDeleteResponse.json @@ -0,0 +1,4 @@ +{ + "errcode": 0, + "errmsg": "ok" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupGetResponse.json new file mode 100644 index 00000000..c04bcd3c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupGetResponse.json @@ -0,0 +1,28 @@ +{ + "errcode": 0, + "errmsg": "ok", + "groupid": "zhangsangroup@gzdev.com", + "groupname": "zhangsangroup", + "email_list": { + "list": ["lisi@gzdev.com", "wangwu@gzdev.com"] + }, + "tag_list": { + "list": [2, 5] + }, + "department_list": { + "list": [1, 2] + }, + "group_list": { + "list": ["aaa@gzdev.com"] + }, + "allow_type": 3, + "allow_emaillist": { + "list": ["zhangsanp@gzdev.com"] + }, + "allow_departmentlist": { + "list": [1, 2] + }, + "allow_taglist": { + "list": [1, 3] + } +} 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 new file mode 100644 index 00000000..2f7ddc5f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupSearchResponse.json @@ -0,0 +1,15 @@ +{ + "errcode": 0, + "errmsg": "ok", + "count": 2, + "groups": [ + { + "groupid": "g_all@gzdev.com", + "groupname": "任何人" + }, + { + "groupid": "g_inner@gzdev.com", + "groupname": "组内成员" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.json new file mode 100644 index 00000000..a5fc3582 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateRequest.json @@ -0,0 +1,26 @@ +{ + "groupid": "zhangsangroup@gzdev.com", + "groupname": "zhangsangroup", + "email_list": { + "list": ["lisi@gzdev.com", "wangwu@gzdev.com"] + }, + "tag_list": { + "list": [2, 5] + }, + "department_list": { + "list": [1, 2] + }, + "group_list": { + "list": ["aaa@gzdev.com"] + }, + "allow_type": 3, + "allow_emaillist": { + "list": ["zhangsanp@gzdev.com"] + }, + "allow_departmentlist": { + "list": [1, 2] + }, + "allow_taglist": { + "list": [1, 3] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.json new file mode 100644 index 00000000..4dfc6cba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExmail/Group/CgibinExmailGroupUpdateResponse.json @@ -0,0 +1,4 @@ +{ + "errcode": 0, + "errmsg": "ok" +}