feat(work): 新增文档相关接口

This commit is contained in:
fudiwei 2022-12-03 21:55:28 +08:00
parent 919c672d34
commit c8266df89e
54 changed files with 2652 additions and 1 deletions

View File

@ -0,0 +1,23 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Events
{
/// <summary>
/// <para>表示 EVENT.doc_change 事件的数据。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97833 </para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97834 </para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97835 </para>
/// </summary>
public class DocumentChangeEvent : WechatWorkEvent, WechatWorkEvent.Serialization.IXmlSerializable
{
/// <summary>
/// 获取或设置变更类型。
/// </summary>
[System.Xml.Serialization.XmlElement("ChangeType")]
public string ChangeType { get; set; } = default!;
/// <summary>
/// 获取或设置文档 ID 列表。
/// </summary>
[System.Xml.Serialization.XmlElement("DocId", Type = typeof(string))]
public string[] DocumentIdList { get; set; } = default!;
}
}

View File

@ -0,0 +1,296 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinWedocExtensions
{
#region Document
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/create_doc 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97460 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocCreateDocumentResponse> ExecuteCgibinWedocCreateDocumentAsync(this WechatWorkClient client, Models.CgibinWedocCreateDocumentRequest 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", "create_doc")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocCreateDocumentResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/rename_doc 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97736 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocRenameDocumentResponse> ExecuteCgibinWedocRenameDocumentAsync(this WechatWorkClient client, Models.CgibinWedocRenameDocumentRequest 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", "rename_doc")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocRenameDocumentResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/del_doc 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97735 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocDeleteDocumentResponse> ExecuteCgibinWedocDeleteDocumentAsync(this WechatWorkClient client, Models.CgibinWedocDeleteDocumentRequest 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", "del_doc")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocDeleteDocumentResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/get_doc_base_info 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97734 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocGetDocumentBaseInfoResponse> ExecuteCgibinWedocGetDocumentBaseInfoAsync(this WechatWorkClient client, Models.CgibinWedocGetDocumentBaseInfoRequest 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", "get_doc_base_info")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocGetDocumentBaseInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/doc_share 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97733 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocDocumentShareResponse> ExecuteCgibinWedocDocumentShareAsync(this WechatWorkClient client, Models.CgibinWedocDocumentShareRequest 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", "doc_share")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocDocumentShareResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/doc_get_auth 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97733 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocDocumentGetAuthResponse> ExecuteCgibinWedocDocumentGetAuthAsync(this WechatWorkClient client, Models.CgibinWedocDocumentGetAuthRequest 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", "doc_get_auth")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocDocumentGetAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/mod_doc_join_rule 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97733 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocModifyDocumentJoinRuleResponse> ExecuteCgibinWedocModifyDocumentJoinRuleAsync(this WechatWorkClient client, Models.CgibinWedocModifyDocumentJoinRuleRequest 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", "mod_doc_join_rule")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocModifyDocumentJoinRuleResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/mod_doc_member 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97733 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocModifyDocumentMemberResponse> ExecuteCgibinWedocModifyDocumentMemberAsync(this WechatWorkClient client, Models.CgibinWedocModifyDocumentMemberRequest 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", "mod_doc_member")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocModifyDocumentMemberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/mod_doc_safty_setting 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97782 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocModifyDocumentSafeSettingResponse> ExecuteCgibinWedocModifyDocumentSafeSettingAsync(this WechatWorkClient client, Models.CgibinWedocModifyDocumentSafeSettingRequest 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", "mod_doc_safty_setting")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocModifyDocumentSafeSettingResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Collect
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/create_collect 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97462 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocCreateCollectResponse> ExecuteCgibinWedocCreateCollectAsync(this WechatWorkClient client, Models.CgibinWedocCreateCollectRequest 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", "create_collect")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocCreateCollectResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/modify_collect 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97462 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocModifyCollectResponse> ExecuteCgibinWedocModifyCollectAsync(this WechatWorkClient client, Models.CgibinWedocModifyCollectRequest 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", "modify_collect")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocModifyCollectResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/get_form_info 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97817 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocGetFormInfoResponse> ExecuteCgibinWedocGetFormInfoAsync(this WechatWorkClient client, Models.CgibinWedocGetFormInfoRequest 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", "get_form_info")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocGetFormInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/get_form_statistic 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97818 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocGetFormStatisticResponse> ExecuteCgibinWedocGetFormStatisticAsync(this WechatWorkClient client, Models.CgibinWedocGetFormStatisticRequest 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", "get_form_statistic")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocGetFormStatisticResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/wedoc/get_form_answer 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97818 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinWedocGetFormAnswerResponse> ExecuteCgibinWedocGetFormAnswerAsync(this WechatWorkClient client, Models.CgibinWedocGetFormAnswerRequest 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", "get_form_answer")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinWedocGetFormAnswerResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -0,0 +1,319 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/create_collect 接口的请求。</para>
/// </summary>
public class CgibinWedocCreateCollectRequest : WechatWorkRequest
{
public static class Types
{
public class Form
{
public static class Types
{
public class QuestionList
{
/// <summary>
/// 获取或设置问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("items")]
[System.Text.Json.Serialization.JsonPropertyName("items")]
public IList<QuestionItem> Items { get; set; } = new List<QuestionItem>();
}
public class QuestionItem
{
public static class Types
{
public class Option
{
/// <summary>
/// 获取或设置选项键
/// </summary>
[Newtonsoft.Json.JsonProperty("key")]
[System.Text.Json.Serialization.JsonPropertyName("key")]
public int Key { get; set; }
/// <summary>
/// 获取或设置选项值。
/// </summary>
[Newtonsoft.Json.JsonProperty("value")]
[System.Text.Json.Serialization.JsonPropertyName("value")]
public string Value { get; set; } = string.Empty;
/// <summary>
/// 获取或设置选项状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
}
}
/// <summary>
/// 获取或设置问题 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_id")]
[System.Text.Json.Serialization.JsonPropertyName("question_id")]
public int QuestionId { get; set; }
/// <summary>
/// 获取或设置问题序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("pos")]
[System.Text.Json.Serialization.JsonPropertyName("pos")]
public int Sequence { get; set; }
/// <summary>
/// 获取或设置问题描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 获取或设置问题状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置回答类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("reply_type")]
[System.Text.Json.Serialization.JsonPropertyName("reply_type")]
public int ReplyType { get; set; }
/// <summary>
/// 获取或设置是否必答。
/// </summary>
[Newtonsoft.Json.JsonProperty("must_reply")]
[System.Text.Json.Serialization.JsonPropertyName("must_reply")]
public bool IsMustReply { get; set; }
/// <summary>
/// 获取或设置选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_item")]
[System.Text.Json.Serialization.JsonPropertyName("option_item")]
public IList<Types.Option>? OptionList { get; set; }
/// <summary>
/// 获取或设置问题备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("note")]
[System.Text.Json.Serialization.JsonPropertyName("note")]
public string? Note { get; set; }
/// <summary>
/// 获取或设置编辑提示。
/// </summary>
[Newtonsoft.Json.JsonProperty("placeholder")]
[System.Text.Json.Serialization.JsonPropertyName("placeholder")]
public string? Placeholder { get; set; }
}
public class Settings
{
public static class Types
{
public class FillInRange
{
/// <summary>
/// 获取或设置 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("userids")]
[System.Text.Json.Serialization.JsonPropertyName("userids")]
public IList<string>? UserIdList { get; set; }
/// <summary>
/// 获取或设置部门 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("departmentids")]
[System.Text.Json.Serialization.JsonPropertyName("departmentids")]
public IList<long>? DepartmentIdList { get; set; }
}
public class ManagerRange
{
/// <summary>
/// 获取或设置 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("userids")]
[System.Text.Json.Serialization.JsonPropertyName("userids")]
public IList<string> UserIdList { get; set; } = new List<string>();
}
public class Repetition
{
/// <summary>
/// 获取或设置是否开启定时重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable")]
[System.Text.Json.Serialization.JsonPropertyName("enable")]
public bool? IsEnabled { get; set; }
/// <summary>
/// 获取或设置提醒时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("remind_time")]
[System.Text.Json.Serialization.JsonPropertyName("remind_time")]
public long? RemindTimestamp { get; set; }
/// <summary>
/// 获取或设置重复类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("repeat_type")]
[System.Text.Json.Serialization.JsonPropertyName("repeat_type")]
public int? RepeatType { get; set; }
/// <summary>
/// 获取或设置每周周几重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("week_flag")]
[System.Text.Json.Serialization.JsonPropertyName("week_flag")]
public int? RepeatDayOfWeek { get; set; }
/// <summary>
/// 获取或设置每月第几天重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_of_month")]
[System.Text.Json.Serialization.JsonPropertyName("day_of_month")]
public int? RepeatDayOfMonth { get; set; }
/// <summary>
/// 获取或设置是否跳过节假日。
/// </summary>
[Newtonsoft.Json.JsonProperty("skip_holiday")]
[System.Text.Json.Serialization.JsonPropertyName("skip_holiday")]
public bool? IsSkipHoliday { get; set; }
/// <summary>
/// 获取或设置补填类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fork_finish_type")]
[System.Text.Json.Serialization.JsonPropertyName("fork_finish_type")]
public int? ForkFinishType { get; set; }
}
}
/// <summary>
/// 获取或设置填写权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_out_auth")]
[System.Text.Json.Serialization.JsonPropertyName("fill_out_auth")]
public int? FillOutAuthType { get; set; }
/// <summary>
/// 获取或设置填写范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_in_range")]
[System.Text.Json.Serialization.JsonPropertyName("fill_in_range")]
public Types.FillInRange? FillInRange { get; set; }
/// <summary>
/// 获取或设置管理员范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("setting_manager_range")]
[System.Text.Json.Serialization.JsonPropertyName("setting_manager_range")]
public Types.ManagerRange? ManagerRange { get; set; }
/// <summary>
/// 获取或设置定时重复设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("timed_repeat_info")]
[System.Text.Json.Serialization.JsonPropertyName("timed_repeat_info")]
public Types.Repetition? Repetition { get; set; }
/// <summary>
/// 获取或设置最多填写数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("max_fill_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("max_fill_cnt")]
public int? MaxFillCount { get; set; }
/// <summary>
/// 获取或设置定时关闭时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("timed_finish")]
[System.Text.Json.Serialization.JsonPropertyName("timed_finish")]
public long? FinishTimestamp { get; set; }
/// <summary>
/// 获取或设置是否支持匿名填写。
/// </summary>
[Newtonsoft.Json.JsonProperty("can_anonymous")]
[System.Text.Json.Serialization.JsonPropertyName("can_anonymous")]
public bool? EnableAnonymous { get; set; }
/// <summary>
/// 获取或设置是否有回复时提醒。
/// </summary>
[Newtonsoft.Json.JsonProperty("can_notify_submit")]
[System.Text.Json.Serialization.JsonPropertyName("can_notify_submit")]
public bool? EnableNotifySubmit { get; set; }
}
}
/// <summary>
/// 获取或设置收集表标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_title")]
[System.Text.Json.Serialization.JsonPropertyName("form_title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 获取或设置收集表描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_desc")]
[System.Text.Json.Serialization.JsonPropertyName("form_desc")]
public string? Description { get; set; } = string.Empty;
/// <summary>
/// 获取或设置收集表表头背景图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_header")]
[System.Text.Json.Serialization.JsonPropertyName("form_header")]
public string? HeaderImageUrl { get; set; } = string.Empty;
/// <summary>
/// 获取或设置收集表问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_question")]
[System.Text.Json.Serialization.JsonPropertyName("form_question")]
public Types.QuestionList QuestionList { get; set; } = new Types.QuestionList();
/// <summary>
/// 获取或设置收集表设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_setting")]
[System.Text.Json.Serialization.JsonPropertyName("form_setting")]
public Types.Settings? Settings { get; set; }
}
}
/// <summary>
/// 获取或设置空间 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("spaceid")]
[System.Text.Json.Serialization.JsonPropertyName("spaceid")]
public string? SpaceId { get; set; }
/// <summary>
/// 获取或设置上级文件 ID 或空间 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fatherid")]
[System.Text.Json.Serialization.JsonPropertyName("fatherid")]
public string? ParentFileOrSpaceId { get; set; }
/// <summary>
/// 获取或设置收集表信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_info")]
[System.Text.Json.Serialization.JsonPropertyName("form_info")]
public Types.Form Form { get; set; } = new Types.Form();
}
}

View File

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

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_form_answer 接口的请求。</para>
/// </summary>
public class CgibinWedocGetFormAnswerRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置收集表周期 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("repeated_id")]
[System.Text.Json.Serialization.JsonPropertyName("repeated_id")]
public string RepeatedId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置答案 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_ids")]
[System.Text.Json.Serialization.JsonPropertyName("answer_ids")]
public IList<long>? AnswerIdList { get; set; }
}
}

