From 2671db1f7e68404b71a6069bd63ce67e7122e69a Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 1 May 2022 22:51:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E6=96=B0=E5=A2=9E=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=B8=B8=E8=A7=84=E5=88=99=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...kClientExecuteCgibinCorpGroupExtensions.cs | 115 ++++++++++++++++-- ...orpGroupCropGetChainCorpInfoListRequest.cs | 16 +-- ...rpGroupCropGetChainCorpInfoListResponse.cs | 9 +- .../Rule/CgibinCorpGroupRuleAddRuleRequest.cs | 81 ++++++++++++ .../CgibinCorpGroupRuleAddRuleResponse.cs | 15 +++ .../CgibinCorpGroupRuleDeleteRuleRequest.cs | 22 ++++ .../CgibinCorpGroupRuleDeleteRuleResponse.cs | 9 ++ .../CgibinCorpGroupRuleGetRuleInfoRequest.cs | 22 ++++ .../CgibinCorpGroupRuleGetRuleInfoResponse.cs | 72 +++++++++++ .../Rule/CgibinCorpGroupRuleListIdsRequest.cs | 15 +++ .../CgibinCorpGroupRuleListIdsResponse.cs | 15 +++ .../CgibinCorpGroupRuleModifyRuleRequest.cs | 60 +++++++++ .../CgibinCorpGroupRuleModifyRuleResponse.cs | 9 ++ .../Servicer/CgibinKfServicerAddRequest.cs | 2 +- .../Servicer/CgibinKfServicerDeleteRequest.cs | 2 +- .../Servicer/CgibinKfServicerListResponse.cs | 2 +- ...pGroupCropGetChainCorpInfoListRequest.json | 5 + ...GroupCropGetChainCorpInfoListResponse.json | 3 +- .../CgibinCorpGroupRuleAddRuleRequest.json | 13 ++ .../CgibinCorpGroupRuleAddRuleResponse.json | 5 + .../CgibinCorpGroupRuleDeleteRuleRequest.json | 4 + ...CgibinCorpGroupRuleGetRuleInfoRequest.json | 4 + ...gibinCorpGroupRuleGetRuleInfoResponse.json | 14 +++ .../CgibinCorpGroupRuleListIdsRequest.json | 3 + .../CgibinCorpGroupRuleListIdsResponse.json | 5 + .../CgibinCorpGroupRuleModifyRuleRequest.json | 14 +++ 26 files changed, 514 insertions(+), 22 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs index 5b254e9b..e2f4fcb8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs @@ -94,7 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work } /// - /// 异步调用 [GET] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口。 + /// 异步调用 [POST] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口。 /// REF: https://developer.work.weixin.qq.com/document/path/95315 /// /// @@ -107,15 +107,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (request is null) throw new ArgumentNullException(nameof(request)); IFlurlRequest flurlReq = client - .CreateRequest(request, HttpMethod.Get, "cgi-bin", "corpgroup", "corp", "get_chain_corpinfo_list") - .SetQueryParam("access_token", request.AccessToken) - .SetQueryParam("chain_id", request.ChainId); - - if (request.GroupId != null) - flurlReq.SetQueryParam("groupid", request.GroupId.Value); - - if (request.RequireFetchChild != null) - flurlReq.SetQueryParam("fetch_child", request.RequireFetchChild.Value ? 1 : 0); + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "corpgroup", "corp", "get_chain_corpinfo_list") + .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } @@ -139,5 +132,107 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + #region Rule + /// + /// 异步调用 [POST] /cgi-bin/corpgroup/rule/list_ids 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95631 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCorpGroupRuleListIdsAsync(this WechatWorkClient client, Models.CgibinCorpGroupRuleListIdsRequest 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", "corpgroup", "rule", "list_ids") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/corpgroup/rule/delete_rule 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95632 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCorpGroupRuleDeleteRuleAsync(this WechatWorkClient client, Models.CgibinCorpGroupRuleDeleteRuleRequest 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", "corpgroup", "rule", "delete_rule") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/corpgroup/rule/get_rule_info 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95634 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCorpGroupRuleGetRuleInfoAsync(this WechatWorkClient client, Models.CgibinCorpGroupRuleGetRuleInfoRequest 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", "corpgroup", "rule", "get_rule_info") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/corpgroup/rule/add_rule 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95634 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCorpGroupRuleAddRuleAsync(this WechatWorkClient client, Models.CgibinCorpGroupRuleAddRuleRequest 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", "corpgroup", "rule", "add_rule") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/corpgroup/rule/modify_rule 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95635 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCorpGroupRuleModifyRuleAsync(this WechatWorkClient client, Models.CgibinCorpGroupRuleModifyRuleRequest 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", "corpgroup", "rule", "modify_rule") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.cs index f057da3f..ac1bd8b8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.cs @@ -1,29 +1,31 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// - /// 表示 [GET] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口的请求。 + /// 表示 [POST] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口的请求。 /// public class CgibinCorpGroupCropGetChainCorpInfoListRequest : WechatWorkRequest { /// /// 获取或设置上下游 ID。 /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] public string ChainId { get; set; } = string.Empty; /// /// 获取或设置分组 ID。 /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] public int? GroupId { get; set; } /// /// 获取或设置是否递归获取子分组企业。 /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] + [Newtonsoft.Json.JsonProperty("fetch_child")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("fetch_child")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))] public bool? RequireFetchChild { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.cs index a98967b2..ef8c4321 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.cs @@ -1,7 +1,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// - /// 表示 [GET] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口的响应。 + /// 表示 [POST] /cgi-bin/corpgroup/corp/get_chain_corpinfo_list 接口的响应。 /// public class CgibinCorpGroupCropGetChainCorpInfoListResponse : WechatWorkResponse { @@ -36,6 +36,13 @@ [Newtonsoft.Json.JsonProperty("custom_id")] [System.Text.Json.Serialization.JsonPropertyName("custom_id")] public string? CustomId { get; set; } + + /// + /// 获取或设置该上下游的邀请人的 UserId。 + /// + [Newtonsoft.Json.JsonProperty("invite_userid")] + [System.Text.Json.Serialization.JsonPropertyName("invite_userid")] + public string? InviteUserId { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.cs new file mode 100644 index 00000000..b1c8f9d7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.cs @@ -0,0 +1,81 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/add_rule 接口的请求。 + /// + public class CgibinCorpGroupRuleAddRuleRequest : WechatWorkRequest + { + public static class Types + { + public class Rule + { + public static class Types + { + public class OwnerCorpRange + { + /// + /// 获取或设置 UserId 列表。 + /// + [Newtonsoft.Json.JsonProperty("userids")] + [System.Text.Json.Serialization.JsonPropertyName("userids")] + public IList? UserIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("departmentids")] + [System.Text.Json.Serialization.JsonPropertyName("departmentids")] + public IList? DepartmentIdList { get; set; } + } + + public class MemberCorpRange + { + /// + /// 获取或设置分组 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("groupids")] + [System.Text.Json.Serialization.JsonPropertyName("groupids")] + public IList? GroupIdList { get; set; } = default!; + + /// + /// 获取或设置企业 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("corpids")] + [System.Text.Json.Serialization.JsonPropertyName("corpids")] + public IList? CorpIdList { get; set; } + } + } + + /// + /// 获取或设置上游企业的对接人规则信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("owner_corp_range")] + public Types.OwnerCorpRange OwnerCorpRange { get; set; } = default!; + + /// + /// 获取或设置下游企业规则范围信息。 + /// + [Newtonsoft.Json.JsonProperty("member_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("member_corp_range")] + public Types.MemberCorpRange MemberCorpRange { get; set; } = default!; + } + } + + /// + /// 获取或设置上下游 ID。 + /// + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] + public string ChainId { get; set; } = string.Empty; + + /// + /// 获取或设置上下游关系规则信息。 + /// + [Newtonsoft.Json.JsonProperty("rule_info")] + [System.Text.Json.Serialization.JsonPropertyName("rule_info")] + public Types.Rule Rule { get; set; } = new Types.Rule(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.cs new file mode 100644 index 00000000..bb991df2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/add_rule 接口的响应。 + /// + public class CgibinCorpGroupRuleAddRuleResponse : WechatWorkResponse + { + /// + /// 获取或设置上下游关系规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("rule_id")] + [System.Text.Json.Serialization.JsonPropertyName("rule_id")] + public int RuleId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.cs new file mode 100644 index 00000000..d96132c5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/delete_rule 接口的请求。 + /// + public class CgibinCorpGroupRuleDeleteRuleRequest : WechatWorkRequest + { + /// + /// 获取或设置上下游 ID。 + /// + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] + public string ChainId { get; set; } = string.Empty; + + /// + /// 获取或设置上下游关系规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("rule_id")] + [System.Text.Json.Serialization.JsonPropertyName("rule_id")] + public int RuleId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleResponse.cs new file mode 100644 index 00000000..3ecc6c5c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/delete_rule 接口的响应。 + /// + public class CgibinCorpGroupRuleDeleteRuleResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.cs new file mode 100644 index 00000000..741390df --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/get_rule_info 接口的请求。 + /// + public class CgibinCorpGroupRuleGetRuleInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置上下游 ID。 + /// + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] + public string ChainId { get; set; } = string.Empty; + + /// + /// 获取或设置上下游关系规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("rule_id")] + [System.Text.Json.Serialization.JsonPropertyName("rule_id")] + public int RuleId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.cs new file mode 100644 index 00000000..3e50a199 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.cs @@ -0,0 +1,72 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/get_rule_info 接口的响应。 + /// + public class CgibinCorpGroupRuleGetRuleInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Rule + { + public static class Types + { + public class OwnerCorpRange + { + /// + /// 获取或设置 UserId 列表。 + /// + [Newtonsoft.Json.JsonProperty("userids")] + [System.Text.Json.Serialization.JsonPropertyName("userids")] + public string[]? UserIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("departmentids")] + [System.Text.Json.Serialization.JsonPropertyName("departmentids")] + public long[]? DepartmentIdList { get; set; } + } + + public class MemberCorpRange + { + /// + /// 获取或设置分组 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("groupids")] + [System.Text.Json.Serialization.JsonPropertyName("groupids")] + public int[]? GroupIdList { get; set; } + + /// + /// 获取或设置企业 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("corpids")] + [System.Text.Json.Serialization.JsonPropertyName("corpids")] + public string[]? CorpIdList { get; set; } + } + } + + /// + /// 获取或设置上游企业的对接人规则信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("owner_corp_range")] + public Types.OwnerCorpRange OwnerCorpRange { get; set; } = default!; + + /// + /// 获取或设置下游企业规则范围信息。 + /// + [Newtonsoft.Json.JsonProperty("member_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("member_corp_range")] + public Types.MemberCorpRange MemberCorpRange { get; set; } = default!; + } + } + + /// + /// 获取或设置上下游关系规则信息。 + /// + [Newtonsoft.Json.JsonProperty("rule_info")] + [System.Text.Json.Serialization.JsonPropertyName("rule_info")] + public Types.Rule Rule { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.cs new file mode 100644 index 00000000..6687198e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/list_ids 接口的请求。 + /// + public class CgibinCorpGroupRuleListIdsRequest : WechatWorkRequest + { + /// + /// 获取或设置上下游 ID。 + /// + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] + public string ChainId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.cs new file mode 100644 index 00000000..ee136436 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/list_ids 接口的响应。 + /// + public class CgibinCorpGroupRuleListIdsResponse : WechatWorkResponse + { + /// + /// 获取或设置上下游关系规则的 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("rule_ids")] + [System.Text.Json.Serialization.JsonPropertyName("rule_ids")] + public int[] RuleIdList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.cs new file mode 100644 index 00000000..d189ed37 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.cs @@ -0,0 +1,60 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/modify_rule 接口的请求。 + /// + public class CgibinCorpGroupRuleModifyRuleRequest : WechatWorkRequest + { + public static class Types + { + public class Rule + { + public static class Types + { + public class OwnerCorpRange : CgibinCorpGroupRuleAddRuleRequest.Types.Rule.Types.OwnerCorpRange + { + } + + public class MemberCorpRange : CgibinCorpGroupRuleAddRuleRequest.Types.Rule.Types.MemberCorpRange + { + } + } + + /// + /// 获取或设置上游企业的对接人规则信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("owner_corp_range")] + public Types.OwnerCorpRange OwnerCorpRange { get; set; } = default!; + + /// + /// 获取或设置下游企业规则范围信息。 + /// + [Newtonsoft.Json.JsonProperty("member_corp_range")] + [System.Text.Json.Serialization.JsonPropertyName("member_corp_range")] + public Types.MemberCorpRange MemberCorpRange { get; set; } = default!; + } + } + + /// + /// 获取或设置上下游 ID。 + /// + [Newtonsoft.Json.JsonProperty("chain_id")] + [System.Text.Json.Serialization.JsonPropertyName("chain_id")] + public string ChainId { get; set; } = string.Empty; + + /// + /// 获取或设置上下游关系规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("rule_id")] + [System.Text.Json.Serialization.JsonPropertyName("rule_id")] + public int RuleId { get; set; } + + /// + /// 获取或设置上下游关系规则信息。 + /// + [Newtonsoft.Json.JsonProperty("rule_info")] + [System.Text.Json.Serialization.JsonPropertyName("rule_info")] + public Types.Rule Rule { get; set; } = new Types.Rule(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleResponse.cs new file mode 100644 index 00000000..2eb17628 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/corpgroup/rule/modify_rule 接口的响应。 + /// + public class CgibinCorpGroupRuleModifyRuleResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerAddRequest.cs index 94532721..cf48763a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerAddRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerAddRequest.cs @@ -26,6 +26,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models /// [Newtonsoft.Json.JsonProperty("department_id_list")] [System.Text.Json.Serialization.JsonPropertyName("department_id_list")] - public IList? DepartmentIdList { get; set; } + public IList? DepartmentIdList { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerDeleteRequest.cs index 94aec1b7..b0d16f3d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerDeleteRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerDeleteRequest.cs @@ -26,6 +26,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models /// [Newtonsoft.Json.JsonProperty("department_id_list")] [System.Text.Json.Serialization.JsonPropertyName("department_id_list")] - public IList? DepartmentIdList { get; set; } + public IList? DepartmentIdList { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerListResponse.cs index 7fc52160..abc87f4d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerListResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/Servicer/CgibinKfServicerListResponse.cs @@ -28,7 +28,7 @@ /// [Newtonsoft.Json.JsonProperty("department_id")] [System.Text.Json.Serialization.JsonPropertyName("department_id")] - public int? DepartmentId { get; set; } + public long? DepartmentId { get; set; } } } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.json new file mode 100644 index 00000000..923de20b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListRequest.json @@ -0,0 +1,5 @@ +{ + "chain_id": "Chxxxxxx", + "groupid": 1, + "fetch_child": 0 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.json index fbe6bebc..d6ee4742 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/CgibinCorpGroupCropGetChainCorpInfoListResponse.json @@ -6,7 +6,8 @@ "groupid": 2, "corpid": "wwxxxx", "corp_name": "美馨粮油公司", - "custom_id": "wof3du51quo5sl1is" + "custom_id": "custom_id", + "invite_userid": "zhangsan" } ] } \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.json new file mode 100644 index 00000000..129e8869 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleRequest.json @@ -0,0 +1,13 @@ +{ + "chain_id": "Chxxxxxx", + "rule_info": { + "owner_corp_range": { + "departmentids": [ 123 ], + "userids": [ "userid1", "userid2" ] + }, + "member_corp_range": { + "groupids": [ 123 ], + "corpids": [ "corpid1", "corpid2" ] + } + } +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.json new file mode 100644 index 00000000..9099e700 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleAddRuleResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "rule_id": 1 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.json new file mode 100644 index 00000000..af130043 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleDeleteRuleRequest.json @@ -0,0 +1,4 @@ +{ + "chain_id": "Chxxxxxx", + "rule_id": 1 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.json new file mode 100644 index 00000000..af130043 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoRequest.json @@ -0,0 +1,4 @@ +{ + "chain_id": "Chxxxxxx", + "rule_id": 1 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.json new file mode 100644 index 00000000..b82371f5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleGetRuleInfoResponse.json @@ -0,0 +1,14 @@ +{ + "errcode": 0, + "errmsg": "ok", + "rule_info": { + "owner_corp_range": { + "departmentids": [ 123 ], + "userids": [ "userid1", "userid2" ] + }, + "member_corp_range": { + "groupids": [ 123 ], + "corpids": [ "corpid1", "corpid2" ] + } + } +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.json new file mode 100644 index 00000000..27f6648a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsRequest.json @@ -0,0 +1,3 @@ +{ + "chain_id": "Chxxxxxx" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.json new file mode 100644 index 00000000..75d0270d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleListIdsResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "rule_ids": [ 1, 2 ] +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.json new file mode 100644 index 00000000..574ad8f4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinCorpGroup/Rule/CgibinCorpGroupRuleModifyRuleRequest.json @@ -0,0 +1,14 @@ +{ + "chain_id": "Chxxxxxx", + "rule_id": 1, + "rule_info": { + "owner_corp_range": { + "departmentids": [ 123 ], + "userids": [ "userid1", "userid2" ] + }, + "member_corp_range": { + "groupids": [ 123 ], + "corpids": [ "corpid1", "corpid2" ] + } + } +} \ No newline at end of file