From 61af80e17a4373f542b140c97fb52ff488bcc475 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 13 Mar 2024 16:23:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E6=96=B0=E5=A2=9E=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E7=AE=A1=E7=90=86=E9=AB=98=E7=BA=A7=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=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 --- docs/WechatApi/Migration_V3.md | 2 +- docs/WechatTenpayV3/Migration_V3.md | 2 +- docs/WechatWork/Migration_V3.md | 2 +- ...rkClientExecuteCgibinSecurityExtensions.cs | 117 ++++++++++++++++++ ...ibinSecurityVipBatchAddJobResultRequest.cs | 15 +++ ...binSecurityVipBatchAddJobResultResponse.cs | 35 ++++++ ...nSecurityVipBatchDeleteJobResultRequest.cs | 15 +++ ...SecurityVipBatchDeleteJobResultResponse.cs | 35 ++++++ .../Vip/CgibinSecurityVipListRequest.cs | 22 ++++ .../Vip/CgibinSecurityVipListResponse.cs | 29 +++++ ...ibinSecurityVipSubmitBatchAddJobRequest.cs | 17 +++ ...binSecurityVipSubmitBatchAddJobResponse.cs | 22 ++++ ...nSecurityVipSubmitBatchDeleteJobRequest.cs | 17 +++ ...SecurityVipSubmitBatchDeleteJobResponse.cs | 22 ++++ ...inSecurityVipBatchAddJobResultRequest.json | 3 + ...nSecurityVipBatchAddJobResultResponse.json | 8 ++ ...ecurityVipBatchDeleteJobResultRequest.json | 3 + ...curityVipBatchDeleteJobResultResponse.json | 8 ++ .../Vip/CgibinSecurityVipListRequest.json | 4 + .../Vip/CgibinSecurityVipListResponse.json | 7 ++ ...inSecurityVipSubmitBatchAddJobRequest.json | 3 + ...nSecurityVipSubmitBatchAddJobResponse.json | 6 + ...ecurityVipSubmitBatchDeleteJobRequest.json | 3 + ...curityVipSubmitBatchDeleteJobResponse.json | 6 + 24 files changed, 400 insertions(+), 3 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.json diff --git a/docs/WechatApi/Migration_V3.md b/docs/WechatApi/Migration_V3.md index 3049f431..05ba2a4c 100644 --- a/docs/WechatApi/Migration_V3.md +++ b/docs/WechatApi/Migration_V3.md @@ -129,4 +129,4 @@ bool ret = (bool)eret; 为了统一并规范化各个模块,我们调整了部分方法的命名参数。如果你在调用该方法时使用了命名实参,请注意修改。 -涉及此变化的包括 `DeserializeEventFromJson()`、`DeserializeEventFromXml()`、`SerializeEventToJson`、`SerializeEventToXml`、`VerifyEventSignatureForEcho`、`VerifyEventSignatureFromJson`、`VerifyEventSignatureFromXml` 等扩展方法,及 `AESUtility`、`SHA1Utility`、`HMACUtility` 等工具类。 +涉及此变化的包括 `DeserializeEventFromJson()`、`DeserializeEventFromXml()`、`SerializeEventToJson()`、`SerializeEventToXml()`、`VerifyEventSignatureForEcho()`、`VerifyEventSignatureFromJson()`、`VerifyEventSignatureFromXml()` 等扩展方法,及 `AESUtility`、`SHA1Utility`、`HMACUtility` 等工具类。 diff --git a/docs/WechatTenpayV3/Migration_V3.md b/docs/WechatTenpayV3/Migration_V3.md index 88e49f5b..fb33dcdc 100644 --- a/docs/WechatTenpayV3/Migration_V3.md +++ b/docs/WechatTenpayV3/Migration_V3.md @@ -142,7 +142,7 @@ bool ret = (bool)eret; 为了统一并规范化各个模块,我们调整了部分方法的命名参数。如果你在调用该方法时使用了命名实参,请注意修改。 -涉及此变化的包括 `DeserializeEvent()`、`DecryptEventResource()`、`VerifyEventSignature`、`VerifyResponseSignature` 等扩展方法,及 `AESUtility`、`RSAUtility`、`SHA256Utility`、`SM2Utility`、`SM3Utility`、`SM4Utility` 等工具类。 +涉及此变化的包括 `DeserializeEvent()`、`DecryptEventResource()`、`VerifyEventSignature()`、`VerifyResponseSignature()` 等扩展方法,及 `AESUtility`、`RSAUtility`、`SHA256Utility`、`SM2Utility`、`SM3Utility`、`SM4Utility` 等工具类。 ### 遇到报错:"NotSupportedException: Private key format is not supported." diff --git a/docs/WechatWork/Migration_V3.md b/docs/WechatWork/Migration_V3.md index 1e79fff5..c2aced0c 100644 --- a/docs/WechatWork/Migration_V3.md +++ b/docs/WechatWork/Migration_V3.md @@ -135,4 +135,4 @@ bool ret = (bool)eret; 为了统一并规范化各个模块,我们调整了部分方法的命名参数。如果你在调用该方法时使用了命名实参,请注意修改。 -涉及此变化的包括 `DeserializeEventFromJson()`、`DeserializeEventFromXml()`、`SerializeEventToJson`、`SerializeEventToXml`、`VerifyEventSignatureForEcho`、`VerifyEventSignatureFromJson`、`VerifyEventSignatureFromXml` 等扩展方法,及 `AESUtility`、`RSAUtility`、`SHA1Utility` 等工具类。 +涉及此变化的包括 `DeserializeEventFromJson()`、`DeserializeEventFromXml()`、`SerializeEventToJson()`、`SerializeEventToXml()`、`VerifyEventSignatureForEcho()`、`VerifyEventSignatureFromJson()`、`VerifyEventSignatureFromXml()` 等扩展方法,及 `AESUtility`、`RSAUtility`、`SHA1Utility` 等工具类。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs index 0ff80b03..5f12f2ad 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs @@ -31,5 +31,122 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + #region Vip + /// + /// 异步调用 [POST] /cgi-bin/security/vip/submit_batch_add_job 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityVipSubmitBatchAddJobAsync(this WechatWorkClient client, Models.CgibinSecurityVipSubmitBatchAddJobRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "vip", "submit_batch_add_job") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/vip/batch_add_job_result 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityVipBatchAddJobResultAsync(this WechatWorkClient client, Models.CgibinSecurityVipBatchAddJobResultRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "vip", "batch_add_job_result") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/vip/submit_batch_del_job 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityVipSubmitBatchDeleteJobAsync(this WechatWorkClient client, Models.CgibinSecurityVipSubmitBatchDeleteJobRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "vip", "submit_batch_del_job") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/vip/batch_del_job_result 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityVipBatchDeleteJobResultAsync(this WechatWorkClient client, Models.CgibinSecurityVipBatchDeleteJobResultRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "vip", "batch_del_job_result") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/vip/list 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityVipListAsync(this WechatWorkClient client, Models.CgibinSecurityVipListRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "vip", "list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.cs new file mode 100644 index 00000000..45615d4a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/batch_add_job_result 接口的请求。 + /// + public class CgibinSecurityVipBatchAddJobResultRequest : WechatWorkRequest + { + /// + /// 获取或设置任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("jobid")] + [System.Text.Json.Serialization.JsonPropertyName("jobid")] + public string JobId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.cs new file mode 100644 index 00000000..3254fd9a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.cs @@ -0,0 +1,35 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/batch_add_job_result 接口的响应。 + /// + public class CgibinSecurityVipBatchAddJobResultResponse : WechatWorkResponse + { + public static class Types + { + public class JobResult + { + /// + /// 获取或设置分配成功的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("succ_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("succ_userid_list")] + public string[]? SuccessfulUserIdList { get; set; } + + /// + /// 获取或设置分配失败的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_userid_list")] + public string[]? FailedUserIdList { get; set; } + } + } + + /// + /// 获取或设置任务结果信息。 + /// + [Newtonsoft.Json.JsonProperty("job_result")] + [System.Text.Json.Serialization.JsonPropertyName("job_result")] + public Types.JobResult JobResult { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.cs new file mode 100644 index 00000000..d8d2b592 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/batch_del_job_result 接口的请求。 + /// + public class CgibinSecurityVipBatchDeleteJobResultRequest : WechatWorkRequest + { + /// + /// 获取或设置任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("jobid")] + [System.Text.Json.Serialization.JsonPropertyName("jobid")] + public string JobId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.cs new file mode 100644 index 00000000..ed3c7657 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.cs @@ -0,0 +1,35 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/batch_del_job_result 接口的响应。 + /// + public class CgibinSecurityVipBatchDeleteJobResultResponse : WechatWorkResponse + { + public static class Types + { + public class JobResult + { + /// + /// 获取或设置撤销分配成功的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("succ_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("succ_userid_list")] + public string[]? SuccessfulUserIdList { get; set; } + + /// + /// 获取或设置撤销分配失败的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_userid_list")] + public string[]? FailedUserIdList { get; set; } + } + } + + /// + /// 获取或设置任务结果信息。 + /// + [Newtonsoft.Json.JsonProperty("job_result")] + [System.Text.Json.Serialization.JsonPropertyName("job_result")] + public Types.JobResult JobResult { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListRequest.cs new file mode 100644 index 00000000..4ef4404c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/list 接口的请求。 + /// + public class CgibinSecurityVipListRequest : WechatWorkRequest + { + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? Cursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListResponse.cs new file mode 100644 index 00000000..81311221 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipListResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/list 接口的响应。 + /// + public class CgibinSecurityVipListResponse : WechatWorkResponse + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public string[] UserIdList { get; set; } = default!; + + /// + /// 获取或设置是否还有更多数据。 + /// + [Newtonsoft.Json.JsonProperty("has_more")] + [System.Text.Json.Serialization.JsonPropertyName("has_more")] + public bool HasMore { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.cs new file mode 100644 index 00000000..990c43f4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/submit_batch_add_job 接口的请求。 + /// + public class CgibinSecurityVipSubmitBatchAddJobRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public IList? UserIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.cs new file mode 100644 index 00000000..52c5f821 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/submit_batch_add_job 接口的响应。 + /// + public class CgibinSecurityVipSubmitBatchAddJobResponse : WechatWorkResponse + { + /// + /// 获取或设置任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("jobid")] + [System.Text.Json.Serialization.JsonPropertyName("jobid")] + public string JobId { get; set; } = default!; + + /// + /// 获取或设置无效的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("invalid_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("invalid_userid_list")] + public string[]? InvalidUserIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.cs new file mode 100644 index 00000000..fab196ae --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/submit_batch_del_job 接口的请求。 + /// + public class CgibinSecurityVipSubmitBatchDeleteJobRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public IList? UserIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.cs new file mode 100644 index 00000000..09bf794b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/vip/submit_batch_del_job 接口的响应。 + /// + public class CgibinSecurityVipSubmitBatchDeleteJobResponse : WechatWorkResponse + { + /// + /// 获取或设置任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("jobid")] + [System.Text.Json.Serialization.JsonPropertyName("jobid")] + public string JobId { get; set; } = default!; + + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("invalid_userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("invalid_userid_list")] + public string[]? InvalidUserIdList { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.json new file mode 100644 index 00000000..5cde2e01 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultRequest.json @@ -0,0 +1,3 @@ +{ + "jobid": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.json new file mode 100644 index 00000000..8f961328 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchAddJobResultResponse.json @@ -0,0 +1,8 @@ +{ + "errcode": 0, + "errmsg": "ok", + "job_result": { + "succ_userid_list": [ "zhangsan", "lisi" ], + "fail_userid_list": [ "wangwu" ] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.json new file mode 100644 index 00000000..5cde2e01 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultRequest.json @@ -0,0 +1,3 @@ +{ + "jobid": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.json new file mode 100644 index 00000000..8f961328 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipBatchDeleteJobResultResponse.json @@ -0,0 +1,8 @@ +{ + "errcode": 0, + "errmsg": "ok", + "job_result": { + "succ_userid_list": [ "zhangsan", "lisi" ], + "fail_userid_list": [ "wangwu" ] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListRequest.json new file mode 100644 index 00000000..36e6e636 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListRequest.json @@ -0,0 +1,4 @@ +{ + "cursor": "CURSOR", + "limit": 2 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListResponse.json new file mode 100644 index 00000000..61cade4d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipListResponse.json @@ -0,0 +1,7 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": true, + "next_cursor": "GNIJIGEO", + "userid_list": [ "zhangsan", "lisi" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.json new file mode 100644 index 00000000..c5ceffeb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobRequest.json @@ -0,0 +1,3 @@ +{ + "userid_list": [ "zhangsan", "lisi", "wangwu", "zhaoliu" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.json new file mode 100644 index 00000000..6272a2fc --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchAddJobResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "jobid": "xxx", + "invalid_userid_list": [ "zhaoliu" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.json new file mode 100644 index 00000000..c5ceffeb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobRequest.json @@ -0,0 +1,3 @@ +{ + "userid_list": [ "zhangsan", "lisi", "wangwu", "zhaoliu" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.json new file mode 100644 index 00000000..6272a2fc --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/Vip/CgibinSecurityVipSubmitBatchDeleteJobResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "jobid": "xxx", + "invalid_userid_list": [ "zhaoliu" ] +}