View File

@ -0,0 +1,168 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_form_answer 接口的响应。</para>
/// </summary>
public class CgibinWedocGetFormAnswerResponse : WechatWorkResponse
{
public static class Types
{
public class AnswerList
{
/// <summary>
/// 获取或设置答案列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_list")]
[System.Text.Json.Serialization.JsonPropertyName("answer_list")]
public AnswerItem[] Items { get; set; } = default!;
}
public class AnswerItem
{
public static class Types
{
public class ReplyList
{
/// <summary>
/// 获取或设置回答列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("items")]
[System.Text.Json.Serialization.JsonPropertyName("items")]
public ReplyItem[] Items { get; set; } = default!;
}
public class ReplyItem
{
public static class Types
{
public class ExtendedFileReply
{
/// <summary>
/// 获取或设置文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fileid")]
[System.Text.Json.Serialization.JsonPropertyName("fileid")]
public string FileId { get; set; } = default!;
/// <summary>
/// 获取或设置文件名。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
}
public class ExtendedOptionReply
{
/// <summary>
/// 获取或设置额外回答选项键。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_reply")]
[System.Text.Json.Serialization.JsonPropertyName("option_reply")]
public int OptionKey { get; set; }
/// <summary>
/// 获取或设置文本。
/// </summary>
[Newtonsoft.Json.JsonProperty("extend_text")]
[System.Text.Json.Serialization.JsonPropertyName("extend_text")]
public string Text { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置问题 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_id")]
[System.Text.Json.Serialization.JsonPropertyName("question_id")]
public int QuestionId { get; set; }
/// <summary>
/// 获取或设置回答文本内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("text_reply")]
[System.Text.Json.Serialization.JsonPropertyName("text_reply")]
public string? ReplyText { get; set; }
/// <summary>
/// 获取或设置回答选项键列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_reply")]
[System.Text.Json.Serialization.JsonPropertyName("option_reply")]
public int[]? ReplyOptionKeyList { get; set; }
/// <summary>
/// 获取或设置回答文件列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("file_extend_reply")]
[System.Text.Json.Serialization.JsonPropertyName("file_extend_reply")]
public Types.ExtendedFileReply[]? ReplyExtendedFileReply { get; set; }
/// <summary>
/// 获取或设置回答额外选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_extend_reply")]
[System.Text.Json.Serialization.JsonPropertyName("option_extend_reply")]
public Types.ExtendedOptionReply[]? ReplyExtendedOptionList { get; set; }
}
}
/// <summary>
/// 获取或设置答案 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_id")]
[System.Text.Json.Serialization.JsonPropertyName("answer_id")]
public long AnswerId { get; set; }
/// <summary>
/// 获取或设置用户名。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_name")]
[System.Text.Json.Serialization.JsonPropertyName("user_name")]
public string UserName { get; set; } = default!;
/// <summary>
/// 获取或设置外部联系人临时 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_external_userid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_external_userid")]
public string? TempExternalUserId { get; set; }
/// <summary>
/// 获取或设置回答列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("reply")]
[System.Text.Json.Serialization.JsonPropertyName("reply")]
public Types.ReplyList ReplyList { get; set; } = default!;
/// <summary>
/// 获取或设置答案状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_status")]
[System.Text.Json.Serialization.JsonPropertyName("answer_status")]
public int AnswerStatus { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("ctime")]
[System.Text.Json.Serialization.JsonPropertyName("ctime")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置修改时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("mtime")]
[System.Text.Json.Serialization.JsonPropertyName("mtime")]
public long ModifyTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置收集表答案列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer")]
[System.Text.Json.Serialization.JsonPropertyName("answer")]
public Types.AnswerList AnswerList { get; set; } = default!;
}
}

View File

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

View File

@ -0,0 +1,331 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_form_info 接口的响应。</para>
/// </summary>
public class CgibinWedocGetFormInfoResponse : WechatWorkResponse
{
public static class Types
{
public class Form
{
public static class Types
{
public class QuestionList
{
/// <summary>
/// 获取或设置问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("items")]
[System.Text.Json.Serialization.JsonPropertyName("items")]
public QuestionItem[] Items { get; set; } = default!;
}
public class QuestionItem
{
public static class Types
{
public class Option
{
/// <summary>
/// 获取或设置选项键
/// </summary>
[Newtonsoft.Json.JsonProperty("key")]
[System.Text.Json.Serialization.JsonPropertyName("key")]
public int Key { get; set; }
/// <summary>
/// 获取或设置选项值。
/// </summary>
[Newtonsoft.Json.JsonProperty("value")]
[System.Text.Json.Serialization.JsonPropertyName("value")]
public string Value { get; set; } = default!;
/// <summary>
/// 获取或设置选项状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
}
}
/// <summary>
/// 获取或设置问题 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_id")]
[System.Text.Json.Serialization.JsonPropertyName("question_id")]
public int QuestionId { get; set; }
/// <summary>
/// 获取或设置问题序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("pos")]
[System.Text.Json.Serialization.JsonPropertyName("pos")]
public int Sequence { get; set; }
/// <summary>
/// 获取或设置问题描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置问题状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置回答类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("reply_type")]
[System.Text.Json.Serialization.JsonPropertyName("reply_type")]
public int ReplyType { get; set; }
/// <summary>
/// 获取或设置是否必答。
/// </summary>
[Newtonsoft.Json.JsonProperty("must_reply")]
[System.Text.Json.Serialization.JsonPropertyName("must_reply")]
public bool IsMustReply { get; set; }
/// <summary>
/// 获取或设置选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_item")]
[System.Text.Json.Serialization.JsonPropertyName("option_item")]
public Types.Option[]? OptionList { get; set; }
/// <summary>
/// 获取或设置问题备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("note")]
[System.Text.Json.Serialization.JsonPropertyName("note")]
public string? Note { get; set; }
/// <summary>
/// 获取或设置编辑提示。
/// </summary>
[Newtonsoft.Json.JsonProperty("placeholder")]
[System.Text.Json.Serialization.JsonPropertyName("placeholder")]
public string? Placeholder { get; set; }
}
public class Settings
{
public static class Types
{
public class FillInRange
{
/// <summary>
/// 获取或设置 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("userids")]
[System.Text.Json.Serialization.JsonPropertyName("userids")]
public string[]? UserIdList { get; set; }
/// <summary>
/// 获取或设置部门 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("departmentids")]
[System.Text.Json.Serialization.JsonPropertyName("departmentids")]
public long[]? DepartmentIdList { get; set; }
}
public class ManagerRange
{
/// <summary>
/// 获取或设置 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("userids")]
[System.Text.Json.Serialization.JsonPropertyName("userids")]
public string[] UserIdList { get; set; } = default!;
}
public class Repetition
{
/// <summary>
/// 获取或设置是否开启定时重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable")]
[System.Text.Json.Serialization.JsonPropertyName("enable")]
public bool IsEnabled { get; set; }
/// <summary>
/// 获取或设置提醒时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("remind_time")]
[System.Text.Json.Serialization.JsonPropertyName("remind_time")]
public long? RemindTimestamp { get; set; }
/// <summary>
/// 获取或设置重复类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("repeat_type")]
[System.Text.Json.Serialization.JsonPropertyName("repeat_type")]
public int? RepeatType { get; set; }
/// <summary>
/// 获取或设置每周周几重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("week_flag")]
[System.Text.Json.Serialization.JsonPropertyName("week_flag")]
public int? RepeatDayOfWeek { get; set; }
/// <summary>
/// 获取或设置每月第几天重复。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_of_month")]
[System.Text.Json.Serialization.JsonPropertyName("day_of_month")]
public int? RepeatDayOfMonth { get; set; }
/// <summary>
/// 获取或设置是否跳过节假日。
/// </summary>
[Newtonsoft.Json.JsonProperty("skip_holiday")]
[System.Text.Json.Serialization.JsonPropertyName("skip_holiday")]
public bool? IsSkipHoliday { get; set; }
/// <summary>
/// 获取或设置补填类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fork_finish_type")]
[System.Text.Json.Serialization.JsonPropertyName("fork_finish_type")]
public int? ForkFinishType { get; set; }
/// <summary>
/// 获取或设置规则创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("rule_ctime")]
[System.Text.Json.Serialization.JsonPropertyName("rule_ctime")]
public long? RuleCreateTimestamp { get; set; }
/// <summary>
/// 获取或设置规则修改时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("rule_mtime")]
[System.Text.Json.Serialization.JsonPropertyName("rule_mtime")]
public long? RuleModifyTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置填写权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_out_auth")]
[System.Text.Json.Serialization.JsonPropertyName("fill_out_auth")]
public int FillOutAuthType { get; set; }
/// <summary>
/// 获取或设置填写范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_in_range")]
[System.Text.Json.Serialization.JsonPropertyName("fill_in_range")]
public Types.FillInRange? FillInRange { get; set; }
/// <summary>
/// 获取或设置管理员范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("setting_manager_range")]
[System.Text.Json.Serialization.JsonPropertyName("setting_manager_range")]
public Types.ManagerRange? ManagerRange { get; set; }
/// <summary>
/// 获取或设置定时重复设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("timed_repeat_info")]
[System.Text.Json.Serialization.JsonPropertyName("timed_repeat_info")]
public Types.Repetition? Repetition { get; set; }
/// <summary>
/// 获取或设置最多填写数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("max_fill_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("max_fill_cnt")]
public int MaxFillCount { get; set; }
/// <summary>
/// 获取或设置定时关闭时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("timed_finish")]
[System.Text.Json.Serialization.JsonPropertyName("timed_finish")]
public long? FinishTimestamp { get; set; }
/// <summary>
/// 获取或设置是否支持匿名填写。
/// </summary>
[Newtonsoft.Json.JsonProperty("can_anonymous")]
[System.Text.Json.Serialization.JsonPropertyName("can_anonymous")]
public bool EnableAnonymous { get; set; }
/// <summary>
/// 获取或设置是否有回复时提醒。
/// </summary>
[Newtonsoft.Json.JsonProperty("can_notify_submit")]
[System.Text.Json.Serialization.JsonPropertyName("can_notify_submit")]
public bool EnableNotifySubmit { get; set; }
}
}
/// <summary>
/// 获取或设置收集表 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("formid")]
[System.Text.Json.Serialization.JsonPropertyName("formid")]
public string FormId { get; set; } = default!;
/// <summary>
/// 获取或设置收集表标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_title")]
[System.Text.Json.Serialization.JsonPropertyName("form_title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置收集表描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_desc")]
[System.Text.Json.Serialization.JsonPropertyName("form_desc")]
public string Description { get; set; } = default!;
/// <summary>
/// 获取或设置收集表表头背景图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_header")]
[System.Text.Json.Serialization.JsonPropertyName("form_header")]
public string HeaderImageUrl { get; set; } = default!;
/// <summary>
/// 获取或设置收集表问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_question")]
[System.Text.Json.Serialization.JsonPropertyName("form_question")]
public Types.QuestionList QuestionList { get; set; } = default!;
/// <summary>
/// 获取或设置收集表设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_setting")]
[System.Text.Json.Serialization.JsonPropertyName("form_setting")]
public Types.Settings Settings { get; set; } = default!;
/// <summary>
/// 获取或设置收集表周期 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("repeated_id")]
[System.Text.Json.Serialization.JsonPropertyName("repeated_id")]
public string[]? RepeatedId { get; set; }
}
}
/// <summary>
/// 获取或设置收集表信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_info")]
[System.Text.Json.Serialization.JsonPropertyName("form_info")]
public Types.Form Form { get; set; } = default!;
}
}

View File

@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_form_statistic 接口的请求。</para>
/// </summary>
public class CgibinWedocGetFormStatisticRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置收集表周期 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("repeated_id")]
[System.Text.Json.Serialization.JsonPropertyName("repeated_id")]
public string RepeatedId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置请求类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("req_type")]
[System.Text.Json.Serialization.JsonPropertyName("req_type")]
public int RequestType { get; set; }
/// <summary>
/// 获取或设置开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public int? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public int? Endimestamp { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public int? Cursor { get; set; }
}
}

View File

@ -0,0 +1,115 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_form_statistic 接口的响应。</para>
/// </summary>
public class CgibinWedocGetFormStatisticResponse : WechatWorkResponse
{
public static class Types
{
public class FillUser
{
/// <summary>
/// 获取或设置用户成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置外部联系人临时 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_external_userid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_external_userid")]
public string? TempExternalUserId { get; set; }
/// <summary>
/// 获取或设置用户名。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_name")]
[System.Text.Json.Serialization.JsonPropertyName("user_name")]
public string UserName { get; set; } = default!;
/// <summary>
/// 获取或设置答案 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_id")]
[System.Text.Json.Serialization.JsonPropertyName("answer_id")]
public long AnswerId { get; set; }
/// <summary>
/// 获取或设置提交时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("submit_time")]
[System.Text.Json.Serialization.JsonPropertyName("submit_time")]
public long SubmitTimestamp { get; set; }
}
public class UnfillUser
{
/// <summary>
/// 获取或设置用户成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = default!;
/// <summary>
/// 获取或设置用户名。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_name")]
[System.Text.Json.Serialization.JsonPropertyName("user_name")]
public string UserName { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置已填写次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("fill_cnt")]
public int FillCount { get; set; }
/// <summary>
/// 获取或设置已填写人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_user_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("fill_user_cnt")]
public int FillUserCount { get; set; }
/// <summary>
/// 获取或设置未填写人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("unfill_user_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("unfill_user_cnt")]
public int UnfillUserCount { get; set; }
/// <summary>
/// 获取或设置已填写人列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("submit_users")]
[System.Text.Json.Serialization.JsonPropertyName("submit_users")]
public Types.FillUser[]? FillUserList { get; set; }
/// <summary>
/// 获取或设置未填写人列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("unfill_users")]
[System.Text.Json.Serialization.JsonPropertyName("unfill_users")]
public Types.UnfillUser[]? UnfillUserList { get; set; }
/// <summary>
/// 获取或设置是否还有更多数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool? HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public int? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,141 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/modify_collect 接口的请求。</para>
/// </summary>
public class CgibinWedocModifyCollectRequest : WechatWorkRequest
{
public static class Types
{
public class Form
{
public static class Types
{
public class QuestionList : CgibinWedocCreateCollectRequest.Types.Form.Types.QuestionList
{
/// <summary>
/// 获取或设置问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("items")]
[System.Text.Json.Serialization.JsonPropertyName("items")]
public new IList<QuestionItem> Items { get; set; } = new List<QuestionItem>();
}
public class QuestionItem : CgibinWedocCreateCollectRequest.Types.Form.Types.QuestionItem
{
public static new class Types
{
public class Option : CgibinWedocCreateCollectRequest.Types.Form.Types.QuestionItem.Types.Option
{
}
}
/// <summary>
/// 获取或设置选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_item")]
[System.Text.Json.Serialization.JsonPropertyName("option_item")]
public new IList<Types.Option>? OptionList { get; set; }
}
public class Settings : CgibinWedocCreateCollectRequest.Types.Form.Types.Settings
{
public static new class Types
{
public class FillInRange : CgibinWedocCreateCollectRequest.Types.Form.Types.Settings.Types.FillInRange
{
}
public class ManagerRange : CgibinWedocCreateCollectRequest.Types.Form.Types.Settings.Types.ManagerRange
{
}
public class Repetition : CgibinWedocCreateCollectRequest.Types.Form.Types.Settings.Types.Repetition
{
}
}
/// <summary>
/// 获取或设置填写范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("fill_in_range")]
[System.Text.Json.Serialization.JsonPropertyName("fill_in_range")]
public new Types.FillInRange? FillInRange { get; set; }
/// <summary>
/// 获取或设置管理员范围信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("setting_manager_range")]
[System.Text.Json.Serialization.JsonPropertyName("setting_manager_range")]
public new Types.ManagerRange? ManagerRange { get; set; }
/// <summary>
/// 获取或设置定时重复设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("timed_repeat_info")]
[System.Text.Json.Serialization.JsonPropertyName("timed_repeat_info")]
public new Types.Repetition? Repetition { get; set; }
}
}
/// <summary>
/// 获取或设置收集表标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_title")]
[System.Text.Json.Serialization.JsonPropertyName("form_title")]
public string? Title { get; set; }
/// <summary>
/// 获取或设置收集表描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_desc")]
[System.Text.Json.Serialization.JsonPropertyName("form_desc")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置收集表表头背景图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_header")]
[System.Text.Json.Serialization.JsonPropertyName("form_header")]
public string? HeaderImageUrl { get; set; }
/// <summary>
/// 获取或设置收集表问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_question")]
[System.Text.Json.Serialization.JsonPropertyName("form_question")]
public Types.QuestionList? QuestionList { get; set; }
/// <summary>
/// 获取或设置收集表设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_setting")]
[System.Text.Json.Serialization.JsonPropertyName("form_setting")]
public Types.Settings? Settings { get; set; }
}
}
/// <summary>
/// 获取或设置操作模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper")]
[System.Text.Json.Serialization.JsonPropertyName("oper")]
public int OperateMode { get; set; }
/// <summary>
/// 获取或设置收集表 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("formid")]
[System.Text.Json.Serialization.JsonPropertyName("formid")]
public string FormId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置收集表信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("form_info")]
[System.Text.Json.Serialization.JsonPropertyName("form_info")]
public Types.Form Form { get; set; } = new Types.Form();
}
}

View File

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

View File

@ -0,0 +1,45 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/create_doc 接口的请求。</para>
/// </summary>
public class CgibinWedocCreateDocumentRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置空间 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("spaceid")]
[System.Text.Json.Serialization.JsonPropertyName("spaceid")]
public string? SpaceId { get; set; }
/// <summary>
/// 获取或设置上级文件 ID 或空间 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fatherid")]
[System.Text.Json.Serialization.JsonPropertyName("fatherid")]
public string? ParentFileOrSpaceId { get; set; }
/// <summary>
/// 获取或设置文档类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_type")]
[System.Text.Json.Serialization.JsonPropertyName("doc_type")]
public int DocumentType { get; set; }
/// <summary>
/// 获取或设置文档名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_name")]
[System.Text.Json.Serialization.JsonPropertyName("doc_name")]
public string DocumentName { get; set; } = string.Empty;
/// <summary>
/// 获取或设置管理员成员账号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("admin_users")]
[System.Text.Json.Serialization.JsonPropertyName("admin_users")]
public IList<string>? AdminUserIdList { get; set; }
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/create_doc 接口的响应。</para>
/// </summary>
public class CgibinWedocCreateDocumentResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string DocumentId { get; set; } = default!;
/// <summary>
/// 获取或设置访问链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("url")]
[System.Text.Json.Serialization.JsonPropertyName("url")]
public string Url { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/del_doc 接口的请求。</para>
/// </summary>
public class CgibinWedocDeleteDocumentRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string? DocumentId { get; set; }
/// <summary>
/// 获取或设置收集表 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("formid")]
[System.Text.Json.Serialization.JsonPropertyName("formid")]
public string? FormId { get; set; }
}
}

View File

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

View File

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

View File

@ -0,0 +1,187 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/doc_get_auth 接口的响应。</para>
/// </summary>
public class CgibinWedocDocumentGetAuthResponse : WechatWorkResponse
{
public static class Types
{
public class AccessRule
{
/// <summary>
/// 获取或设置是否为企业内可访问。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_corp_internal")]
[System.Text.Json.Serialization.JsonPropertyName("enable_corp_internal")]
public bool EnableCorpInternal { get; set; }
/// <summary>
/// 获取或设置企业内权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_internal_auth")]
[System.Text.Json.Serialization.JsonPropertyName("corp_internal_auth")]
public int CorpInternalAuthType { get; set; }
/// <summary>
/// 获取或设置是否开启企业内管理员审批。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_internal_approve_only_by_admin")]
[System.Text.Json.Serialization.JsonPropertyName("corp_internal_approve_only_by_admin")]
public bool? IsCorpInternalApproveOnlyByAdmin { get; set; }
/// <summary>
/// 获取或设置是否为企业外可访问。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_corp_external")]
[System.Text.Json.Serialization.JsonPropertyName("enable_corp_external")]
public bool EnableCorpExternal { get; set; }
/// <summary>
/// 获取或设置企业外权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_external_auth")]
[System.Text.Json.Serialization.JsonPropertyName("corp_external_auth")]
public int CorpExternalAuthType { get; set; }
/// <summary>
/// 获取或设置是否开启企业外管理员审批。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_external_approve_only_by_admin")]
[System.Text.Json.Serialization.JsonPropertyName("corp_external_approve_only_by_admin")]
public bool? IsCorpExternalApproveOnlyByAdmin { get; set; }
/// <summary>
/// 获取或设置是否禁止分享到企业外部。
/// </summary>
[Newtonsoft.Json.JsonProperty("ban_share_external")]
[System.Text.Json.Serialization.JsonPropertyName("ban_share_external")]
public bool IsBanShareExternal { get; set; }
}
public class SecureSettings
{
public static class Types
{
public class Watermark
{
/// <summary>
/// 获取或设置水印文字。
/// </summary>
[Newtonsoft.Json.JsonProperty("text")]
[System.Text.Json.Serialization.JsonPropertyName("text")]
public string Text { get; set; } = default!;
/// <summary>
/// 获取或设置水印类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("margin_type")]
[System.Text.Json.Serialization.JsonPropertyName("margin_type")]
public int MarginType { get; set; }
/// <summary>
/// 获取或设置是否开启水印文本。
/// </summary>
[Newtonsoft.Json.JsonProperty("show_text")]
[System.Text.Json.Serialization.JsonPropertyName("show_text")]
public bool EnableShowText { get; set; }
/// <summary>
/// 获取或设置是否开启水印访问人名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("show_visitor_name")]
[System.Text.Json.Serialization.JsonPropertyName("show_visitor_name")]
public bool EnableShowVisitorName { get; set; }
}
}
/// <summary>
/// 获取或设置是否开启只读备份。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_readonly_copy")]
[System.Text.Json.Serialization.JsonPropertyName("enable_readonly_copy")]
public bool EnableReadonlyCopy { get; set; }
/// <summary>
/// 获取或设置是否开启只读评论。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_readonly_comment")]
[System.Text.Json.Serialization.JsonPropertyName("enable_readonly_comment")]
public bool EnableReadonlyComment { get; set; }
/// <summary>
/// 获取或设置水印信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("watermark")]
[System.Text.Json.Serialization.JsonPropertyName("watermark")]
public Types.Watermark? Watermark { get; set; }
}
public class Authority
{
/// <summary>
/// 获取或设置类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { 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_external_userid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_external_userid")]
public string? TempExternalUserId { get; set; }
/// <summary>
/// 获取或设置部门 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("departmentid")]
[System.Text.Json.Serialization.JsonPropertyName("departmentid")]
public long? DepartmentId { get; set; }
/// <summary>
/// 获取或设置权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("auth")]
[System.Text.Json.Serialization.JsonPropertyName("auth")]
public int AuthType { get; set; }
}
}
/// <summary>
/// 获取或设置文档访问规则。
/// </summary>
[Newtonsoft.Json.JsonProperty("access_rule")]
[System.Text.Json.Serialization.JsonPropertyName("access_rule")]
public Types.AccessRule AccessRule { get; set; } = default!;
/// <summary>
/// 获取或设置安全配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("secure_setting")]
[System.Text.Json.Serialization.JsonPropertyName("secure_setting")]
public Types.SecureSettings SecureSettings { get; set; } = default!;
/// <summary>
/// 获取或设置文档成员授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_member_list")]
[System.Text.Json.Serialization.JsonPropertyName("doc_member_list")]
public Types.Authority[]? DocumentMemberAuthorityList { get; set; }
/// <summary>
/// 获取或设置文档查看者授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("co_auth_list")]
[System.Text.Json.Serialization.JsonPropertyName("co_auth_list")]
public Types.Authority[]? DocumentCollaboratorAuthorityList { get; set; }
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/doc_share 接口的请求。</para>
/// </summary>
public class CgibinWedocDocumentShareRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string? DocumentId { get; set; }
/// <summary>
/// 获取或设置收集表 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("formid")]
[System.Text.Json.Serialization.JsonPropertyName("formid")]
public string? FormId { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/doc_share 接口的响应。</para>
/// </summary>
public class CgibinWedocDocumentShareResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置分享链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_url")]
[System.Text.Json.Serialization.JsonPropertyName("share_url")]
public string ShareUrl { get; set; } = default!;
}
}

View File

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

View File

@ -0,0 +1,56 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/get_doc_base_info 接口的响应。</para>
/// </summary>
public class CgibinWedocGetDocumentBaseInfoResponse : WechatWorkResponse
{
public static class Types
{
public class Document
{
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string DocumentId { get; set; } = default!;
/// <summary>
/// 获取或设置文档类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_type")]
[System.Text.Json.Serialization.JsonPropertyName("doc_type")]
public int DocumentType { get; set; }
/// <summary>
/// 获取或设置文档名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_name")]
[System.Text.Json.Serialization.JsonPropertyName("doc_name")]
public string DocumentName { get; set; } = default!;
/// <summary>
/// 获取或设置文档创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置文档最后修改的时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("modify_time")]
[System.Text.Json.Serialization.JsonPropertyName("modify_time")]
public long ModifyTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置文档信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("doc_base_info")]
[System.Text.Json.Serialization.JsonPropertyName("doc_base_info")]
public Types.Document Document { get; set; } = default!;
}
}

View File

@ -0,0 +1,121 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/mod_doc_join_rule 接口的请求。</para>
/// </summary>
public class CgibinWedocModifyDocumentJoinRuleRequest : WechatWorkRequest
{
public static class Types
{
public class Authority
{
/// <summary>
/// 获取或设置类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { 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_external_userid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_external_userid")]
public string? TempExternalUserId { get; set; }
/// <summary>
/// 获取或设置部门 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("departmentid")]
[System.Text.Json.Serialization.JsonPropertyName("departmentid")]
public long? DepartmentId { get; set; }
/// <summary>
/// 获取或设置权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("auth")]
[System.Text.Json.Serialization.JsonPropertyName("auth")]
public int AuthType { get; set; }
}
}
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string DocumentId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置是否为企业内可访问。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_corp_internal")]
[System.Text.Json.Serialization.JsonPropertyName("enable_corp_internal")]
public bool? EnableCorpInternal { get; set; }
/// <summary>
/// 获取或设置企业内权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_internal_auth")]
[System.Text.Json.Serialization.JsonPropertyName("corp_internal_auth")]
public int? CorpInternalAuthType { get; set; }
/// <summary>
/// 获取或设置是否开启企业内管理员审批。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_internal_approve_only_by_admin")]
[System.Text.Json.Serialization.JsonPropertyName("corp_internal_approve_only_by_admin")]
public bool? IsCorpInternalApproveOnlyByAdmin { get; set; }
/// <summary>
/// 获取或设置是否为企业外可访问。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_corp_external")]
[System.Text.Json.Serialization.JsonPropertyName("enable_corp_external")]
public bool? EnableCorpExternal { get; set; }
/// <summary>
/// 获取或设置企业外权限类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_external_auth")]
[System.Text.Json.Serialization.JsonPropertyName("corp_external_auth")]
public int? CorpExternalAuthType { get; set; }
/// <summary>
/// 获取或设置是否开启企业外管理员审批。
/// </summary>
[Newtonsoft.Json.JsonProperty("corp_external_approve_only_by_admin")]
[System.Text.Json.Serialization.JsonPropertyName("corp_external_approve_only_by_admin")]
public bool? IsCorpExternalApproveOnlyByAdmin { get; set; }
/// <summary>
/// 获取或设置是否禁止分享到企业外部。
/// </summary>
[Newtonsoft.Json.JsonProperty("ban_share_external")]
[System.Text.Json.Serialization.JsonPropertyName("ban_share_external")]
public bool? IsBanShareExternal { get; set; }
/// <summary>
/// 获取或设置是否更新文档查看者授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_co_auth_list")]
[System.Text.Json.Serialization.JsonPropertyName("update_co_auth_list")]
public bool? RequireUpdateCollaboratorAuthorityList { get; set; }
/// <summary>
/// 获取或设置新的文档查看者授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("co_auth_list")]
[System.Text.Json.Serialization.JsonPropertyName("co_auth_list")]
public IList<Types.Authority>? DocumentCollaboratorAuthorityList { get; set; }
}
}

