feat(work): 新增会议报名相关接口

This commit is contained in:
Fu Diwei 2023-06-14 21:27:33 +08:00
parent 23e7b62fa6
commit 8eafc34ab9
29 changed files with 992 additions and 0 deletions

View File

@ -353,5 +353,147 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingGetQualityResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region Enroll
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/set_config 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98821 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollSetConfigResponse> ExecuteCgibinMeetingEnrollSetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollSetConfigRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "set_config")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollSetConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/get_config 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98821 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollGetConfigResponse> ExecuteCgibinMeetingEnrollGetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollGetConfigRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "get_config")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollGetConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98794 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollQueryByTempOpenIdResponse> ExecuteCgibinMeetingEnrollQueryByTempOpenIdAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollQueryByTempOpenIdRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "query_by_tmp_openid")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollQueryByTempOpenIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/list 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98810 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollListResponse> ExecuteCgibinMeetingEnrollListAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/approve 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98807 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollApproveResponse> ExecuteCgibinMeetingEnrollApproveAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollApproveRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "approve")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollApproveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/import 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98816 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollImportResponse> ExecuteCgibinMeetingEnrollImportAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollImportRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "import")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollImportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/enroll/delete 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98817 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingEnrollDeleteResponse> ExecuteCgibinMeetingEnrollDeleteAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollDeleteRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "delete")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingEnrollDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/approve 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollApproveRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置审批动作。
/// </summary>
[Newtonsoft.Json.JsonProperty("action")]
[System.Text.Json.Serialization.JsonPropertyName("action")]
public int ActionType { get; set; }
/// <summary>
/// 获取或设置报名 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")]
public IList<string> EnrollIdList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/approve 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollApproveResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置成功处理的数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("handled_count")]
[System.Text.Json.Serialization.JsonPropertyName("handled_count")]
public int HandledCount { get; set; }
}
}

View File

