From 1b8734fc5eb0e63be18428bd6c54b4c575627d25 Mon Sep 17 00:00:00 2001 From: fudiwei Date: Wed, 11 Jan 2023 13:13:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E6=96=B0=E5=A2=9E=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=A1=A8=E6=A0=BC=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tWorkClientExecuteCgibinWedocExtensions.cs | 82 +++++ .../CgibinWedocDocumentBatchUpdateRequest.cs | 266 ++++++++++++++ .../CgibinWedocDocumentBatchUpdateResponse.cs | 9 + ...gibinWedocSpreadSheetBatchUpdateRequest.cs | 342 ++++++++++++++++++ ...ibinWedocSpreadSheetBatchUpdateResponse.cs | 112 ++++++ ...docSpreadSheetGetSheetPropertiesRequest.cs | 15 + ...ocSpreadSheetGetSheetPropertiesResponse.cs | 49 +++ ...edocSpreadSheetGetSheetRangeDataRequest.cs | 29 ++ ...docSpreadSheetGetSheetRangeDataResponse.cs | 227 ++++++++++++ ...CgibinWedocDocumentBatchUpdateRequest.json | 73 ++++ ...binWedocSpreadSheetBatchUpdateRequest.json | 63 ++++ ...inWedocSpreadSheetBatchUpdateResponse.json | 33 ++ ...cSpreadSheetGetSheetPropertiesRequest.json | 3 + ...SpreadSheetGetSheetPropertiesResponse.json | 12 + ...ocSpreadSheetGetSheetRangeDataRequest.json | 5 + ...cSpreadSheetGetSheetRangeDataResponse.json | 41 +++ 16 files changed, 1361 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs index ad09412e..1667fb4a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs @@ -189,6 +189,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /cgi-bin/wedoc/document/batch_update 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/97626 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWedocDocumentBatchUpdateAsync(this WechatWorkClient client, Models.CgibinWedocDocumentBatchUpdateRequest 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", "wedoc", "document", "batch_update") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } #endregion #region Form @@ -292,5 +312,67 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region SpreadSheet + /// + /// 异步调用 [POST] /cgi-bin/wedoc/spreadsheet/batch_update 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/97628 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWedocSpreadSheetBatchUpdateAsync(this WechatWorkClient client, Models.CgibinWedocSpreadSheetBatchUpdateRequest 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", "wedoc", "spreadsheet", "batch_update") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_properties 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/97711 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWedocSpreadSheetGetSheetPropertiesAsync(this WechatWorkClient client, Models.CgibinWedocSpreadSheetGetSheetPropertiesRequest 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", "wedoc", "spreadsheet", "get_sheet_properties") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_range_data 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/97661 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWedocSpreadSheetGetSheetRangeDataAsync(this WechatWorkClient client, Models.CgibinWedocSpreadSheetGetSheetRangeDataRequest 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", "wedoc", "spreadsheet", "get_sheet_range_data") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.cs new file mode 100644 index 00000000..81866595 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.cs @@ -0,0 +1,266 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/document/batch_update 接口的请求。 + /// + public class CgibinWedocDocumentBatchUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class UpdateRequest + { + public static class Types + { + public class Range + { + /// + /// 获取或设置起始位置。 + /// + [Newtonsoft.Json.JsonProperty("start_index")] + [System.Text.Json.Serialization.JsonPropertyName("start_index")] + public int StartIndex { get; set; } + + /// + /// 获取或设置长度。 + /// + [Newtonsoft.Json.JsonProperty("length")] + [System.Text.Json.Serialization.JsonPropertyName("length")] + public int Length { get; set; } + } + + public class Location + { + /// + /// 获取或设置位置。 + /// + [Newtonsoft.Json.JsonProperty("index")] + [System.Text.Json.Serialization.JsonPropertyName("index")] + public int Index { get; set; } + } + + public class ReplaceTextRequest + { + /// + /// 获取或设置要替换的文本。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Text { get; set; } = string.Empty; + + /// + /// 获取或设置要替换的文档范围列表。 + /// + [Newtonsoft.Json.JsonProperty("ranges")] + [System.Text.Json.Serialization.JsonPropertyName("ranges")] + public IList RangeList { get; set; } = new List(); + } + + public class InsertTextRequest + { + /// + /// 获取或设置要插入的文本。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Text { get; set; } = string.Empty; + + /// + /// 获取或设置插入的位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Location Location { get; set; } = new Location(); + } + + public class DeleteContentRequest + { + /// + /// 获取或设置要删除的范围信息。 + /// + [Newtonsoft.Json.JsonProperty("range")] + [System.Text.Json.Serialization.JsonPropertyName("range")] + public Range Range { get; set; } = new Range(); + } + + public class InsertImageRequest + { + /// + /// 获取或设置要插入的图片 ID。 + /// + [Newtonsoft.Json.JsonProperty("image_id")] + [System.Text.Json.Serialization.JsonPropertyName("image_id")] + public string ImageId { get; set; } = string.Empty; + + /// + /// 获取或设置图片宽度(单位:像素)。 + /// + [Newtonsoft.Json.JsonProperty("width")] + [System.Text.Json.Serialization.JsonPropertyName("width")] + public int? Width { get; set; } + + /// + /// 获取或设置图片高度(单位:像素)。 + /// + [Newtonsoft.Json.JsonProperty("height")] + [System.Text.Json.Serialization.JsonPropertyName("height")] + public int? Height { get; set; } + + /// + /// 获取或设置插入的位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Location Location { get; set; } = new Location(); + } + + public class InsertPageBreakRequest + { + /// + /// 获取或设置插入的位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Location Location { get; set; } = new Location(); + } + + public class InsertTableRequest + { + /// + /// 获取或设置表格行数。 + /// + [Newtonsoft.Json.JsonProperty("rows")] + [System.Text.Json.Serialization.JsonPropertyName("rows")] + public int RowCount { get; set; } + + /// + /// 获取或设置表格列数。 + /// + [Newtonsoft.Json.JsonProperty("cols")] + [System.Text.Json.Serialization.JsonPropertyName("cols")] + public int ColumnCount { get; set; } + + /// + /// 获取或设置插入的位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Location Location { get; set; } = new Location(); + } + + public class InsertParagraphRequest + { + /// + /// 获取或设置插入的位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Location Location { get; set; } = new Location(); + } + + public class UpdateTextPropertyRequest + { + /// + /// 获取或设置是否加粗。 + /// + [Newtonsoft.Json.JsonProperty("bold")] + [System.Text.Json.Serialization.JsonPropertyName("bold")] + public bool? IsBold { get; set; } + + /// + /// 获取或设置文字颜色(格式:RRGGBB)。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public string? Color { get; set; } + + /// + /// 获取或设置背景颜色(格式:RRGGBB)。 + /// + [Newtonsoft.Json.JsonProperty("background_color")] + [System.Text.Json.Serialization.JsonPropertyName("background_color")] + public string? BackgroundColor { get; set; } + } + } + + /// + /// 获取或设置替换指定位置文本内容的信息。 + /// + [Newtonsoft.Json.JsonProperty("replace_text")] + [System.Text.Json.Serialization.JsonPropertyName("replace_text")] + public Types.ReplaceTextRequest? ReplaceTextRequest { get; set; } + + /// + /// 获取或设置在指定位置插入文本内容的信息。 + /// + [Newtonsoft.Json.JsonProperty("insert_text")] + [System.Text.Json.Serialization.JsonPropertyName("insert_text")] + public Types.InsertTextRequest? InsertTextRequest { get; set; } + + /// + /// 获取或设置删除指定位置内容的信息。 + /// + [Newtonsoft.Json.JsonProperty("delete_content")] + [System.Text.Json.Serialization.JsonPropertyName("delete_content")] + public Types.DeleteContentRequest? DeleteContentRequest { get; set; } + + /// + /// 获取或设置在指定位置插入图片的信息。 + /// + [Newtonsoft.Json.JsonProperty("insert_image")] + [System.Text.Json.Serialization.JsonPropertyName("insert_image")] + public Types.InsertImageRequest? InsertImageRequest { get; set; } + + /// + /// 获取或设置在指定位置插入分页符的信息。 + /// + [Newtonsoft.Json.JsonProperty("insert_page_break")] + [System.Text.Json.Serialization.JsonPropertyName("insert_page_break")] + public Types.InsertPageBreakRequest? InsertPageBreakRequest { get; set; } + + /// + /// 获取或设置在指定位置插入表格的信息。 + /// + [Newtonsoft.Json.JsonProperty("insert_table")] + [System.Text.Json.Serialization.JsonPropertyName("insert_table")] + public Types.InsertTableRequest? InsertTableRequest { get; set; } + + /// + /// 获取或设置在指定位置插入段落的信息。 + /// + [Newtonsoft.Json.JsonProperty("insert_paragraph")] + [System.Text.Json.Serialization.JsonPropertyName("insert_paragraph")] + public Types.InsertParagraphRequest? InsertParagraphRequest { get; set; } + + /// + /// 获取或设置更新指定位置文本属性的信息。 + /// + [Newtonsoft.Json.JsonProperty("update_text_property")] + [System.Text.Json.Serialization.JsonPropertyName("update_text_property")] + public Types.UpdateTextPropertyRequest? UpdateTextPropertyRequest { get; set; } + } + } + + /// + /// 获取或设置文档 ID。 + /// + [Newtonsoft.Json.JsonProperty("docid")] + [System.Text.Json.Serialization.JsonPropertyName("docid")] + public string DocumentId { get; set; } = string.Empty; + + /// + /// 获取或设置文档版本。 + /// + [Newtonsoft.Json.JsonProperty("version")] + [System.Text.Json.Serialization.JsonPropertyName("version")] + public int? Version { get; set; } + + /// + /// 获取或设置批量更新请求列表。 + /// + [Newtonsoft.Json.JsonProperty("requests")] + [System.Text.Json.Serialization.JsonPropertyName("requests")] + public IList BatchRequestList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateResponse.cs new file mode 100644 index 00000000..ad0e7002 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/document/batch_update 接口的响应。 + /// + public class CgibinWedocDocumentBatchUpdateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.cs new file mode 100644 index 00000000..f06f9307 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.cs @@ -0,0 +1,342 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/batch_update 接口的请求。 + /// + public class CgibinWedocSpreadSheetBatchUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class UpdateRequest + { + public static class Types + { + public class AddSheetRequest + { + /// + /// 获取或设置工作表名称。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置初始行数。 + /// + [Newtonsoft.Json.JsonProperty("row_count")] + [System.Text.Json.Serialization.JsonPropertyName("row_count")] + public int RowCount { get; set; } + + /// + /// 获取或设置初始列数。 + /// + [Newtonsoft.Json.JsonProperty("column_count")] + [System.Text.Json.Serialization.JsonPropertyName("column_count")] + public int ColumnCount { get; set; } + } + + public class DeleteSheetRequest + { + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = string.Empty; + } + + public class UpdateRangeRequest + { + public static class Types + { + public class GridData + { + public static class Types + { + public class Row + { + public static class Types + { + public class Cell + { + public static class Types + { + public class CellValue + { + public static class Types + { + public class Link + { + /// + /// 获取或设置链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = string.Empty; + + /// + /// 获取或设置链接标题。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Text { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置文本内容。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string? Text { get; set; } + + /// + /// 获取或设置超链接内容。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + } + + public class CellFormat + { + public static class Types + { + public class TextFormat + { + public static class Types + { + public class Color + { + /// + /// 获取或设置红色值。 + /// + [Newtonsoft.Json.JsonProperty("red")] + [System.Text.Json.Serialization.JsonPropertyName("red")] + public byte Red { get; set; } + + /// + /// 获取或设置绿色值。 + /// + [Newtonsoft.Json.JsonProperty("green")] + [System.Text.Json.Serialization.JsonPropertyName("green")] + public byte Green { get; set; } + + /// + /// 获取或设置蓝色值。 + /// + [Newtonsoft.Json.JsonProperty("blue")] + [System.Text.Json.Serialization.JsonPropertyName("blue")] + public byte Blue { get; set; } + + /// + /// 获取或设置 Alpha 通道值。 + /// + [Newtonsoft.Json.JsonProperty("alpha")] + [System.Text.Json.Serialization.JsonPropertyName("alpha")] + public byte? Alpha { get; set; } + } + } + + /// + /// 获取或设置字体。 + /// + [Newtonsoft.Json.JsonProperty("font")] + [System.Text.Json.Serialization.JsonPropertyName("font")] + public string FontName { get; set; } = string.Empty; + + /// + /// 获取或设置字号。 + /// + [Newtonsoft.Json.JsonProperty("font_size")] + [System.Text.Json.Serialization.JsonPropertyName("font_size")] + public int FontSize { get; set; } + + /// + /// 获取或设置是否加粗。 + /// + [Newtonsoft.Json.JsonProperty("bold")] + [System.Text.Json.Serialization.JsonPropertyName("bold")] + public bool IsBold { get; set; } + + /// + /// 获取或设置是否斜体。 + /// + [Newtonsoft.Json.JsonProperty("italic")] + [System.Text.Json.Serialization.JsonPropertyName("italic")] + public bool IsItalic { get; set; } + + /// + /// 获取或设置是否删除线。 + /// + [Newtonsoft.Json.JsonProperty("strikethrough")] + [System.Text.Json.Serialization.JsonPropertyName("strikethrough")] + public bool IsStrikeThrough { get; set; } + + /// + /// 获取或设置是否下划线。 + /// + [Newtonsoft.Json.JsonProperty("underline")] + [System.Text.Json.Serialization.JsonPropertyName("underline")] + public bool IsUnderline { get; set; } + + /// + /// 获取或设置颜色。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public Types.Color? Color { get; set; } + } + } + + /// + /// 获取或设置文字样式信息。 + /// + [Newtonsoft.Json.JsonProperty("text_format")] + [System.Text.Json.Serialization.JsonPropertyName("text_format")] + public Types.TextFormat TextFormat { get; set; } = new Types.TextFormat(); + } + } + + /// + /// 获取或设置单元格的数据内容。 + /// + [Newtonsoft.Json.JsonProperty("cell_value")] + [System.Text.Json.Serialization.JsonPropertyName("cell_value")] + public Types.CellValue CellValue { get; set; } = new Types.CellValue(); + + /// + /// 获取或设置单元格的样式信息。 + /// + [Newtonsoft.Json.JsonProperty("cell_format")] + [System.Text.Json.Serialization.JsonPropertyName("cell_format")] + public Types.CellFormat CellFormat { get; set; } = new Types.CellFormat(); + } + } + + /// + /// 获取或设置单元格数据。 + /// + [Newtonsoft.Json.JsonProperty("values")] + [System.Text.Json.Serialization.JsonPropertyName("values")] + public IList Cells { get; set; } = new List(); + } + } + + /// + /// 获取或设置起始行号。 + /// + [Newtonsoft.Json.JsonProperty("start_row")] + [System.Text.Json.Serialization.JsonPropertyName("start_row")] + public int StartRowIndex { get; set; } + + /// + /// 获取或设置起始列号。 + /// + [Newtonsoft.Json.JsonProperty("start_column")] + [System.Text.Json.Serialization.JsonPropertyName("start_column")] + public int StartColumnIndex { get; set; } + + /// + /// 获取或设置行数据。 + /// + [Newtonsoft.Json.JsonProperty("rows")] + [System.Text.Json.Serialization.JsonPropertyName("rows")] + public IList Rows { get; set; } = new List(); + } + } + + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = string.Empty; + + /// + /// 获取或设置表格数据。 + /// + [Newtonsoft.Json.JsonProperty("grid_data")] + [System.Text.Json.Serialization.JsonPropertyName("grid_data")] + public Types.GridData GridData { get; set; } = new Types.GridData(); + } + + public class DeleteDimensionRequest + { + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = string.Empty; + + /// + /// 获取或设置删除维度。 + /// + [Newtonsoft.Json.JsonProperty("dimension")] + [System.Text.Json.Serialization.JsonPropertyName("dimension")] + public string Dimension { get; set; } = string.Empty; + + /// + /// 获取或设置起始位置。 + /// + [Newtonsoft.Json.JsonProperty("start_index")] + [System.Text.Json.Serialization.JsonPropertyName("start_index")] + public int StartIndex { get; set; } + + /// + /// 获取或设置终止位置。 + /// + [Newtonsoft.Json.JsonProperty("end_index")] + [System.Text.Json.Serialization.JsonPropertyName("end_index")] + public int EndIndex { get; set; } + } + } + + /// + /// 获取或设置新增工作表的信息。 + /// + [Newtonsoft.Json.JsonProperty("add_sheet_request")] + [System.Text.Json.Serialization.JsonPropertyName("add_sheet_request")] + public Types.AddSheetRequest? AddSheetRequest { get; set; } + + /// + /// 获取或设置删除工作表的信息。 + /// + [Newtonsoft.Json.JsonProperty("delete_sheet_request")] + [System.Text.Json.Serialization.JsonPropertyName("delete_sheet_request")] + public Types.DeleteSheetRequest? DeleteSheetRequest { get; set; } + + /// + /// 获取或设置更新范围内单元格内容的信息。 + /// + [Newtonsoft.Json.JsonProperty("update_range_request")] + [System.Text.Json.Serialization.JsonPropertyName("update_range_request")] + public Types.UpdateRangeRequest? UpdateRangeRequest { get; set; } + + /// + /// 获取或设置删除表格连续的行或列的信息。 + /// + [Newtonsoft.Json.JsonProperty("delete_dimension_request")] + [System.Text.Json.Serialization.JsonPropertyName("delete_dimension_request")] + public Types.DeleteDimensionRequest? DeleteDimensionRequest { get; set; } + } + } + + /// + /// 获取或设置文档 ID。 + /// + [Newtonsoft.Json.JsonProperty("docid")] + [System.Text.Json.Serialization.JsonPropertyName("docid")] + public string DocumentId { get; set; } = string.Empty; + + /// + /// 获取或设置批量更新请求列表。 + /// + [Newtonsoft.Json.JsonProperty("requests")] + [System.Text.Json.Serialization.JsonPropertyName("requests")] + public IList BatchRequestList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.cs new file mode 100644 index 00000000..2f6b026a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.cs @@ -0,0 +1,112 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/batch_update 接口的响应。 + /// + public class CgibinWedocSpreadSheetBatchUpdateResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class UpdateResponse + { + public static class Types + { + public class AddSheetResponse + { + public static class Types + { + public class SheetProperty : CgibinWedocSpreadSheetGetSheetPropertiesResponse.Types.SheetProperty + { + } + } + + /// + /// 获取或设置工作表属性。 + /// + [Newtonsoft.Json.JsonProperty("properties")] + [System.Text.Json.Serialization.JsonPropertyName("properties")] + public Types.SheetProperty SheetProperty { get; set; } = default!; + } + + public class DeleteSheetResponse + { + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = default!; + } + + public class UpdateRangeResponse + { + /// + /// 获取或设置数据更新的成功的单元格数量。 + /// + [Newtonsoft.Json.JsonProperty("updated_cells")] + [System.Text.Json.Serialization.JsonPropertyName("updated_cells")] + public int UpdatedCellCount { get; set; } + } + + public class DeleteDimensionResponse + { + /// + /// 获取或设置删除表格连续的行或列数量。 + /// + [Newtonsoft.Json.JsonProperty("deleted")] + [System.Text.Json.Serialization.JsonPropertyName("deleted")] + public int DeletedCount { get; set; } + } + } + + /// + /// 获取或设置新增工作表的信息。 + /// + [Newtonsoft.Json.JsonProperty("add_sheet_response")] + [System.Text.Json.Serialization.JsonPropertyName("add_sheet_response")] + public Types.AddSheetResponse? AddSheetResponse { get; set; } + + /// + /// 获取或设置删除工作表的信息。 + /// + [Newtonsoft.Json.JsonProperty("delete_sheet_response")] + [System.Text.Json.Serialization.JsonPropertyName("delete_sheet_response")] + public Types.DeleteSheetResponse? DeleteSheetResponse { get; set; } + + /// + /// 获取或设置更新范围内单元格内容的信息。 + /// + [Newtonsoft.Json.JsonProperty("update_range_response")] + [System.Text.Json.Serialization.JsonPropertyName("update_range_response")] + public Types.UpdateRangeResponse? UpdateRangeResponse { get; set; } + + /// + /// 获取或设置删除表格连续的行或列的信息。 + /// + [Newtonsoft.Json.JsonProperty("delete_dimension_response")] + [System.Text.Json.Serialization.JsonPropertyName("delete_dimension_response")] + public Types.DeleteDimensionResponse? DeleteDimensionResponse { get; set; } + } + } + + /// + /// 获取或设置批量更新响应列表。 + /// + [Newtonsoft.Json.JsonProperty("responses")] + [System.Text.Json.Serialization.JsonPropertyName("responses")] + public Types.UpdateResponse[] BatchResponseList { get; set; } = default!; + } + } + + /// + /// 获取或设置返回数据。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Data Data { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.cs new file mode 100644 index 00000000..3805eec9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_properties 接口的请求。 + /// + public class CgibinWedocSpreadSheetGetSheetPropertiesRequest : WechatWorkRequest + { + /// + /// 获取或设置文档 ID。 + /// + [Newtonsoft.Json.JsonProperty("docid")] + [System.Text.Json.Serialization.JsonPropertyName("docid")] + public string DocumentId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.cs new file mode 100644 index 00000000..82ea7e81 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.cs @@ -0,0 +1,49 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_properties 接口的响应。 + /// + public class CgibinWedocSpreadSheetGetSheetPropertiesResponse : WechatWorkResponse + { + public static class Types + { + public class SheetProperty + { + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = default!; + + /// + /// 获取或设置工作表名称。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置总行数。 + /// + [Newtonsoft.Json.JsonProperty("row_count")] + [System.Text.Json.Serialization.JsonPropertyName("row_count")] + public int RowCount { get; set; } + + /// + /// 获取或设置总列数。 + /// + [Newtonsoft.Json.JsonProperty("column_count")] + [System.Text.Json.Serialization.JsonPropertyName("column_count")] + public int ColumnCount { get; set; } + } + } + + /// + /// 获取或设置工作表属性列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.SheetProperty[] SheetPropertyList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.cs new file mode 100644 index 00000000..6246971a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_range_data 接口的请求。 + /// + public class CgibinWedocSpreadSheetGetSheetRangeDataRequest : WechatWorkRequest + { + /// + /// 获取或设置文档 ID。 + /// + [Newtonsoft.Json.JsonProperty("docid")] + [System.Text.Json.Serialization.JsonPropertyName("docid")] + public string DocumentId { get; set; } = string.Empty; + + /// + /// 获取或设置工作表 ID。 + /// + [Newtonsoft.Json.JsonProperty("sheet_id")] + [System.Text.Json.Serialization.JsonPropertyName("sheet_id")] + public string SheetId { get; set; } = string.Empty; + + /// + /// 获取或设置查询范围字符串(格式:A1 表示法)。 + /// + [Newtonsoft.Json.JsonProperty("range")] + [System.Text.Json.Serialization.JsonPropertyName("range")] + public string RangeString { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.cs new file mode 100644 index 00000000..4a710f97 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.cs @@ -0,0 +1,227 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedoc/spreadsheet/get_sheet_range_data 接口的响应。 + /// + public class CgibinWedocSpreadSheetGetSheetRangeDataResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class GridData + { + public static class Types + { + public class Row + { + public static class Types + { + public class Cell + { + public static class Types + { + public class CellValue + { + public static class Types + { + public class Link + { + /// + /// 获取或设置链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = default!; + + /// + /// 获取或设置链接标题。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Text { get; set; } = default!; + } + } + + /// + /// 获取或设置文本内容。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string? Text { get; set; } + + /// + /// 获取或设置超链接内容。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + } + + public class CellFormat + { + public static class Types + { + public class TextFormat + { + public static class Types + { + public class Color + { + /// + /// 获取或设置红色值。 + /// + [Newtonsoft.Json.JsonProperty("red")] + [System.Text.Json.Serialization.JsonPropertyName("red")] + public byte Red { get; set; } + + /// + /// 获取或设置绿色值。 + /// + [Newtonsoft.Json.JsonProperty("green")] + [System.Text.Json.Serialization.JsonPropertyName("green")] + public byte Green { get; set; } + + /// + /// 获取或设置蓝色值。 + /// + [Newtonsoft.Json.JsonProperty("blue")] + [System.Text.Json.Serialization.JsonPropertyName("blue")] + public byte Blue { get; set; } + + /// + /// 获取或设置 Alpha 通道值。 + /// + [Newtonsoft.Json.JsonProperty("alpha")] + [System.Text.Json.Serialization.JsonPropertyName("alpha")] + public byte Alpha { get; set; } + } + } + + /// + /// 获取或设置字体。 + /// + [Newtonsoft.Json.JsonProperty("font")] + [System.Text.Json.Serialization.JsonPropertyName("font")] + public string FontName { get; set; } = default!; + + /// + /// 获取或设置字号。 + /// + [Newtonsoft.Json.JsonProperty("font_size")] + [System.Text.Json.Serialization.JsonPropertyName("font_size")] + public int FontSize { get; set; } + + /// + /// 获取或设置是否加粗。 + /// + [Newtonsoft.Json.JsonProperty("bold")] + [System.Text.Json.Serialization.JsonPropertyName("bold")] + public bool IsBold { get; set; } + + /// + /// 获取或设置是否斜体。 + /// + [Newtonsoft.Json.JsonProperty("italic")] + [System.Text.Json.Serialization.JsonPropertyName("italic")] + public bool IsItalic { get; set; } + + /// + /// 获取或设置是否删除线。 + /// + [Newtonsoft.Json.JsonProperty("strikethrough")] + [System.Text.Json.Serialization.JsonPropertyName("strikethrough")] + public bool IsStrikeThrough { get; set; } + + /// + /// 获取或设置是否下划线。 + /// + [Newtonsoft.Json.JsonProperty("underline")] + [System.Text.Json.Serialization.JsonPropertyName("underline")] + public bool IsUnderline { get; set; } + + /// + /// 获取或设置颜色。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public Types.Color? Color { get; set; } + } + } + + /// + /// 获取或设置文字样式信息。 + /// + [Newtonsoft.Json.JsonProperty("text_format")] + [System.Text.Json.Serialization.JsonPropertyName("text_format")] + public Types.TextFormat TextFormat { get; set; } = default!; + } + } + + /// + /// 获取或设置单元格的数据内容。 + /// + [Newtonsoft.Json.JsonProperty("cell_value")] + [System.Text.Json.Serialization.JsonPropertyName("cell_value")] + public Types.CellValue CellValue { get; set; } = default!; + + /// + /// 获取或设置单元格的样式信息。 + /// + [Newtonsoft.Json.JsonProperty("cell_format")] + [System.Text.Json.Serialization.JsonPropertyName("cell_format")] + public Types.CellFormat CellFormat { get; set; } = default!; + } + } + + /// + /// 获取或设置单元格数据。 + /// + [Newtonsoft.Json.JsonProperty("values")] + [System.Text.Json.Serialization.JsonPropertyName("values")] + public Types.Cell[] Cells { get; set; } = default!; + } + } + + /// + /// 获取或设置起始行号。 + /// + [Newtonsoft.Json.JsonProperty("start_row")] + [System.Text.Json.Serialization.JsonPropertyName("start_row")] + public int StartRowIndex { get; set; } + + /// + /// 获取或设置起始列号。 + /// + [Newtonsoft.Json.JsonProperty("start_column")] + [System.Text.Json.Serialization.JsonPropertyName("start_column")] + public int StartColumnIndex { get; set; } + + /// + /// 获取或设置行数据。 + /// + [Newtonsoft.Json.JsonProperty("rows")] + [System.Text.Json.Serialization.JsonPropertyName("rows")] + public Types.Row[] Rows { get; set; } = default!; + } + } + + /// + /// 获取或设置表格数据。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public Types.GridData GridData { get; set; } = default!; + } + } + + /// + /// 获取或设置返回数据。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Data Data { get; set; } = default!; + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.json new file mode 100644 index 00000000..a23f4d68 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/Document/CgibinWedocDocumentBatchUpdateRequest.json @@ -0,0 +1,73 @@ +{ + "docid": "DOCID", + "version": 10, + "requests": [ + { + "replace_text": { + "text": "hello world", + "ranges": [ + { + "start_index": 10, + "length": 5 + } + ] + } + }, + { + "insert_text": { + "text": "text content", + "location": { + "index": 10 + } + } + }, + { + "delete_content": { + "range": { + "start_index": 10, + "length": 5 + } + } + }, + { + "insert_image": { + "image_id": "https://https://wework.qpic.cn/wwpic/xxxxxx", + "width": 10, + "height": 10, + "location": { + "index": 10 + } + } + }, + { + "insert_page_break": { + "location": { + "index": 10 + } + } + }, + { + "insert_table": { + "rows": 2, + "cols": 2, + "location": { + "index": 10 + } + } + }, + { + "insert_paragraph": { + "location": { + "index": 10 + } + } + }, + { + "update_text_property": { + "bold": true, + "color": "000000", + "background_color": "0000FF" + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.json new file mode 100644 index 00000000..00c0024a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateRequest.json @@ -0,0 +1,63 @@ +{ + "docid": "DOCID", + "requests": [ + { + "add_sheet_request": { + "title": "sheet_name", + "row_count": 10, + "column_count": 10 + } + }, + { + "update_range_request": { + "sheet_id": "AAAAA", + "grid_data": { + "start_row": 1, + "start_column": 1, + "rows": [ + { + "values": [ + { + "cell_value": { + "text": "hello world", + "link": { + "text": "hello world", + "url": "http://xxxx.com" + } + }, + "cell_format": { + "text_format": { + "font": "Courier New", + "font_size": 14, + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "color": { + "red": 0, + "green": 0, + "blue": 255, + "alpha": 255 + } + } + } + } + ] + } + ] + } + } + }, + { + "delete_dimension_request": { + "sheet_id": "AAAAA", + "dimension": "ROW" + } + }, + { + "delete_sheet_request": { + "sheet_id": "AAAAA" + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.json new file mode 100644 index 00000000..6fa76b05 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetBatchUpdateResponse.json @@ -0,0 +1,33 @@ +{ + "errcode": 0, + "errmsg": "ok", + "data": { + "responses": [ + { + "add_sheet_response": { + "properties": { + "sheet_id": "ABCDE", + "title": "XXXXXX", + "row_count": 100, + "column_count": 100 + } + } + }, + { + "update_range_response": { + "updated_cells": 10 + } + }, + { + "delete_dimension_response": { + "deleted": 10 + } + }, + { + "delete_sheet_response": { + "sheet_id": "AABBCC" + } + } + ] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.json new file mode 100644 index 00000000..2f8f7722 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesRequest.json @@ -0,0 +1,3 @@ +{ + "docid": "DOCID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.json new file mode 100644 index 00000000..3d7f4353 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetPropertiesResponse.json @@ -0,0 +1,12 @@ +{ + "errcode": 0, + "errmsg": "ok", + "data": [ + { + "sheet_id": "ABCDE", + "title": "XXXXXX", + "row_count": 100, + "column_count": 100 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.json new file mode 100644 index 00000000..f1037cc9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataRequest.json @@ -0,0 +1,5 @@ +{ + "docid": "DOCID", + "sheet_id": "AABBCC", + "range": "A1:B2" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.json new file mode 100644 index 00000000..dc6794eb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SpreadSheet/CgibinWedocSpreadSheetGetSheetRangeDataResponse.json @@ -0,0 +1,41 @@ +{ + "errcode": 0, + "errmsg": "ok", + "data": { + "result": { + "start_row": 1, + "start_column": 1, + "rows": [ + { + "values": [ + { + "cell_value": { + "text": "hello world", + "link": { + "text": "hello world", + "url": "http://xxxx.com" + } + }, + "cell_format": { + "text_format": { + "font": "Courier New", + "font_size": 14, + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "color": { + "red": 0, + "green": 0, + "blue": 255, + "alpha": 255 + } + } + } + } + ] + } + ] + } + } +}