View File

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

View File

@ -0,0 +1,38 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/mod_doc_member 接口的请求。</para>
/// </summary>
public class CgibinWedocModifyDocumentMemberRequest : WechatWorkRequest
{
public static class Types
{
public class Authority : CgibinWedocModifyDocumentJoinRuleRequest.Types.Authority
{
}
}
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string DocumentId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置新增的文档成员授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_file_member_list")]
[System.Text.Json.Serialization.JsonPropertyName("update_file_member_list")]
public IList<Types.Authority>? AddedMemberAuthorityList { get; set; }
/// <summary>
/// 获取或设置删除的文档成员授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("del_file_member_list")]
[System.Text.Json.Serialization.JsonPropertyName("del_file_member_list")]
public IList<Types.Authority>? DeletedMemberAuthorityList { get; set; }
}
}

View File

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

View File

@ -0,0 +1,70 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/mod_doc_safty_setting 接口的请求。</para>
/// </summary>
public class CgibinWedocModifyDocumentSafeSettingRequest : WechatWorkRequest
{
public static class Types
{
public class Watermark
{
/// <summary>
/// 获取或设置水印文字。
/// </summary>
[Newtonsoft.Json.JsonProperty("text")]
[System.Text.Json.Serialization.JsonPropertyName("text")]
public string? Text { get; set; }
/// <summary>
/// 获取或设置水印类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("margin_type")]
[System.Text.Json.Serialization.JsonPropertyName("margin_type")]
public int? MarginType { get; set; }
/// <summary>
/// 获取或设置是否开启水印文本。
/// </summary>
[Newtonsoft.Json.JsonProperty("show_text")]
[System.Text.Json.Serialization.JsonPropertyName("show_text")]
public bool? EnableShowText { get; set; }
/// <summary>
/// 获取或设置是否开启水印访问人名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("show_visitor_name")]
[System.Text.Json.Serialization.JsonPropertyName("show_visitor_name")]
public bool? EnableShowVisitorName { get; set; }
}
}
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string DocumentId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置是否开启只读备份。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_readonly_copy")]
[System.Text.Json.Serialization.JsonPropertyName("enable_readonly_copy")]
public bool? EnableReadonlyCopy { get; set; }
/// <summary>
/// 获取或设置是否开启只读评论。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_readonly_comment")]
[System.Text.Json.Serialization.JsonPropertyName("enable_readonly_comment")]
public bool? EnableReadonlyComment { get; set; }
/// <summary>
/// 获取或设置水印信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("watermark")]
[System.Text.Json.Serialization.JsonPropertyName("watermark")]
public Types.Watermark? Watermark { get; set; }
}
}