@ -0,0 +1,37 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/delete 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollDeleteRequest : WechatWorkRequest
{
public static class Types
{
public class Enroll
{
/// <summary>
/// 获取或设置报名 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id")]
public string EnrollId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置报名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")]
public IList<Types.Enroll> EnrollList { get; set; } = new List<Types.Enroll>();
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/delete 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollDeleteResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置成功删除的报名信息条数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

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

View File

@ -0,0 +1,90 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/get_config 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollGetConfigResponse : WechatWorkResponse
{
public static class Types
{
public class Question
{
public static class Types
{
public class Option
{
/// <summary>
/// 获取或设置选项内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("content")]
[System.Text.Json.Serialization.JsonPropertyName("content")]
public string? Content { get; set; }
}
}
/// <summary>
/// 获取或设置必填类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_required")]
[System.Text.Json.Serialization.JsonPropertyName("is_required")]
public int RequiredType { get; set; }
/// <summary>
/// 获取或设置问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_type")]
[System.Text.Json.Serialization.JsonPropertyName("question_type")]
public int QuestionType { get; set; }
/// <summary>
/// 获取或设置特殊问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_type")]
[System.Text.Json.Serialization.JsonPropertyName("special_type")]
public int SpecialType { get; set; }
/// <summary>
/// 获取或设置问题标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_title")]
[System.Text.Json.Serialization.JsonPropertyName("question_title")]
public string? QuestionTitle { get; set; }
/// <summary>
/// 获取或设置选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_list")]
[System.Text.Json.Serialization.JsonPropertyName("option_list")]
public Types.Option[]? OptionList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置审批类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("approve_type")]
[System.Text.Json.Serialization.JsonPropertyName("approve_type")]
public int ApproveType { get; set; }
/// <summary>
/// 获取或设置收集问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_collect_question")]
[System.Text.Json.Serialization.JsonPropertyName("is_collect_question")]
public int CollectQuestionType { get; set; }
/// <summary>
/// 获取或设置问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_list")]
[System.Text.Json.Serialization.JsonPropertyName("question_list")]
public Types.Question[] QuestionList { get; set; } = default!;
/// <summary>
/// 获取或设置是否本企业成员无需报名。
/// </summary>
[Newtonsoft.Json.JsonProperty("no_registration_needed_for_staff")]
[System.Text.Json.Serialization.JsonPropertyName("no_registration_needed_for_staff")]
public bool IsNoRegistrationNeededForStaff { get; set; }
}
}

View File

@ -0,0 +1,58 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/import 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollImportRequest : WechatWorkRequest
{
public static class Types
{
public class Enroll
{
/// <summary>
/// 获取或设置成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置国家地区代码。
/// </summary>
[Newtonsoft.Json.JsonProperty("area")]
[System.Text.Json.Serialization.JsonPropertyName("area")]
public string? AreaCode { get; set; }
/// <summary>
/// 获取或设置手机号码。
/// </summary>
[Newtonsoft.Json.JsonProperty("phone_number")]
[System.Text.Json.Serialization.JsonPropertyName("phone_number")]
public string? PhoneNumber { get; set; }
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nick_name")]
[System.Text.Json.Serialization.JsonPropertyName("nick_name")]
public string? Nickname { get; set; }
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置报名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_list")]
public IList<Types.Enroll> EnrollList { get; set; } = new List<Types.Enroll>();
}
}

View File

@ -0,0 +1,70 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/import 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollImportResponse : WechatWorkResponse
{
public static class Types
{
public class Enroll
{
/// <summary>
/// 获取或设置报名 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id")]
public string EnrollId { get; set; } = default!;
/// <summary>
/// 获取或设置成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置国家地区代码。
/// </summary>
[Newtonsoft.Json.JsonProperty("area")]
[System.Text.Json.Serialization.JsonPropertyName("area")]
public string? AreaCode { get; set; }
/// <summary>
/// 获取或设置手机号码。
/// </summary>
[Newtonsoft.Json.JsonProperty("phone_number")]
[System.Text.Json.Serialization.JsonPropertyName("phone_number")]
public string? PhoneNumber { get; set; }
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nick_name")]
[System.Text.Json.Serialization.JsonPropertyName("nick_name")]
public string? Nickname { get; set; }
/// <summary>
/// 获取或设置报名码。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_code")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_code")]
public string? EnrollCode { get; set; }
}
}
/// <summary>
/// 获取或设置成功导入的报名信息条数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置报名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_list")]
public Types.Enroll[] EnrollList { get; set; } = default!;
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/list 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollListRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置审批状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int? Status { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,146 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/list 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollListResponse : WechatWorkResponse
{
public static class Types
{
public class Enroll
{
public static class Types
{
public class Answer
{
/// <summary>
/// 获取或设置内容列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_content")]
[System.Text.Json.Serialization.JsonPropertyName("answer_content")]
public string[] ContentList { get; set; } = default!;
/// <summary>
/// 获取或设置必填类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_required")]
[System.Text.Json.Serialization.JsonPropertyName("is_required")]
public int RequiredType { get; set; }
/// <summary>
/// 获取或设置问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_type")]
[System.Text.Json.Serialization.JsonPropertyName("question_type")]
public int QuestionType { get; set; }
/// <summary>
/// 获取或设置特殊问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_type")]
[System.Text.Json.Serialization.JsonPropertyName("special_type")]
public int SpecialType { get; set; }
/// <summary>
/// 获取或设置问题编号。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_num")]
[System.Text.Json.Serialization.JsonPropertyName("question_num")]
public int QuestionNumber { get; set; }
/// <summary>
/// 获取或设置问题标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_title")]
[System.Text.Json.Serialization.JsonPropertyName("question_title")]
public string? QuestionTitle { get; set; }
}
}
/// <summary>
/// 获取或设置报名 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id")]
public string EnrollId { get; set; } = default!;
/// <summary>
/// 获取或设置成员账号。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置临时 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_openid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_openid")]
public string? TempOpenId { get; set; }
/// <summary>
/// 获取或设置报名时间字符串格式yyyy/MM/dd HH:mm
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_time")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_time")]
public string EnrollTimeString { get; set; } = default!;
/// <summary>
/// 获取或设置报名来源。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_source_type")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_source_type")]
public int SourceType { get; set; }
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nick_name")]
[System.Text.Json.Serialization.JsonPropertyName("nick_name")]
public string? Nickname { get; set; }
/// <summary>
/// 获取或设置报名状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置报名码。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_code")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_code")]
public string? EnrollCode { get; set; }
/// <summary>
/// 获取或设置答题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_list")]
[System.Text.Json.Serialization.JsonPropertyName("answer_list")]
public Types.Answer[]? AnswerList { get; set; }
}
}
/// <summary>
/// 获取或设置报名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_list")]
public Types.Enroll[] EnrollList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollQueryByTempOpenIdRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置排序规则。
/// </summary>
[Newtonsoft.Json.JsonProperty("sorting_rules")]
[System.Text.Json.Serialization.JsonPropertyName("sorting_rules")]
public int? SortingRule { get; set; }
/// <summary>
/// 获取或设置会议的成员临时 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_openid_list")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_openid_list")]
public IList<string> TempOpenIdList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,35 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollQueryByTempOpenIdResponse : WechatWorkResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置会议的成员临时 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("tmp_openid")]
[System.Text.Json.Serialization.JsonPropertyName("tmp_openid")]
public string TempOpenId { get; set; } = default!;
/// <summary>
/// 获取或设置报名 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id")]
public string EnrollId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("enroll_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")]
public Types.Result[] ResultList { get; set; } = default!;
}
}

View File

@ -0,0 +1,99 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/set_config 接口的请求。</para>
/// </summary>
public class CgibinMeetingEnrollSetConfigRequest : WechatWorkRequest
{
public static class Types
{
public class Question
{
public static class Types
{
public class Option
{
/// <summary>
/// 获取或设置选项内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("content")]
[System.Text.Json.Serialization.JsonPropertyName("content")]
public string? Content { get; set; }
}
}
/// <summary>
/// 获取或设置必填类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_required")]
[System.Text.Json.Serialization.JsonPropertyName("is_required")]
public int? RequiredType { get; set; }
/// <summary>
/// 获取或设置问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_type")]
[System.Text.Json.Serialization.JsonPropertyName("question_type")]
public int? QuestionType { get; set; }
/// <summary>
/// 获取或设置特殊问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_type")]
[System.Text.Json.Serialization.JsonPropertyName("special_type")]
public int? SpecialType { get; set; }
/// <summary>
/// 获取或设置问题标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_title")]
[System.Text.Json.Serialization.JsonPropertyName("question_title")]
public string? QuestionTitle { get; set; }
/// <summary>
/// 获取或设置选项列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("option_list")]
[System.Text.Json.Serialization.JsonPropertyName("option_list")]
public IList<Types.Option>? OptionList { get; set; }
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置审批类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("approve_type")]
[System.Text.Json.Serialization.JsonPropertyName("approve_type")]
public int? ApproveType { get; set; }
/// <summary>
/// 获取或设置收集问题类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_collect_question")]
[System.Text.Json.Serialization.JsonPropertyName("is_collect_question")]
public int? CollectQuestionType { get; set; }
/// <summary>
/// 获取或设置问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_list")]
[System.Text.Json.Serialization.JsonPropertyName("question_list")]
public IList<Types.Question>? QuestionList { get; set; }
/// <summary>
/// 获取或设置是否本企业成员无需报名。
/// </summary>
[Newtonsoft.Json.JsonProperty("no_registration_needed_for_staff")]
[System.Text.Json.Serialization.JsonPropertyName("no_registration_needed_for_staff")]
public bool? IsNoRegistrationNeededForStaff { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/enroll/set_config 接口的响应。</para>
/// </summary>
public class CgibinMeetingEnrollSetConfigResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置报名问题数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("question_count")]
[System.Text.Json.Serialization.JsonPropertyName("question_count")]
public int QuestionCount { get; set; }
}
}

View File

@ -0,0 +1,7 @@
{
"meetingid": "meetingid11234",
"action": 1,
"enroll_id_list": [
"mexxxxxxx"
]
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"handled_count": 10
}

View File

@ -0,0 +1,8 @@
{
"meetingid": "meetingid11234",
"enroll_id_list": [
{
"enroll_id": "123456"
}
]
}

View File

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

View File

@ -0,0 +1,20 @@
{
"errcode": 0,
"errmsg": "ok",
"approve_type": 1,
"is_collect_question": 1,
"no_registration_needed_for_staff": true,
"question_list": [
{
"is_required": 1,
"question_type": 1,
"question_title": "acd",
"special_type": 1,
"option_list": [
{
"content": "asr"
}
]
}
]
}

View File

@ -0,0 +1,11 @@
{
"meetingid": "meetingid11234",
"enroll_list": [
{
"userid": "USERID",
"area": "86",
"phone_number": "13333333333",
"nick_name": "NICKNAME"
}
]
}

View File

@ -0,0 +1,15 @@
{
"errcode": 0,
"errmsg": "ok",
"total_count": 1,
"enroll_list": [
{
"enroll_id": "mexxxxx",
"userid": "USERID",
"area": "86",
"phone_number": "13333333333",
"nick_name": "NICKNAME",
"enroll_code": "CODE"
}
]
}

View File

@ -0,0 +1,6 @@
{
"meetingid": "meetingid11234",
"status": 0,
"cursor": "CURSOR",
"limit": 10
}

View File

@ -0,0 +1,31 @@
{
"errcode": 0,
"errmsg": "ok",
"has_more": false,
"next_cursor": "CURSOR",
"enroll_list": [
{
"enroll_id": "mexxxxxx",
"enroll_time": "2023/03/23 14:00",
"enroll_source_type": 1,
"nick_name": "NICKNAME",
"status": 1,
"userid": "USERID",
"tmp_openid": "TMP_OPENID",
"enroll_code": "CODE",
"answer_list": [
{
"answer_content": [
"CONTENT1",
"CONTENT2"
],
"is_required": 1,
"question_num": 10,
"question_title": "TITLE",
"question_type": 1,
"special_type": 1
}
]
}
]
}

View File

@ -0,0 +1,8 @@
{
"meetingid": "meetingid11234",
"sorting_rules": 1,
"tmp_openid_list": [
"msaaaaaaaa",
"msbbbbbbbb"
]
}

View File

@ -0,0 +1,14 @@
{
"errcode": 0,
"errmsg": "ok",
"enroll_id_list": [
{
"tmp_openid": "msaaaaaaaa",
"enroll_id": "mexxxxxxx"
},
{
"tmp_openid": "msbbbbbbbb",
"enroll_id": "meyyyyyyy"
}
]
}

View File

@ -0,0 +1,19 @@
{
"meetingid": "MEETINGID1",
"approve_type": 1,
"is_collect_question": 1,
"no_registration_needed_for_staff": true,
"question_list": [
{
"is_required": 1,
"question_type": 1,
"question_title": "acd",
"special_type": 1,
"option_list": [
{
"content": "asr"
}
]
}
]
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"question_count": 12
}