feat(work): 新增会议布局和背景管理相关接口

This commit is contained in:
Fu Diwei 2023-06-16 16:17:31 +08:00
parent 8a8cc35b0e
commit ab1d417a7f
34 changed files with 980 additions and 0 deletions

View File

@ -496,6 +496,208 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
#endregion
#region Layout
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/meeting/layout/list_template 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98844 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutListTemplateResponse> ExecuteCgibinMeetingLayoutListTemplateAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutListTemplateRequest 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.Get, "cgi-bin", "meeting", "layout", "list_template")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutListTemplateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/add 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98845 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutAddResponse> ExecuteCgibinMeetingLayoutAddAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutAddRequest 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", "meeting", "layout", "add")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/update 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98846 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutUpdateResponse> ExecuteCgibinMeetingLayoutUpdateAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutUpdateRequest 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", "meeting", "layout", "update")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/set_default 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98847 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutSetDefaultResponse> ExecuteCgibinMeetingLayoutSetDefaultAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutSetDefaultRequest 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", "meeting", "layout", "set_default")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutSetDefaultResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/advanced_layout/batch_delete 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98866 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutBatchDeleteResponse> ExecuteCgibinMeetingLayoutBatchDeleteAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutBatchDeleteRequest 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", "meeting", "advanced_layout", "batch_delete")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutBatchDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/add_background 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98851 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutAddBackgroundResponse> ExecuteCgibinMeetingLayoutAddBackgroundAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutAddBackgroundRequest 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", "meeting", "layout", "add_background")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutAddBackgroundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/set_default_background 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98852 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutSetDefaultBackgroundResponse> ExecuteCgibinMeetingLayoutSetDefaultBackgroundAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutSetDefaultBackgroundRequest 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", "meeting", "layout", "set_default_background")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutSetDefaultBackgroundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/list_background 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98856 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutListBackgroundResponse> ExecuteCgibinMeetingLayoutListBackgroundAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutListBackgroundRequest 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", "meeting", "layout", "list_background")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutListBackgroundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/delete_background 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98853 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutDeleteBackgroundResponse> ExecuteCgibinMeetingLayoutDeleteBackgroundAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutDeleteBackgroundRequest 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", "meeting", "layout", "delete_background")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutDeleteBackgroundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/layout/batch_delete_background 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98854 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingLayoutBatchDeleteBackgroundResponse> ExecuteCgibinMeetingLayoutBatchDeleteBackgroundAsync(this WechatWorkClient client, Models.CgibinMeetingLayoutBatchDeleteBackgroundRequest 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", "meeting", "layout", "batch_delete_background")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingLayoutBatchDeleteBackgroundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region MRA
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/mra/query_status 接口。</para>

View File

@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/add_background 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutAddBackgroundRequest : WechatWorkRequest
{
public static class Types
{
public class BackgroundImage
{
/// <summary>
/// 获取或设置背景图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string ImageUrl { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景图片 MD5 值。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_md5")]
[System.Text.Json.Serialization.JsonPropertyName("image_md5")]
public string ImageMd5 { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景图片列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_list")]
[System.Text.Json.Serialization.JsonPropertyName("image_list")]
public IList<Types.BackgroundImage> BackgroundImageList { get; set; } = new List<Types.BackgroundImage>();
/// <summary>
/// 获取或设置默认背景图片序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("default_image_order")]
[System.Text.Json.Serialization.JsonPropertyName("default_image_order")]
public int? DefaultBackgroundOrder { get; set; }
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/add_background 接口的响应。</para>
/// </summary>
public class CgibinMeetingLayoutAddBackgroundResponse : WechatWorkResponse
{
public static class Types
{
public class BackgroundImage : CgibinMeetingLayoutListBackgroundResponse.Types.BackgroundImage
{
}
}
/// <summary>
/// 获取或设置会议应用的背景 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("selected_background_id")]
[System.Text.Json.Serialization.JsonPropertyName("selected_background_id")]
public string SelectedBackgroundId { get; set; } = default!;
/// <summary>
/// 获取或设置背景图片列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_list")]
[System.Text.Json.Serialization.JsonPropertyName("background_list")]
public Types.BackgroundImage[] BackgroundImageList { get; set; } = default!;
}
}

View File

@ -0,0 +1,112 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/add 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutAddRequest : WechatWorkRequest
{
public static class Types
{
public class Layout
{
public static class Types
{
public class Page
{
public static class Types
{
public class UserSeat
{
/// <summary>
/// 获取或设置宫格 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("grid_id")]
[System.Text.Json.Serialization.JsonPropertyName("grid_id")]
public string GridId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置宫格类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("grid_type")]
[System.Text.Json.Serialization.JsonPropertyName("grid_type")]
public int GridType { get; set; }
/// <summary>
/// 获取或设置参会的成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置参会的成员临时 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_openid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_openid")]
public string? TempOpenId { get; set; }
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nick_name")]
[System.Text.Json.Serialization.JsonPropertyName("nick_name")]
public string? Nickname { get; set; }
/// <summary>
/// 获取或设置拓展应用 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tool_sdkid")]
[System.Text.Json.Serialization.JsonPropertyName("tool_sdkid")]
public string? ToolSdkId { get; set; }
}
}
/// <summary>
/// 获取或设置布局模板 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_template_id")]
[System.Text.Json.Serialization.JsonPropertyName("layout_template_id")]
public string LayoutTemplateId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户座次列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_seat_list")]
[System.Text.Json.Serialization.JsonPropertyName("user_seat_list")]
public IList<Types.UserSeat> UserSeatList { get; set; } = new List<Types.UserSeat>();
}
}
/// <summary>
/// 获取或设置布局单页列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_list")]
[System.Text.Json.Serialization.JsonPropertyName("page_list")]
public IList<Types.Page> PageList { get; set; } = new List<Types.Page>();
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置布局列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_list")]
[System.Text.Json.Serialization.JsonPropertyName("layout_list")]
public IList<Types.Layout> LayoutList { get; set; } = new List<Types.Layout>();
/// <summary>
/// 获取或设置默认布局序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("default_layout_order")]
[System.Text.Json.Serialization.JsonPropertyName("default_layout_order")]
public int? DefaultLayoutOrder { get; set; }
}
}

View File

@ -0,0 +1,110 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/add 接口的响应。</para>
/// </summary>
public class CgibinMeetingLayoutAddResponse : WechatWorkResponse
{
public static class Types
{
public class Layout
{
public static class Types
{
public class Page
{
public static class Types
{
public class UserSeat
{
/// <summary>
/// 获取或设置宫格 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("grid_id")]
[System.Text.Json.Serialization.JsonPropertyName("grid_id")]
public string GridId { get; set; } = default!;
/// <summary>
/// 获取或设置宫格类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("grid_type")]
[System.Text.Json.Serialization.JsonPropertyName("grid_type")]
public int GridType { get; set; }
/// <summary>
/// 获取或设置参会的成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置参会的成员临时 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_openid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_openid")]
public string? TempOpenId { get; set; }
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nick_name")]
[System.Text.Json.Serialization.JsonPropertyName("nick_name")]
public string? Nickname { get; set; }
/// <summary>
/// 获取或设置拓展应用 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tool_sdkid")]
[System.Text.Json.Serialization.JsonPropertyName("tool_sdkid")]
public string? ToolSdkId { get; set; }
}
}
/// <summary>
/// 获取或设置布局模板 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_template_id")]
[System.Text.Json.Serialization.JsonPropertyName("layout_template_id")]
public string LayoutTemplateId { get; set; } = default!;
/// <summary>
/// 获取或设置用户座次列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_seat_list")]
[System.Text.Json.Serialization.JsonPropertyName("user_seat_list")]
public Types.UserSeat[] UserSeatList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置布局 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_id")]
[System.Text.Json.Serialization.JsonPropertyName("layout_id")]
public string LayoutId { get; set; } = default!;
/// <summary>
/// 获取或设置布局单页列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_list")]
[System.Text.Json.Serialization.JsonPropertyName("page_list")]
public Types.Page[] PageList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置会议应用的布局 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("selected_layout_id")]
[System.Text.Json.Serialization.JsonPropertyName("selected_layout_id")]
public string SelectedLayoutId { get; set; } = default!;
/// <summary>
/// 获取或设置布局列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_list")]
[System.Text.Json.Serialization.JsonPropertyName("layout_list")]
public Types.Layout[] LayoutList { get; set; } = default!;
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/batch_delete_background 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutBatchDeleteBackgroundRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("background_id_list")]
public IList<string> BackgroundIdList { get; set; } = new List<string>();
}
}

View File

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

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/advanced_layout/batch_delete 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutBatchDeleteRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置布局 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("layout_id_list")]
public IList<string> LayoutIdList { get; set; } = new List<string>();
}
}

View File

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

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/delete_background 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutDeleteBackgroundRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_id")]
[System.Text.Json.Serialization.JsonPropertyName("background_id")]
public string BackgroundId { get; set; } = string.Empty;
}
}