View File

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

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/wedoc/rename_doc 接口的请求。</para>
/// </summary>
public class CgibinWedocRenameDocumentRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置文档 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("docid")]
[System.Text.Json.Serialization.JsonPropertyName("docid")]
public string? DocumentId { get; set; }
/// <summary>
/// 获取或设置收集表 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("formid")]
[System.Text.Json.Serialization.JsonPropertyName("formid")]
public string? FormId { get; set; }
/// <summary>
/// 获取或设置新名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("new_name")]
[System.Text.Json.Serialization.JsonPropertyName("new_name")]
public string NewName { get; set; } = string.Empty;
}
}

View File

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

View File

@ -179,7 +179,7 @@
public Types.Authority[]? FileMemberAuthorityList { get; set; }
/// <summary>
/// 获取或设置文件协作者授权信息列表。
/// 获取或设置文件查看者授权信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("co_auth_list")]
[System.Text.Json.Serialization.JsonPropertyName("co_auth_list")]

View File

@ -0,0 +1,10 @@
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[doc_change]]></Event>
<ChangeType><![CDATA[doc_member_change]]></ChangeType>
<DocId><![CDATA[wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA]]></DocId>
<DocId><![CDATA[wcjgewCwAAqeJcPI1d8Pwbjt7nttzBBB]]></DocId>
</xml>

