diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinIdConvertExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinIdConvertExtensions.cs index 7527909a..522d6593 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinIdConvertExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinIdConvertExtensions.cs @@ -126,5 +126,74 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + /// + /// 异步调用 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinIdConvertApplyToUpgradeChatIdAsync(this WechatWorkClient client, Models.CgibinIdConvertApplyToUpgradeChatIdRequest 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", "idconvert", "apply_to_upgrade_chatid") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/idconvert/chatid 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinIdConvertChatIdAsync(this WechatWorkClient client, Models.CgibinIdConvertChatIdRequest 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", "idconvert", "chatid") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinIdConvertUpgradeChatIdForNewCorpAsync(this WechatWorkClient client, Models.CgibinIdConvertUpgradeChatIdForNewCorpRequest 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", "idconvert", "upgrade_chatid_for_new_corp") + .SetQueryParam("suite_access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.cs new file mode 100644 index 00000000..40f9bb3a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口的请求。 + /// + public class CgibinIdConvertApplyToUpgradeChatIdRequest : WechatWorkRequest + { + /// + /// 获取或设置完成升级的时间戳。 + /// + [Newtonsoft.Json.JsonProperty("upgrade_time")] + [System.Text.Json.Serialization.JsonPropertyName("upgrade_time")] + public long UpgradeTimestamp { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdResponse.cs new file mode 100644 index 00000000..1dccc2fb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口的响应。 + /// + public class CgibinIdConvertApplyToUpgradeChatIdResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdRequest.cs new file mode 100644 index 00000000..23921568 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/chatid 接口的请求。 + /// + public class CgibinIdConvertChatIdRequest : WechatWorkRequest + { + /// + /// 获取或设置群聊 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("chat_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id_list")] + public IList GroupChatIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdResponse.cs new file mode 100644 index 00000000..1475f2f9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertChatIdResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/chatid 接口的响应。 + /// + public class CgibinIdConvertChatIdResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置升级前的群聊 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string GroupChatId { get; set; } = default!; + + /// + /// 获取或设置升级后的群聊 ID。 + /// + [Newtonsoft.Json.JsonProperty("new_chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("new_chat_id")] + public string NewGroupChatId { get; set; } = default!; + } + } + + /// + /// 获取或设置结果列表。 + /// + [Newtonsoft.Json.JsonProperty("items")] + [System.Text.Json.Serialization.JsonPropertyName("items")] + public Types.Result[] ResultList { get; set; } = default!; + + /// + /// 获取或设置无效的群聊 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("invalid_chat_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("invalid_chat_id_list")] + public string[]? InvalidGroupChatIdList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpRequest.cs new file mode 100644 index 00000000..0d0fdf2f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口的请求。 + /// + public class CgibinIdConvertUpgradeChatIdForNewCorpRequest : WechatWorkRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpResponse.cs new file mode 100644 index 00000000..848d220f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinIdConvert/CgibinIdConvertUpgradeChatIdForNewCorpResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口的响应。 + /// + public class CgibinIdConvertUpgradeChatIdForNewCorpResponse : WechatWorkResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.json new file mode 100644 index 00000000..48b802c2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertApplyToUpgradeChatIdRequest.json @@ -0,0 +1,3 @@ +{ + "upgrade_time": 1234567 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdRequest.json new file mode 100644 index 00000000..db7415b9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdRequest.json @@ -0,0 +1,3 @@ +{ + "chat_id_list": [ "xxxxxx", "yyyyyy", "zzzzzzz" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdResponse.json new file mode 100644 index 00000000..0a051309 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinIdConvert/CgibinIdConvertChatIdResponse.json @@ -0,0 +1,15 @@ +{ + "errcode": 0, + "errmsg": "ok", + "items": [ + { + "chat_id": "xxxxxx", + "new_chat_id": "XXXXXX" + }, + { + "chat_id": "yyyyyy", + "new_chat_id": "yyyyyy" + } + ], + "invalid_chat_id_list": [ "zzzzzz" ] +}