feat(work): 新增客户群加入群聊管理相关接口

This commit is contained in:
Fu Diwei
2022-01-13 18:19:20 +08:00
parent d808721c99
commit 4e649a7d49
19 changed files with 418 additions and 0 deletions

View File

@@ -668,6 +668,88 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupChatStatisticsGroupByDayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region JoinWay
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/add_join_way 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/92229 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactGroupChatAddJoinWayResponse> ExecuteCgibinExternalContactGroupChatAddJoinWayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatAddJoinWayRequest 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", "externalcontact", "groupchat", "add_join_way")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupChatAddJoinWayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/get_join_way 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/92229 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactGroupChatGetJoinWayResponse> ExecuteCgibinExternalContactGroupChatGetJoinWayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatGetJoinWayRequest 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", "externalcontact", "groupchat", "get_join_way")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupChatGetJoinWayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/update_join_way 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/92229 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactGroupChatUpdateJoinWayResponse> ExecuteCgibinExternalContactGroupChatUpdateJoinWayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatUpdateJoinWayRequest 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", "externalcontact", "groupchat", "update_join_way")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupChatUpdateJoinWayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/del_join_way 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/92229 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactGroupChatDeleteJoinWayResponse> ExecuteCgibinExternalContactGroupChatDeleteJoinWayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatDeleteJoinWayRequest 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", "externalcontact", "groupchat", "del_join_way")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupChatDeleteJoinWayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#endregion
#region Moment

View File

@@ -81,6 +81,13 @@
[Newtonsoft.Json.JsonProperty("join_time")]
[System.Text.Json.Serialization.JsonPropertyName("join_time")]
public long JoinTimestamp { get; set; }
/// <summary>
/// 获取或设置入群渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string? State { get; set; }
}
public class Administrator

View File

@@ -0,0 +1,59 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/add_join_way 接口的请求。</para>
/// </summary>
public class CgibinExternalContactGroupChatAddJoinWayRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置场景值。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene")]
[System.Text.Json.Serialization.JsonPropertyName("scene")]
public int Scene { get; set; }
/// <summary>
/// 获取或设置备注信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
/// <summary>
/// 获取或设置是否自动新建群。
/// </summary>
[Newtonsoft.Json.JsonProperty("auto_create_room")]
[System.Text.Json.Serialization.JsonPropertyName("auto_create_room")]
public int? AutoCreateRoom { get; set; }
/// <summary>
/// 获取或设置自动建群的群名前缀。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_name")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_name")]
public string? RoomBaseName { get; set; }
/// <summary>
/// 获取或设置自动建群的群起始序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_id")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_id")]
public int? RoomBaseId { get; set; }
/// <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>();
/// <summary>
/// 获取或设置入群渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string? State { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/add_join_way 接口的响应。</para>
/// </summary>
public class CgibinExternalContactGroupChatAddJoinWayResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("config_id")]
[System.Text.Json.Serialization.JsonPropertyName("config_id")]
public string ConfigId { get; set; } = default!;
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/del_join_way 接口的请求。</para>
/// </summary>
public class CgibinExternalContactGroupChatDeleteJoinWayRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("config_id")]
[System.Text.Json.Serialization.JsonPropertyName("config_id")]
public string ConfigId { get; set; } = string.Empty;
}
}

View File

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

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/get_join_way 接口的请求。</para>
/// </summary>
public class CgibinExternalContactGroupChatGetJoinWayRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("config_id")]
[System.Text.Json.Serialization.JsonPropertyName("config_id")]
public string ConfigId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,84 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/get_join_way 接口的响应。</para>
/// </summary>
public class CgibinExternalContactGroupChatGetJoinWayResponse : WechatWorkResponse
{
public static class Types
{
public class JoinWay
{
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("config_id")]
[System.Text.Json.Serialization.JsonPropertyName("config_id")]
public string ConfigId { get; set; } = default!;
/// <summary>
/// 获取或设置场景值。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene")]
[System.Text.Json.Serialization.JsonPropertyName("scene")]
public int Scene { get; set; }
/// <summary>
/// 获取或设置备注信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string Remark { get; set; } = default!;
/// <summary>
/// 获取或设置是否自动新建群。
/// </summary>
[Newtonsoft.Json.JsonProperty("auto_create_room")]
[System.Text.Json.Serialization.JsonPropertyName("auto_create_room")]
public int AutoCreateRoom { get; set; }
/// <summary>
/// 获取或设置自动建群的群名前缀。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_name")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_name")]
public string? RoomBaseName { get; set; }
/// <summary>
/// 获取或设置自动建群的群起始序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_id")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_id")]
public int? RoomBaseId { get; set; }
/// <summary>
/// 获取或设置客户群 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chat_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id_list")]
public string[] GroupChatIdList { get; set; } = default!;
/// <summary>
/// 获取或设置联系二维码 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("qr_code")]
[System.Text.Json.Serialization.JsonPropertyName("qr_code")]
public string? QrcodeUrl { get; set; }
/// <summary>
/// 获取或设置入群渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string? State { get; set; }
}
}
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("join_way")]
[System.Text.Json.Serialization.JsonPropertyName("join_way")]
public Types.JoinWay JoinWay { get; set; } = default!;
}
}

View File

@@ -0,0 +1,66 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/groupchat/update_join_way 接口的请求。</para>
/// </summary>
public class CgibinExternalContactGroupChatUpdateJoinWayRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置配置 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("config_id")]
[System.Text.Json.Serialization.JsonPropertyName("config_id")]
public string ConfigId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置场景值。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene")]
[System.Text.Json.Serialization.JsonPropertyName("scene")]
public int Scene { get; set; }
/// <summary>
/// 获取或设置备注信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
/// <summary>
/// 获取或设置是否自动新建群。
/// </summary>
[Newtonsoft.Json.JsonProperty("auto_create_room")]
[System.Text.Json.Serialization.JsonPropertyName("auto_create_room")]
public int? AutoCreateRoom { get; set; }
/// <summary>
/// 获取或设置自动建群的群名前缀。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_name")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_name")]
public string? RoomBaseName { get; set; }
/// <summary>
/// 获取或设置自动建群的群起始序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_base_id")]
[System.Text.Json.Serialization.JsonPropertyName("room_base_id")]
public int? RoomBaseId { get; set; }
/// <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>();
/// <summary>
/// 获取或设置入群渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string? State { get; set; }
}
}

View File

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