View File

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

View File

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

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/list_background 接口的响应。</para>
/// </summary>
public class CgibinMeetingLayoutListBackgroundResponse : WechatWorkResponse
{
public static class Types
{
public class BackgroundImage
{
/// <summary>
/// 获取或设置背景图片 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_id")]
[System.Text.Json.Serialization.JsonPropertyName("background_id")]
public string BackgroundId { get; set; } = default!;
/// <summary>
/// 获取或设置背景图片 MD5 值。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_md5")]
[System.Text.Json.Serialization.JsonPropertyName("image_md5")]
public string ImageMd5 { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置会议应用的背景 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("selected_background_id")]
[System.Text.Json.Serialization.JsonPropertyName("selected_background_id")]
public string SelectedBackgroundId { get; set; } = default!;
/// <summary>
/// 获取或设置背景图片列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_list")]
[System.Text.Json.Serialization.JsonPropertyName("background_list")]
public Types.BackgroundImage[] BackgroundImageList { get; set; } = default!;
}
}

View File

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

View File

@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [GET] /cgi-bin/meeting/layout/list_template 接口的响应。</para>
/// </summary>
public class CgibinMeetingLayoutListTemplateResponse : WechatWorkResponse
{
public static class Types
{
public class LayoutTemplate
{
/// <summary>
/// 获取或设置布局模板 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_template_id")]
[System.Text.Json.Serialization.JsonPropertyName("layout_template_id")]
public string LayoutTemplateId { get; set; } = default!;
/// <summary>
/// 获取或设置缩略图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("thumbnail_url")]
[System.Text.Json.Serialization.JsonPropertyName("thumbnail_url")]
public string ThumbnailUrl { get; set; } = default!;
/// <summary>
/// 获取或设置布局图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("picture_url")]
[System.Text.Json.Serialization.JsonPropertyName("picture_url")]
public string PictureUrl { get; set; } = default!;
/// <summary>
/// 获取或设置渲染规则JSON 格式)。
/// </summary>
[Newtonsoft.Json.JsonProperty("render_rule")]
[System.Text.Json.Serialization.JsonPropertyName("render_rule")]
public string RenderRuleJson { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置布局模板列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_template_list")]
[System.Text.Json.Serialization.JsonPropertyName("layout_template_list")]
public Types.LayoutTemplate[] LayoutTemplateList { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/set_default_background 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutSetDefaultBackgroundRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议应用的背景 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("selected_background_id")]
[System.Text.Json.Serialization.JsonPropertyName("selected_background_id")]
public string SelectedBackgroundId { get; set; } = string.Empty;
}
}

View File

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

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/set_default 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutSetDefaultRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议应用的布局 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("selected_layout_id")]
[System.Text.Json.Serialization.JsonPropertyName("selected_layout_id")]
public string SelectedLayoutId { get; set; } = string.Empty;
}
}

