Skip to content

Commit 5c48ed6

Browse files
committed
feat(work): 新增智能表格内容编组相关接口
1 parent e2b90ac commit 5c48ed6

16 files changed

Lines changed: 488 additions & 0 deletions

src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,98 @@ public static class WechatWorkClientExecuteCgibinWedocExtensions
727727
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinWedocSmartSheetDeleteRecordsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
728728
}
729729

730+
/// <summary>
731+
/// <para>异步调用 [POST] /cgi-bin/wedoc/smartsheet/get_field_groups 接口。</para>
732+
/// <para>
733+
/// REF: <br/>
734+
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/101103 ]]>
735+
/// </para>
736+
/// </summary>
737+
/// <param name="client"></param>
738+
/// <param name="request"></param>
739+
/// <param name="cancellationToken"></param>
740+
/// <returns></returns>
741+
public static async Task<Models.CgibinWedocSmartSheetGetFieldGroupsResponse> ExecuteCgibinWedocSmartSheetGetFieldGroupsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetGetFieldGroupsRequest request, CancellationToken cancellationToken = default)
742+
{
743+
if (client is null) throw new ArgumentNullException(nameof(client));
744+
if (request is null) throw new ArgumentNullException(nameof(request));
745+
746+
IFlurlRequest flurlReq = client
747+
.CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "get_field_groups")
748+
.SetQueryParam("access_token", request.AccessToken);
749+
750+
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinWedocSmartSheetGetFieldGroupsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
751+
}
752+
753+
/// <summary>
754+
/// <para>异步调用 [POST] /cgi-bin/wedoc/smartsheet/add_field_group 接口。</para>
755+
/// <para>
756+
/// REF: <br/>
757+
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/101100 ]]>
758+
/// </para>
759+
/// </summary>
760+
/// <param name="client"></param>
761+
/// <param name="request"></param>
762+
/// <param name="cancellationToken"></param>
763+
/// <returns></returns>
764+
public static async Task<Models.CgibinWedocSmartSheetAddFieldGroupResponse> ExecuteCgibinWedocSmartSheetAddFieldGroupAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetAddFieldGroupRequest request, CancellationToken cancellationToken = default)
765+
{
766+
if (client is null) throw new ArgumentNullException(nameof(client));
767+
if (request is null) throw new ArgumentNullException(nameof(request));
768+
769+
IFlurlRequest flurlReq = client
770+
.CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "add_field_group")
771+
.SetQueryParam("access_token", request.AccessToken);
772+
773+
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinWedocSmartSheetAddFieldGroupResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
774+
}
775+
776+
/// <summary>
777+
/// <para>异步调用 [POST] /cgi-bin/wedoc/smartsheet/update_field_group 接口。</para>
778+
/// <para>
779+
/// REF: <br/>
780+
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/101101 ]]>
781+
/// </para>
782+
/// </summary>
783+
/// <param name="client"></param>
784+
/// <param name="request"></param>
785+
/// <param name="cancellationToken"></param>
786+
/// <returns></returns>
787+
public static async Task<Models.CgibinWedocSmartSheetUpdateFieldGroupResponse> ExecuteCgibinWedocSmartSheetUpdateFieldGroupAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetUpdateFieldGroupRequest request, CancellationToken cancellationToken = default)
788+
{
789+
if (client is null) throw new ArgumentNullException(nameof(client));
790+
if (request is null) throw new ArgumentNullException(nameof(request));
791+
792+
IFlurlRequest flurlReq = client
793+
.CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "update_field_group")
794+
.SetQueryParam("access_token", request.AccessToken);
795+
796+
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinWedocSmartSheetUpdateFieldGroupResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
797+
}
798+
799+
/// <summary>
800+
/// <para>异步调用 [POST] /cgi-bin/wedoc/smartsheet/delete_field_groups 接口。</para>
801+
/// <para>
802+
/// REF: <br/>
803+
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/101102 ]]>
804+
/// </para>
805+
/// </summary>
806+
/// <param name="client"></param>
807+
/// <param name="request"></param>
808+
/// <param name="cancellationToken"></param>
809+
/// <returns></returns>
810+
public static async Task<Models.CgibinWedocSmartSheetDeleteFieldGroupsResponse> ExecuteCgibinWedocSmartSheetDeleteFieldGroupsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetDeleteFieldGroupsRequest request, CancellationToken cancellationToken = default)
811+
{
812+
if (client is null) throw new ArgumentNullException(nameof(client));
813+
if (request is null) throw new ArgumentNullException(nameof(request));
814+
815+
IFlurlRequest flurlReq = client
816+
.CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "delete_field_groups")
817+
.SetQueryParam("access_token", request.AccessToken);
818+
819+
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinWedocSmartSheetDeleteFieldGroupsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
820+
}
821+
730822
#region SmartSheet/GroupChat
731823
/// <summary>
732824
/// <para>异步调用 [POST] /cgi-bin/wedoc/smartsheet/groupchat/list 接口。</para>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/add_field_group 接口的请求。</para>
7+
/// </summary>
8+
public class CgibinWedocSmartSheetAddFieldGroupRequest : WechatWorkRequest
9+
{
10+
public static class Types
11+
{
12+
public class Field
13+
{
14+
/// <summary>
15+
/// 获取或设置字段 ID。
16+
/// </summary>
17+
[Newtonsoft.Json.JsonProperty("field_id")]
18+
[System.Text.Json.Serialization.JsonPropertyName("field_id")]
19+
public string FieldId { get; set; } = string.Empty;
20+
}
21+
}
22+
23+
/// <summary>
24+
/// 获取或设置文档 ID。
25+
/// </summary>
26+
[Newtonsoft.Json.JsonProperty("docid")]
27+
[System.Text.Json.Serialization.JsonPropertyName("docid")]
28+
public string DocumentId { get; set; } = string.Empty;
29+
30+
/// <summary>
31+
/// 获取或设置子表 ID。
32+
/// </summary>
33+
[Newtonsoft.Json.JsonProperty("sheet_id")]
34+
[System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
35+
public string SheetId { get; set; } = string.Empty;
36+
37+
/// <summary>
38+
/// 获取或设置编组名称。
39+
/// </summary>
40+
[Newtonsoft.Json.JsonProperty("name")]
41+
[System.Text.Json.Serialization.JsonPropertyName("name")]
42+
public string Name { get; set; } = string.Empty;
43+
44+
/// <summary>
45+
/// 获取或设置字段列表。
46+
/// </summary>
47+
[Newtonsoft.Json.JsonProperty("children")]
48+
[System.Text.Json.Serialization.JsonPropertyName("children")]
49+
public IList<Types.Field>? FieldList { get; set; }
50+
}
51+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/add_field_group 接口的响应。</para>
5+
/// </summary>
6+
public class CgibinWedocSmartSheetAddFieldGroupResponse : WechatWorkResponse
7+
{
8+
public static class Types
9+
{
10+
public class FieldGroup : CgibinWedocSmartSheetGetFieldGroupsResponse.Types.FieldGroup
11+
{
12+
}
13+
}
14+
15+
/// <summary>
16+
/// 获取或设置编组信息。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("field_group")]
19+
[System.Text.Json.Serialization.JsonPropertyName("field_group")]
20+
public Types.FieldGroup FieldGroup { get; set; } = default!;
21+
}
22+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/delete_field_groups 接口的请求。</para>
7+
/// </summary>
8+
public class CgibinWedocSmartSheetDeleteFieldGroupsRequest : WechatWorkRequest
9+
{
10+
/// <summary>
11+
/// 获取或设置文档 ID。
12+
/// </summary>
13+
[Newtonsoft.Json.JsonProperty("docid")]
14+
[System.Text.Json.Serialization.JsonPropertyName("docid")]
15+
public string DocumentId { get; set; } = string.Empty;
16+
17+
/// <summary>
18+
/// 获取或设置子表 ID。
19+
/// </summary>
20+
[Newtonsoft.Json.JsonProperty("sheet_id")]
21+
[System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
22+
public string SheetId { get; set; } = string.Empty;
23+
24+
/// <summary>
25+
/// 获取或设置编组 ID 列表。
26+
/// </summary>
27+
[Newtonsoft.Json.JsonProperty("field_group_ids")]
28+
[System.Text.Json.Serialization.JsonPropertyName("field_group_ids")]
29+
public IList<string> FieldGroupIdList { get; set; } = new List<string>();
30+
}
31+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/delete_field_groups 接口的响应。</para>
5+
/// </summary>
6+
public class CgibinWedocSmartSheetDeleteFieldGroupsResponse : WechatWorkResponse
7+
{
8+
}
9+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/get_field_groups 接口的请求。</para>
5+
/// </summary>
6+
public class CgibinWedocSmartSheetGetFieldGroupsRequest : WechatWorkRequest
7+
{
8+
/// <summary>
9+
/// 获取或设置文档 ID。
10+
/// </summary>
11+
[Newtonsoft.Json.JsonProperty("docid")]
12+
[System.Text.Json.Serialization.JsonPropertyName("docid")]
13+
public string DocumentId { get; set; } = string.Empty;
14+
15+
/// <summary>
16+
/// 获取或设置子表 ID。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("sheet_id")]
19+
[System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
20+
public string SheetId { get; set; } = string.Empty;
21+
22+
/// <summary>
23+
/// 获取或设置分页起始位置。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonProperty("offset")]
26+
[System.Text.Json.Serialization.JsonPropertyName("offset")]
27+
public int? Offset { get; set; }
28+
29+
/// <summary>
30+
/// 获取或设置分页每页数量。
31+
/// </summary>
32+
[Newtonsoft.Json.JsonProperty("limit")]
33+
[System.Text.Json.Serialization.JsonPropertyName("limit")]
34+
public int? Limit { get; set; }
35+
}
36+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/get_field_groups 接口的响应。</para>
5+
/// </summary>
6+
public class CgibinWedocSmartSheetGetFieldGroupsResponse : WechatWorkResponse
7+
{
8+
public static class Types
9+
{
10+
public class FieldGroup
11+
{
12+
public static class Types
13+
{
14+
public class Field
15+
{
16+
/// <summary>
17+
/// 获取或设置字段 ID。
18+
/// </summary>
19+
[Newtonsoft.Json.JsonProperty("field_id")]
20+
[System.Text.Json.Serialization.JsonPropertyName("field_id")]
21+
public string FieldId { get; set; } = default!;
22+
}
23+
}
24+
25+
/// <summary>
26+
/// 获取或设置编组 ID。
27+
/// </summary>
28+
[Newtonsoft.Json.JsonProperty("field_group_id")]
29+
[System.Text.Json.Serialization.JsonPropertyName("field_group_id")]
30+
public string FieldGroupId { get; set; } = default!;
31+
32+
/// <summary>
33+
/// 获取或设置编组名称。
34+
/// </summary>
35+
[Newtonsoft.Json.JsonProperty("name")]
36+
[System.Text.Json.Serialization.JsonPropertyName("name")]
37+
public string Name { get; set; } = default!;
38+
39+
/// <summary>
40+
/// 获取或设置字段列表。
41+
/// </summary>
42+
[Newtonsoft.Json.JsonProperty("children")]
43+
[System.Text.Json.Serialization.JsonPropertyName("children")]
44+
public Types.Field[] FieldList { get; set; } = default!;
45+
}
46+
}
47+
48+
/// <summary>
49+
/// 获取或设置编组列表。
50+
/// </summary>
51+
[Newtonsoft.Json.JsonProperty("field_groups")]
52+
[System.Text.Json.Serialization.JsonPropertyName("field_groups")]
53+
public Types.FieldGroup[] FieldGroupList { get; set; } = default!;
54+
55+
/// <summary>
56+
/// 获取或设置总数量。
57+
/// </summary>
58+
[Newtonsoft.Json.JsonProperty("total")]
59+
[System.Text.Json.Serialization.JsonPropertyName("total")]
60+
public int TotalCount { get; set; }
61+
62+
/// <summary>
63+
/// 获取或设置是否还有更多数据。
64+
/// </summary>
65+
[Newtonsoft.Json.JsonProperty("has_more")]
66+
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
67+
public bool HasMore { get; set; }
68+
69+
/// <summary>
70+
/// 获取或设置下一页起始位置。
71+
/// </summary>
72+
[Newtonsoft.Json.JsonProperty("next")]
73+
[System.Text.Json.Serialization.JsonPropertyName("next")]
74+
public int? NextOffset { get; set; }
75+
}
76+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /cgi-bin/wedoc/smartsheet/update_field_group 接口的请求。</para>
7+
/// </summary>
8+
public class CgibinWedocSmartSheetUpdateFieldGroupRequest : WechatWorkRequest
9+
{
10+
public static class Types
11+
{
12+
public class Field
13+
{
14+
/// <summary>
15+
/// 获取或设置字段 ID。
16+
/// </summary>
17+
[Newtonsoft.Json.JsonProperty("field_id")]
18+
[System.Text.Json.Serialization.JsonPropertyName("field_id")]
19+
public string FieldId { get; set; } = string.Empty;
20+
}
21+
}
22+
23+
/// <summary>
24+
/// 获取或设置文档 ID。
25+
/// </summary>
26+
[Newtonsoft.Json.JsonProperty("docid")]
27+
[System.Text.Json.Serialization.JsonPropertyName("docid")]
28+
public string DocumentId { get; set; } = string.Empty;
29+
30+
/// <summary>
31+
/// 获取或设置子表 ID。
32+
/// </summary>
33+
[Newtonsoft.Json.JsonProperty("sheet_id")]
34+
[System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
35+
public string SheetId { get; set; } = string.Empty;
36+
37+
/// <summary>
38+
/// 获取或设置编组 ID。
39+
/// </summary>
40+
[Newtonsoft.Json.JsonProperty("field_group_id")]
41+
[System.Text.Json.Serialization.JsonPropertyName("field_group_id")]
42+
public string FieldGroupId { get; set; } = string.Empty;
43+
44+
/// <summary>
45+
/// 获取或设置编组名称。
46+
/// </summary>
47+
[Newtonsoft.Json.JsonProperty("name")]
48+
[System.Text.Json.Serialization.JsonPropertyName("name")]
49+
public string? Name { get; set; }
50+
51+
/// <summary>
52+
/// 获取或设置字段列表。
53+
/// </summary>
54+
[Newtonsoft.Json.JsonProperty("children")]
55+
[System.Text.Json.Serialization.JsonPropertyName("children")]
56+
public IList<Types.Field>? FieldList { get; set; }
57+
}
58+
}

0 commit comments

Comments
 (0)