View File

@ -0,0 +1,53 @@
{
"spaceid": "SPACEID",
"fatherid": "FATHERID",
"form_info": {
"form_title": "FORM_TITLE",
"form_desc": "FORM_DESC",
"form_header": "FORM_HEADER",
"form_question": {
"items": [
{
"question_id": 1,
"title": "TITLE",
"pos": 0,
"status": 1,
"reply_type": 1,
"must_reply": true,
"note": "NOTE",
"option_item": [
{
"key": 1,
"value": "VALUE",
"status": 1
}
],
"placeholder": "PLACEHOLDER"
}
]
},
"form_setting": {
"fill_out_auth": 0,
"fill_in_range": {
"userids": ["USER_1", "USER_2", "USER_3"],
"departmentids": [10001, 10002, 10003]
},
"setting_manager_range": {
"userids": ["USER_4", "USER_5", "USER_6"]
},
"timed_repeat_info": {
"enable": true,
"week_flag": 1,
"remind_time": 1,
"repeat_type": 1,
"skip_holiday": true,
"day_of_month": 1,
"fork_finish_type": 1
},
"max_fill_cnt": 0,
"timed_finish": 0,
"can_anonymous": false,
"can_notify_submit": false
}
}
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"formid": "FORMID"
}

View File

@ -0,0 +1,4 @@
{
"repeated_id": "REPEATED_ID1",
"answer_ids": [1]
}