View File

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

View File

@ -0,0 +1,58 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/layout/update 接口的请求。</para>
/// </summary>
public class CgibinMeetingLayoutUpdateRequest : WechatWorkRequest
{
public static class Types
{
public class Page : CgibinMeetingLayoutAddRequest.Types.Layout.Types.Page
{
public static new class Types
{
public class UserSeat : CgibinMeetingLayoutAddRequest.Types.Layout.Types.Page.Types.UserSeat
{
}
}
/// <summary>
/// 获取或设置用户座次列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_seat_list")]
[System.Text.Json.Serialization.JsonPropertyName("user_seat_list")]
public new IList<Types.UserSeat> UserSeatList { get; set; } = new List<Types.UserSeat>();
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置布局 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("layout_id")]
[System.Text.Json.Serialization.JsonPropertyName("layout_id")]
public string LayoutId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置布局单页列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_list")]
[System.Text.Json.Serialization.JsonPropertyName("page_list")]
public IList<Types.Page> PageList { get; set; } = new List<Types.Page>();
/// <summary>
/// 获取或设置是否设置为会议应用的布局。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_set_default")]
[System.Text.Json.Serialization.JsonPropertyName("enable_set_default")]
public bool? EnableSetDefault { get; set; }
}
}

View File

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

View File

