feat(work): 新增服务商群 ID 的升级转换相关接口

This commit is contained in:
Fu Diwei 2024-06-01 15:02:10 +08:00
parent dd9547731c
commit 5724d826dc
10 changed files with 191 additions and 0 deletions

View File

@ -126,5 +126,74 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinIdConvertConvertTempExternalUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/99601 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinIdConvertApplyToUpgradeChatIdResponse> 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<Models.CgibinIdConvertApplyToUpgradeChatIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/idconvert/chatid 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/99601 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinIdConvertChatIdResponse> 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<Models.CgibinIdConvertChatIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/99601 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinIdConvertUpgradeChatIdForNewCorpResponse> 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<Models.CgibinIdConvertUpgradeChatIdForNewCorpResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口的请求。</para>
/// </summary>
public class CgibinIdConvertApplyToUpgradeChatIdRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置完成升级的时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("upgrade_time")]
[System.Text.Json.Serialization.JsonPropertyName("upgrade_time")]
public long UpgradeTimestamp { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/apply_to_upgrade_chatid 接口的响应。</para>
/// </summary>
public class CgibinIdConvertApplyToUpgradeChatIdResponse : WechatWorkResponse
{
}
}

View File

@ -0,0 +1,17 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/chatid 接口的请求。</para>
/// </summary>
public class CgibinIdConvertChatIdRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置群聊 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chat_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id_list")]
public IList<string> GroupChatIdList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/chatid 接口的响应。</para>
/// </summary>
public class CgibinIdConvertChatIdResponse : WechatWorkResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置升级前的群聊 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
public string GroupChatId { get; set; } = default!;
/// <summary>
/// 获取或设置升级后的群聊 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("new_chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("new_chat_id")]
public string NewGroupChatId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("items")]
[System.Text.Json.Serialization.JsonPropertyName("items")]
public Types.Result[] ResultList { get; set; } = default!;
/// <summary>
/// 获取或设置无效的群聊 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("invalid_chat_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("invalid_chat_id_list")]
public string[]? InvalidGroupChatIdList { get; set; } = default!;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口的请求。</para>
/// </summary>
public class CgibinIdConvertUpgradeChatIdForNewCorpRequest : WechatWorkRequest
{
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/idconvert/upgrade_chatid_for_new_corp 接口的响应。</para>
/// </summary>
public class CgibinIdConvertUpgradeChatIdForNewCorpResponse : WechatWorkResponse
{
}
}

View File

@ -0,0 +1,3 @@
{
"chat_id_list": [ "xxxxxx", "yyyyyy", "zzzzzzz" ]
}

View File

@ -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" ]
}