View File

@ -0,0 +1,75 @@
{
"errcode": 0,
"errmsg": "ok",
"answer": {
"answer_list": [
{
"answer_id": 15,
"user_name": "USER_NAME1",
"ctime": 1668430580,
"mtime": 1668430580,
"reply": {
"items": [
{
"question_id": 1,
"text_reply": "Ndjnd"
},
{
"question_id": 2,
"option_reply": [2]
},
{
"question_id": 3,
"text_reply": "20:53"
},
{
"question_id": 4,
"text_reply": "73℃"
},
{
"question_id": 5,
"file_extend_reply": [
{
"name": "FILE_NAME1",
"fileid": "FILEID1"
}
]
},
{
"question_id": 6,
"text_reply": "四川省/成都市/武侯区/天府三街(峰汇中心)"
},
{
"question_id": 7,
"text_reply": "test"
},
{
"question_id": 8,
"option_reply": [1]
},
{
"question_id": 9,
"text_reply": "2022年11月"
},
{
"question_id": 10,
"option_reply": [5]
},
{
"question_id": 11,
"option_reply": [3],
"option_extend_reply": [
{
"option_reply": 3,
"extend_text": "test"
}
]
}
]
},
"answer_status": 1,
"tmp_external_userid": "TMP_EXTERNAL_USERID1"
}
]
}
}