@ -0,0 +1,10 @@
{
"meetingid": "MEETINGID",
"image_list": [
{
"image_md5": "eax879asd3z",
"image_url": "https://image.qq.com/1jsaz.png"
}
],
"default_image_order": 1
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"selected_background_id": "BACKID1",
"background_list": [
{
"background_id": "BACKID1",
"image_md5": "eax879asd3z"
}
]
}

View File

@ -0,0 +1,23 @@
{
"meetingid": "MEETINGID",
"layout_list": [
{
"page_list": [
{
"layout_template_id": "TEMID1",
"user_seat_list": [
{
"grid_id": "10",
"grid_type": 1,
"userid": "USERID",
"tmp_openid": "68j2xkYT1",
"nick_name": "NICK",
"tool_sdkid": "SDKID"
}
]
}
]
}
],
"default_layout_order": 1
}

View File

@ -0,0 +1,25 @@
{
"errcode": 0,
"errmsg": "ok",
"selected_layout_id": "LAYOUTID1",
"layout_list": [
{
"layout_id": "LAYOUTID1",
"page_list": [
{
"layout_template_id": "TEMID1",
"user_seat_list": [
{
"grid_id": "10",
"grid_type": 1,
"userid": "USERID",
"tmp_openid": "68j2xkYT1",
"nick_name": "NICK",
"tool_sdkid": "SDKID"
}
]
}
]
}
]
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"background_id_list": [ "BACKID1", "BACKID2" ]
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"layout_id_list": [ "LAYOUTID1", "LAYOUTID2" ]
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"background_id": "BACKID1"
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"selected_background_id": "BACKID1",
"background_list": [
{
"background_id": "BACKID1",
"image_md5": "eax879asd3z"
}
]
}

View File

@ -0,0 +1,12 @@
{
"errcode": 0,
"errmsg": "ok",
"layout_template_list": [
{
"layout_template_id": "1",
"thumbnail_url": "https://xxx.1.d/1.png",
"picture_url": "https://xxx.yyy.mmm/sss.jpg",
"render_rule": "{\"layout_width\":960,\"layout_height\":540,\"layout_items\":[{\"seat_id\":1,\"stream_size\":1,\"pos\":{\"left\":\"0.00000000\",\"top\":\"0.00000000\"},\"size\":{\"width\":\"1.00000000\",\"height\":\"1.00000000\"},\"margin\":{\"top\":\"0.0\",\"left\":\"0.0\",\"bottom\":\"0.0\",\"right\":\"0.0\"}}]}"
}
]
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"selected_background_id": "BACKID1"
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"selected_layout_id": "3acdd90-b0b2"
}

View File

@ -0,0 +1,20 @@
{
"meetingid": "MEETINGID",
"layout_id": "LAYOUTID1",
"page_list": [
{
"layout_template_id": "TEMID1",
"user_seat_list": [
{
"grid_id": "10",
"grid_type": 1,
"userid": "USERID",
"tmp_openid": "68j2xkYT1",
"nick_name": "NICK",
"tool_sdkid": "SDKID"
}
]
}
],
"enable_set_default": false
}