View File

@ -0,0 +1,74 @@
{
"errcode": 0,
"errmsg": "ok",
"form_info": {
"formid": "FORMID1",
"form_title": "api创建的收集表_周期",
"form_desc": "这是描述",
"form_header": "URL",
"form_question": {
"items": [
{
"question_id": 1,
"title": "问题1",
"pos": 1,
"status": 1,
"reply_type": 1,
"must_reply": true,
"note": "问题备注1",
"placeholder": "提示1"
},
{
"question_id": 2,
"title": "问题2",
"pos": 2,
"status": 1,
"reply_type": 2,
"must_reply": false,
"note": "问题备注2",
"option_item": [
{
"key": 1,
"value": "A",
"status": 1
},
{
"key": 2,
"value": "B",
"status": 1
},
{
"key": 3,
"value": "C",
"status": 1
}
],
"placeholder": "提示2"
}
]
},
"form_setting": {
"fill_out_auth": 1,
"fill_in_range": {
"departmentids": [1],
"userids": ["USERID1", "USERID2"]
},
"setting_manager_range": {
"userids": ["USERID1", "USERID2"]
},
"timed_repeat_info": {
"enable": true,
"remind_time": 1668389400,
"rule_ctime": 1668418140,
"rule_mtime": 1668418140,
"repeat_type": 1,
"skip_holiday": false
},
"max_fill_cnt": 0,
"timed_finish": 0,
"can_anonymous": false,
"can_notify_submit": true
},
"repeated_id": ["REPEAT_ID1"]
}
}

View File

@ -0,0 +1,8 @@
{
"repeated_id": "REPEATED_ID2",
"req_type": 2,
"start_time": 1667395287,
"end_time": 1668418369,
"limit": 20,
"cursor": 1
}

View File

@ -0,0 +1,29 @@
{
"errcode": 0,
"errmsg": "ok",
"fill_cnt": 1,
"fill_user_cnt": 1,
"unfill_user_cnt": 90,
"submit_users": [
{
"userid": "USERID1",
"submit_time": 1668418200,
"answer_id": 1,
"user_name": "USER_NAME1"
},
{
"tmp_external_userid": "TMP_EXTERNAL_USERID1",
"submit_time": 1668418200,
"answer_id": 2,
"user_name": "USER_NAME2"
}
],
"unfill_users": [
{
"userid": "USERID1",
"user_name": "USER_NAME1"
}
],
"has_more": false,
"cursor": 1
}

View File

@ -0,0 +1,44 @@
{
"oper": 1,
"formid": "FORMID",
"form_info": {
"form_title": "FORM_TITLE",
"form_desc": "FORM_DESC",
"form_header": "FORM_HEADER",
"form_question": {
"items": [
{
"question_id": 1,
"title": "TITLE",
"pos": 0,
"status": 1,
"reply_type": 1,
"must_reply": true,
"note": "NOTE",
"option_item": [
{
"key": 1,
"value": "VALUE",
"status": 1
}
],
"placeholder": "PLACEHOLDER"
}
]
},
"form_setting": {
"fill_out_auth": 0,
"fill_in_range": {
"userids": ["USER_1", "USER_2", "USER_3"],
"departmentids": [10001, 10002, 10003]
},
"setting_manager_range": {
"userids": ["USER_4", "USER_5", "USER_6"]
},
"max_fill_cnt": 0,
"timed_finish": 0,
"can_anonymous": false,
"can_notify_submit": false
}
}
}

View File

@ -0,0 +1,7 @@
{
"spaceid": "SPACEID",
"fatherid": "FATHERID",
"doc_type": 0,
"doc_name": "DOC_NAME",
"admin_users": ["USERID1", "USERID2", "USERID3"]
}

View File

@ -0,0 +1,6 @@
{
"errcode": 0,
"errmsg": "ok",
"url": "URL",
"docid": "DOCID"
}

View File

@ -0,0 +1,4 @@
{
"docid": "DOCID",
"formid": "FORMID"
}

View File

@ -0,0 +1,42 @@
{
"errcode": 0,
"errmsg": "ok",
"access_rule": {
"enable_corp_internal": true,
"corp_internal_auth": 1,
"enable_corp_external": true,
"corp_external_auth": 1,
"corp_internal_approve_only_by_admin": true,
"corp_external_approve_only_by_admin": true,
"ban_share_external": false
},
"secure_setting": {
"enable_readonly_copy": false,
"watermark": {
"margin_type": 2,
"show_visitor_name": false,
"show_text": false,
"text": ""
},
"enable_readonly_comment": false
},
"doc_member_list": [
{
"type": 1,
"userid": "USERID1",
"auth": 7
},
{
"type": 1,
"tmp_external_userid": "TMP_EXTERNAL_USERID2",
"auth": 1
}
],
"co_auth_list": [
{
"type": 2,
"departmentid": 1,
"auth": 1
}
]
}

View File

@ -0,0 +1,4 @@
{
"docid": "DOCID",
"formid": "FORMID"
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"share_url": "URL1"
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"doc_base_info": {
"docid": "DOCID",
"doc_name": "DOC_NAME",
"create_time": 0,
"modify_time": 0,
"doc_type": 0
}
}

View File

@ -0,0 +1,18 @@
{
"docid": "DOCID",
"enable_corp_internal": true,
"corp_internal_auth": 1,
"enable_corp_external": true,
"corp_external_auth": 1,
"corp_internal_approve_only_by_admin": true,
"corp_external_approve_only_by_admin": true,
"ban_share_external": false,
"update_co_auth_list": true,
"co_auth_list": [
{
"departmentid": 1,
"auth": 1,
"type": 2
}
]
}

View File

@ -0,0 +1,20 @@
{
"docid": "DOCID",
"update_file_member_list": [
{
"type": 1,
"auth": 7,
"userid": "USERID1"
}
],
"del_file_member_list": [
{
"type": 1,
"userid": "USERID2"
},
{
"type": 1,
"tmp_external_userid": "TMP_EXTERNAL_USERID2"
}
]
}

View File

@ -0,0 +1,10 @@
{
"docid": "DOCID",
"enable_readonly_copy": false,
"watermark": {
"margin_type": 1,
"show_visitor_name": true,
"show_text": true,
"text": "test mark"
}
}

View File

@ -0,0 +1,5 @@
{
"docid": "DOCID",
"formid": "FORMID",
"new_name": "NEW_NAME"
}