diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs index 55fc8fa2..ca4e7fd8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs @@ -983,5 +983,147 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region Webinar + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/create 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98842 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarCreateAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarCreateRequest 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", "webinar", "create") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/update 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98843 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarUpdateAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarUpdateRequest 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", "webinar", "update") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/cancel 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98843 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarCancelAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarCancelRequest 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", "webinar", "cancel") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/get 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98860 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarGetAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarGetRequest 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", "webinar", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/list_guest 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98871 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarListGuestAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarListGuestRequest 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", "webinar", "list_guest") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/update_guest_list 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98872 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarUpdateGuestListAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarUpdateGuestListRequest 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", "webinar", "update_guest_list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/webinar/update_warm_up 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98882 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingWebinarUpdateWarmUpAsync(this WechatWorkClient client, Models.CgibinMeetingWebinarUpdateWarmUpRequest 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", "webinar", "update_warm_up") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.cs new file mode 100644 index 00000000..41c6feff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/cancel 接口的请求。 + /// + public class CgibinMeetingWebinarCancelRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelResponse.cs new file mode 100644 index 00000000..aa92547b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/cancel 接口的响应。 + /// + public class CgibinMeetingWebinarCancelResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.cs new file mode 100644 index 00000000..572d8779 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.cs @@ -0,0 +1,222 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/create 接口的请求。 + /// + public class CgibinMeetingWebinarCreateRequest : WechatWorkRequest + { + public static class Types + { + public class Host + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + } + + public class MediaSettings + { + /// + /// 获取或设置是否入会时静音。 + /// + [Newtonsoft.Json.JsonProperty("enable_enter_mute")] + [System.Text.Json.Serialization.JsonPropertyName("enable_enter_mute")] + public bool? EnableEnterMute { get; set; } + + /// + /// 获取或设置允许参会者取消静音。 + /// + [Newtonsoft.Json.JsonProperty("allow_unmute_self")] + [System.Text.Json.Serialization.JsonPropertyName("allow_unmute_self")] + public bool? AllowUnmuteSelf { get; set; } + + /// + /// 获取或设置是否允许嘉宾在主持人进会前加入会议。 + /// + [Newtonsoft.Json.JsonProperty("allow_enter_before_host")] + [System.Text.Json.Serialization.JsonPropertyName("allow_enter_before_host")] + public bool? AllowEnterBeforeHost { get; set; } + + /// + /// 获取或设置是否开启屏幕共享水印。 + /// + [Newtonsoft.Json.JsonProperty("enable_screen_watermark")] + [System.Text.Json.Serialization.JsonPropertyName("enable_screen_watermark")] + public bool? EnableScreenWatermark { get; set; } + + /// + /// 获取或设置水印样式。 + /// + [Newtonsoft.Json.JsonProperty("watermark_type")] + [System.Text.Json.Serialization.JsonPropertyName("watermark_type")] + public int? WatermarkType { get; set; } + + /// + /// 获取或设置是否仅企业内部成员可入会。 + /// + [Newtonsoft.Json.JsonProperty("allow_external_user")] + [System.Text.Json.Serialization.JsonPropertyName("allow_external_user")] + public bool? AllowExternalUser { get; set; } + + /// + /// 获取或设置自动会议录制类型。 + /// + [Newtonsoft.Json.JsonProperty("auto_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("auto_record_type")] + public string? AutoRecordType { get; set; } + + /// + /// 获取或设置是否当有参会成员入会时立即开启云录制。 + /// + [Newtonsoft.Json.JsonProperty("attendee_join_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("attendee_join_auto_record")] + public bool? IsAttendeeJoinAutoRecord { get; set; } + + /// + /// 获取或设置是否允许主持人暂停或者停止云录制。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_pause_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_pause_auto_record")] + public bool? EnableHostPauseAutoRecord { get; set; } + } + } + + /// + /// 获取或设置管理员成员账号。 + /// + [Newtonsoft.Json.JsonProperty("admin_userid")] + [System.Text.Json.Serialization.JsonPropertyName("admin_userid")] + public string AdminUserId { get; set; } = string.Empty; + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置主办方名称。 + /// + [Newtonsoft.Json.JsonProperty("sponsor")] + [System.Text.Json.Serialization.JsonPropertyName("sponsor")] + public string? Sponsor { get; set; } + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置主持人列表。 + /// + [Newtonsoft.Json.JsonProperty("hosts")] + [System.Text.Json.Serialization.JsonPropertyName("hosts")] + public IList? HostList { get; set; } + + /// + /// 获取或设置观众观看限制类型。 + /// + [Newtonsoft.Json.JsonProperty("admission_type")] + [System.Text.Json.Serialization.JsonPropertyName("admission_type")] + public int AdmissionType { get; set; } + + /// + /// 获取或设置观众观看密码。 + /// + [Newtonsoft.Json.JsonProperty("password")] + [System.Text.Json.Serialization.JsonPropertyName("password")] + public string? Password { get; set; } + + /// + /// 获取或设置封面图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("cover_url")] + [System.Text.Json.Serialization.JsonPropertyName("cover_url")] + public string? CoverUrl { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置是否开启通过邀请链接自动成为嘉宾。 + /// + [Newtonsoft.Json.JsonProperty("enable_guest_invite_link")] + [System.Text.Json.Serialization.JsonPropertyName("enable_guest_invite_link")] + public bool? EnableGuestInviteLink { get; set; } + + /// + /// 获取或设置媒体参数配置信息。 + /// + [Newtonsoft.Json.JsonProperty("media_setting")] + [System.Text.Json.Serialization.JsonPropertyName("media_setting")] + public Types.MediaSettings? MediaSettings { get; set; } + + /// + /// 获取或设置是否开启问答。 + /// + [Newtonsoft.Json.JsonProperty("enable_qa")] + [System.Text.Json.Serialization.JsonPropertyName("enable_qa")] + public bool? EnableQA { get; set; } + + /// + /// 获取或设置聊天敏感词列表。 + /// + [Newtonsoft.Json.JsonProperty("sensitive_words")] + [System.Text.Json.Serialization.JsonPropertyName("sensitive_words")] + public IList? SensitiveWordList { get; set; } + + /// + /// 获取或设置是否开启人工审核。 + /// + [Newtonsoft.Json.JsonProperty("enable_manual_check")] + [System.Text.Json.Serialization.JsonPropertyName("enable_manual_check")] + public bool? EnableManualCheck { get; set; } + + /// + /// 获取或设置是否开启活动页。 + /// + [Newtonsoft.Json.JsonProperty("activity_page")] + [System.Text.Json.Serialization.JsonPropertyName("activity_page")] + public bool? EnableActivityPage { get; set; } + + /// + /// 获取或设置活动页展示已报名或已预约人数。 + /// + [Newtonsoft.Json.JsonProperty("display_number_of_attendees")] + [System.Text.Json.Serialization.JsonPropertyName("display_number_of_attendees")] + public int? DisplayNumberOfAttendeesType { get; set; } + + /// + /// 获取或设置是否允许观众观看回放。 + /// + [Newtonsoft.Json.JsonProperty("playback_for_audience")] + [System.Text.Json.Serialization.JsonPropertyName("playback_for_audience")] + public bool? AllowPlaybackForAudience { get; set; } + + /// + /// 获取或设置是否开启准备模式。 + /// + [Newtonsoft.Json.JsonProperty("preparation_mode")] + [System.Text.Json.Serialization.JsonPropertyName("preparation_mode")] + public bool? EnablePreparationMode { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.cs new file mode 100644 index 00000000..64477d85 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.cs @@ -0,0 +1,87 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/create 接口的响应。 + /// + public class CgibinMeetingWebinarCreateResponse : WechatWorkResponse + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = default!; + + /// + /// 获取或设置入会码。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string MeetingCode { get; set; } = default!; + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置观众观看限制类型。 + /// + [Newtonsoft.Json.JsonProperty("admission_type")] + [System.Text.Json.Serialization.JsonPropertyName("admission_type")] + public int AdmissionType { get; set; } + + /// + /// 获取或设置观众观看密码。 + /// + [Newtonsoft.Json.JsonProperty("password")] + [System.Text.Json.Serialization.JsonPropertyName("password")] + public string? Password { get; set; } + + /// + /// 获取或设置观众入会链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("audience_join_link")] + [System.Text.Json.Serialization.JsonPropertyName("audience_join_link")] + public string? AudienceJoinLinkUrl { get; set; } + + /// + /// 获取或设置嘉宾入会链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("guest_join_link")] + [System.Text.Json.Serialization.JsonPropertyName("guest_join_link")] + public string? GuestJoinLink { get; set; } + + /// + /// 获取或设置人工审核链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("manual_check_link")] + [System.Text.Json.Serialization.JsonPropertyName("manual_check_link")] + public string? ManualCheckLinkUrl { get; set; } + + /// + /// 获取或设置人工审核密码。 + /// + [Newtonsoft.Json.JsonProperty("manual_check_password")] + [System.Text.Json.Serialization.JsonPropertyName("manual_check_password")] + public string? ManualCheckPassword { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.cs new file mode 100644 index 00000000..208f268c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/get 接口的请求。 + /// + public class CgibinMeetingWebinarGetRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string? MeetingId { get; set; } + + /// + /// 获取或设置入会码。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string? MeetingCode { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.cs new file mode 100644 index 00000000..ba428a92 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.cs @@ -0,0 +1,278 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/get 接口的响应。 + /// + public class CgibinMeetingWebinarGetResponse : WechatWorkResponse + { + public static class Types + { + public class Host + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + } + + public class MediaSettings + { + /// + /// 获取或设置是否入会时静音。 + /// + [Newtonsoft.Json.JsonProperty("enable_enter_mute")] + [System.Text.Json.Serialization.JsonPropertyName("enable_enter_mute")] + public bool EnableEnterMute { get; set; } + + /// + /// 获取或设置允许参会者取消静音。 + /// + [Newtonsoft.Json.JsonProperty("allow_unmute_self")] + [System.Text.Json.Serialization.JsonPropertyName("allow_unmute_self")] + public bool AllowUnmuteSelf { get; set; } + + /// + /// 获取或设置是否允许嘉宾在主持人进会前加入会议。 + /// + [Newtonsoft.Json.JsonProperty("allow_enter_before_host")] + [System.Text.Json.Serialization.JsonPropertyName("allow_enter_before_host")] + public bool AllowEnterBeforeHost { get; set; } + + /// + /// 获取或设置是否开启屏幕共享水印。 + /// + [Newtonsoft.Json.JsonProperty("enable_screen_watermark")] + [System.Text.Json.Serialization.JsonPropertyName("enable_screen_watermark")] + public bool EnableScreenWatermark { get; set; } + + /// + /// 获取或设置水印样式。 + /// + [Newtonsoft.Json.JsonProperty("watermark_type")] + [System.Text.Json.Serialization.JsonPropertyName("watermark_type")] + public int WatermarkType { get; set; } + + /// + /// 获取或设置是否仅企业内部成员可入会。 + /// + [Newtonsoft.Json.JsonProperty("allow_external_user")] + [System.Text.Json.Serialization.JsonPropertyName("allow_external_user")] + public bool AllowExternalUser { get; set; } + + /// + /// 获取或设置自动会议录制类型。 + /// + [Newtonsoft.Json.JsonProperty("auto_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("auto_record_type")] + public string AutoRecordType { get; set; } = default!; + + /// + /// 获取或设置是否当有参会成员入会时立即开启云录制。 + /// + [Newtonsoft.Json.JsonProperty("attendee_join_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("attendee_join_auto_record")] + public bool IsAttendeeJoinAutoRecord { get; set; } + + /// + /// 获取或设置是否允许主持人暂停或者停止云录制。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_pause_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_pause_auto_record")] + public bool EnableHostPauseAutoRecord { get; set; } + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = default!; + + /// + /// 获取或设置入会码。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string MeetingCode { get; set; } = default!; + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置主办方名称。 + /// + [Newtonsoft.Json.JsonProperty("sponsor")] + [System.Text.Json.Serialization.JsonPropertyName("sponsor")] + public string Sponsor { get; set; } = default!; + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置会议状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置会议主持人列表。 + /// + [Newtonsoft.Json.JsonProperty("hosts")] + [System.Text.Json.Serialization.JsonPropertyName("hosts")] + public Types.Host[]? HostList { get; set; } + + /// + /// 获取或设置观众观看限制类型。 + /// + [Newtonsoft.Json.JsonProperty("admission_type")] + [System.Text.Json.Serialization.JsonPropertyName("admission_type")] + public int AdmissionType { get; set; } + + /// + /// 获取或设置观众观看密码。 + /// + [Newtonsoft.Json.JsonProperty("password")] + [System.Text.Json.Serialization.JsonPropertyName("password")] + public string? Password { get; set; } + + /// + /// 获取或设置封面图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("cover_url")] + [System.Text.Json.Serialization.JsonPropertyName("cover_url")] + public string? CoverUrl { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置是否开启通过邀请链接自动成为嘉宾。 + /// + [Newtonsoft.Json.JsonProperty("enable_guest_invite_link")] + [System.Text.Json.Serialization.JsonPropertyName("enable_guest_invite_link")] + public bool EnableGuestInviteLink { get; set; } + + /// + /// 获取或设置观众入会链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("audience_join_link")] + [System.Text.Json.Serialization.JsonPropertyName("audience_join_link")] + public string? AudienceJoinLinkUrl { get; set; } + + /// + /// 获取或设置嘉宾入会链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("guest_join_link")] + [System.Text.Json.Serialization.JsonPropertyName("guest_join_link")] + public string? GuestJoinLink { get; set; } + + /// + /// 获取或设置人工审核链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("manual_check_link")] + [System.Text.Json.Serialization.JsonPropertyName("manual_check_link")] + public string? ManualCheckLinkUrl { get; set; } + + /// + /// 获取或设置人工审核密码。 + /// + [Newtonsoft.Json.JsonProperty("manual_check_password")] + [System.Text.Json.Serialization.JsonPropertyName("manual_check_password")] + public string? ManualCheckPassword { get; set; } + + /// + /// 获取或设置媒体参数配置信息。 + /// + [Newtonsoft.Json.JsonProperty("media_setting")] + [System.Text.Json.Serialization.JsonPropertyName("media_setting")] + public Types.MediaSettings MediaSettings { get; set; } = default!; + + /// + /// 获取或设置是否开启问答。 + /// + [Newtonsoft.Json.JsonProperty("enable_qa")] + [System.Text.Json.Serialization.JsonPropertyName("enable_qa")] + public bool EnableQA { get; set; } + + /// + /// 获取或设置是否开启活动页。 + /// + [Newtonsoft.Json.JsonProperty("activity_page")] + [System.Text.Json.Serialization.JsonPropertyName("activity_page")] + public bool EnableActivityPage { get; set; } + + /// + /// 获取或设置活动页展示已报名或已预约人数。 + /// + [Newtonsoft.Json.JsonProperty("display_number_of_attendees")] + [System.Text.Json.Serialization.JsonPropertyName("display_number_of_attendees")] + public int DisplayNumberOfAttendeesType { get; set; } + + /// + /// 获取或设置是否允许观众观看回放。 + /// + [Newtonsoft.Json.JsonProperty("playback_for_audience")] + [System.Text.Json.Serialization.JsonPropertyName("playback_for_audience")] + public bool AllowPlaybackForAudience { get; set; } + + /// + /// 获取或设置回放地址 URL。 + /// + [Newtonsoft.Json.JsonProperty("playback_url")] + [System.Text.Json.Serialization.JsonPropertyName("playback_url")] + public string? PlaybackUrl { get; set; } + + /// + /// 获取或设置是否开启准备模式。 + /// + [Newtonsoft.Json.JsonProperty("preparation_mode")] + [System.Text.Json.Serialization.JsonPropertyName("preparation_mode")] + public bool EnablePreparationMode { get; set; } + + /// + /// 获取或设置暖场图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("warm_up_picture")] + [System.Text.Json.Serialization.JsonPropertyName("warm_up_picture")] + public string? WarmUpPictureUrl { get; set; } + + /// + /// 获取或设置暖场视频 URL。 + /// + [Newtonsoft.Json.JsonProperty("warm_up_video")] + [System.Text.Json.Serialization.JsonPropertyName("warm_up_video")] + public string? WarmUpVideoUrl { get; set; } + + /// + /// 获取或设置是否允许参会者在暖场中邀请成员。 + /// + [Newtonsoft.Json.JsonProperty("allow_attendees_invite_others")] + [System.Text.Json.Serialization.JsonPropertyName("allow_attendees_invite_others")] + public bool AllowAttendeesInviteOthers { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.cs new file mode 100644 index 00000000..f2de9d07 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/list_guest 接口的请求。 + /// + public class CgibinMeetingWebinarListGuestRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string? MeetingId { get; set; } + + /// + /// 获取或设置入会码。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string? MeetingCode { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.cs new file mode 100644 index 00000000..99760bbd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/list_guest 接口的响应。 + /// + public class CgibinMeetingWebinarListGuestResponse : WechatWorkResponse + { + public static class Types + { + public class Guest : CgibinMeetingWebinarUpdateGuestListRequest.Types.Guest + { + } + } + + /// + /// 获取或设置嘉宾列表。。 + /// + [Newtonsoft.Json.JsonProperty("guests")] + [System.Text.Json.Serialization.JsonPropertyName("guests")] + public Types.Guest[] GuestList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.cs new file mode 100644 index 00000000..46df6c09 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.cs @@ -0,0 +1,73 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update_guest_list 接口的请求。 + /// + public class CgibinMeetingWebinarUpdateGuestListRequest : WechatWorkRequest + { + public static class Types + { + public class Guest + { + /// + /// 获取或设置嘉宾类型。 + /// + [Newtonsoft.Json.JsonProperty("guest_type")] + [System.Text.Json.Serialization.JsonPropertyName("guest_type")] + public int GuestType { get; set; } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置国家地区代码。 + /// + [Newtonsoft.Json.JsonProperty("area")] + [System.Text.Json.Serialization.JsonPropertyName("area")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))] + public string? AreaCode { get; set; } + + /// + /// 获取或设置电话号码。 + /// + [Newtonsoft.Json.JsonProperty("phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number")] + public string? PhoneNumber { get; set; } + + /// + /// 获取或设置电子邮箱。 + /// + [Newtonsoft.Json.JsonProperty("email")] + [System.Text.Json.Serialization.JsonPropertyName("email")] + public string? Email { get; set; } + + /// + /// 获取或设置会议嘉宾姓名。 + /// + [Newtonsoft.Json.JsonProperty("guest_name")] + [System.Text.Json.Serialization.JsonPropertyName("guest_name")] + public string? GuestName { get; set; } + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置嘉宾列表。。 + /// + [Newtonsoft.Json.JsonProperty("guests")] + [System.Text.Json.Serialization.JsonPropertyName("guests")] + public IList GuestList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListResponse.cs new file mode 100644 index 00000000..7d28550b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update_guest_list 接口的响应。 + /// + public class CgibinMeetingWebinarUpdateGuestListResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.cs new file mode 100644 index 00000000..3741398d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.cs @@ -0,0 +1,154 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update 接口的请求。 + /// + public class CgibinMeetingWebinarUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class Host : CgibinMeetingWebinarCreateRequest.Types.Host + { + } + + public class MediaSettings : CgibinMeetingWebinarCreateRequest.Types.MediaSettings + { + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置主办方名称。 + /// + [Newtonsoft.Json.JsonProperty("sponsor")] + [System.Text.Json.Serialization.JsonPropertyName("sponsor")] + public string? Sponsor { get; set; } + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置主持人列表。 + /// + [Newtonsoft.Json.JsonProperty("hosts")] + [System.Text.Json.Serialization.JsonPropertyName("hosts")] + public IList? HostList { get; set; } + + /// + /// 获取或设置观众观看限制类型。 + /// + [Newtonsoft.Json.JsonProperty("admission_type")] + [System.Text.Json.Serialization.JsonPropertyName("admission_type")] + public int AdmissionType { get; set; } + + /// + /// 获取或设置观众观看密码。 + /// + [Newtonsoft.Json.JsonProperty("password")] + [System.Text.Json.Serialization.JsonPropertyName("password")] + public string? Password { get; set; } + + /// + /// 获取或设置封面图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("cover_url")] + [System.Text.Json.Serialization.JsonPropertyName("cover_url")] + public string? CoverUrl { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置是否开启通过邀请链接自动成为嘉宾。 + /// + [Newtonsoft.Json.JsonProperty("enable_guest_invite_link")] + [System.Text.Json.Serialization.JsonPropertyName("enable_guest_invite_link")] + public bool? EnableGuestInviteLink { get; set; } + + /// + /// 获取或设置媒体参数配置信息。 + /// + [Newtonsoft.Json.JsonProperty("media_setting")] + [System.Text.Json.Serialization.JsonPropertyName("media_setting")] + public Types.MediaSettings? MediaSettings { get; set; } + + /// + /// 获取或设置是否开启问答。 + /// + [Newtonsoft.Json.JsonProperty("enable_qa")] + [System.Text.Json.Serialization.JsonPropertyName("enable_qa")] + public bool? EnableQA { get; set; } + + /// + /// 获取或设置聊天敏感词列表。 + /// + [Newtonsoft.Json.JsonProperty("sensitive_words")] + [System.Text.Json.Serialization.JsonPropertyName("sensitive_words")] + public IList? SensitiveWordList { get; set; } + + /// + /// 获取或设置是否开启人工审核。 + /// + [Newtonsoft.Json.JsonProperty("enable_manual_check")] + [System.Text.Json.Serialization.JsonPropertyName("enable_manual_check")] + public bool? EnableManualCheck { get; set; } + + /// + /// 获取或设置是否开启活动页。 + /// + [Newtonsoft.Json.JsonProperty("activity_page")] + [System.Text.Json.Serialization.JsonPropertyName("activity_page")] + public bool? EnableActivityPage { get; set; } + + /// + /// 获取或设置活动页展示已报名或已预约人数。 + /// + [Newtonsoft.Json.JsonProperty("display_number_of_attendees")] + [System.Text.Json.Serialization.JsonPropertyName("display_number_of_attendees")] + public int? DisplayNumberOfAttendeesType { get; set; } + + /// + /// 获取或设置是否允许观众观看回放。 + /// + [Newtonsoft.Json.JsonProperty("playback_for_audience")] + [System.Text.Json.Serialization.JsonPropertyName("playback_for_audience")] + public bool? AllowPlaybackForAudience { get; set; } + + /// + /// 获取或设置是否开启准备模式。 + /// + [Newtonsoft.Json.JsonProperty("preparation_mode")] + [System.Text.Json.Serialization.JsonPropertyName("preparation_mode")] + public bool? EnablePreparationMode { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateResponse.cs new file mode 100644 index 00000000..97cd6a7b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update 接口的响应。 + /// + public class CgibinMeetingWebinarUpdateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.cs new file mode 100644 index 00000000..5043c422 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update_warm_up 接口的请求。 + /// + public class CgibinMeetingWebinarUpdateWarmUpRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置暖场图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("warm_up_picture")] + [System.Text.Json.Serialization.JsonPropertyName("warm_up_picture")] + public string? WarmUpPictureUrl { get; set; } + + /// + /// 获取或设置暖场视频 URL。 + /// + [Newtonsoft.Json.JsonProperty("warm_up_video")] + [System.Text.Json.Serialization.JsonPropertyName("warm_up_video")] + public string? WarmUpVideoUrl { get; set; } + + /// + /// 获取或设置是否允许参会者在暖场中邀请成员。 + /// + [Newtonsoft.Json.JsonProperty("allow_attendees_invite_others")] + [System.Text.Json.Serialization.JsonPropertyName("allow_attendees_invite_others")] + public bool? AllowAttendeesInviteOthers { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpResponse.cs new file mode 100644 index 00000000..43802223 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/webinar/update_warm_up 接口的响应。 + /// + public class CgibinMeetingWebinarUpdateWarmUpResponse : WechatWorkResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.json new file mode 100644 index 00000000..d0e8505d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCancelRequest.json @@ -0,0 +1,3 @@ +{ + "meetingid": "MEETINGID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.json new file mode 100644 index 00000000..e5b0ba91 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateRequest.json @@ -0,0 +1,37 @@ +{ + "admin_userid": "USERID", + "title": "TITLE", + "sponsor": "SPONSOR", + "start_time": "166666666", + "end_time": "177777777", + "admission_type": 0, + "hosts": [ + { + "userid": "USERID" + } + ], + "password": "PASSWORD", + "cover_url": "URL", + "description": "description", + "enable_guest_invite_link": false, + "media_setting": { + "enable_enter_mute": false, + "allow_unmute_self": false, + "allow_enter_before_host": false, + "enable_screen_watermark": false, + "watermark_type": 0, + "allow_external_user": false, + "auto_record_type": "none", + "attendee_join_auto_record": false, + "enable_host_pause_auto_record": false + }, + "enable_qa": false, + "sensitive_words": [ + "WORD1" + ], + "enable_manual_check": false, + "activity_page": false, + "display_number_of_attendees": 0, + "playback_for_audience": true, + "preparation_mode": false +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.json new file mode 100644 index 00000000..b431db1a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarCreateResponse.json @@ -0,0 +1,15 @@ +{ + "errcode": 0, + "errmsg": "ok", + "title": "TITLE", + "meetingid": "MEETINGID", + "meeting_code": "CODE", + "start_time": "166666666", + "end_time": "177777777", + "admission_type": 0, + "password": "PASSWORD", + "audience_join_link": "LINK", + "guest_join_link": "LINK", + "manual_check_link": "LINK", + "manual_check_password": "PASSWORD" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.json new file mode 100644 index 00000000..2f99468d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetRequest.json @@ -0,0 +1,4 @@ +{ + "meetingid": "MEETINGID", + "meeting_code": "MEETINGCODE" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.json new file mode 100644 index 00000000..d0ae4823 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarGetResponse.json @@ -0,0 +1,41 @@ +{ + "meetingid": "MEETINGID", + "title": "TITLE", + "sponsor": "SPONSOR", + "start_time": "166666666", + "end_time": "177777777", + "admission_type": 0, + "hosts": [ + { + "userid": "USERID" + } + ], + "password": "PASSWORD", + "cover_url": "URL", + "description": "description", + "enable_guest_invite_link": false, + "audience_join_link": "LINK", + "guest_join_link": "LINK", + "media_setting": { + "enable_enter_mute": false, + "allow_unmute_self": false, + "allow_enter_before_host": false, + "enable_screen_watermark": false, + "watermark_type": 0, + "allow_external_user": false, + "auto_record_type": "none", + "attendee_join_auto_record": false, + "enable_host_pause_auto_record": false + }, + "enable_qa": false, + "manual_check_link": "LINK", + "manual_check_password": "PASSWORD", + "activity_page": false, + "display_number_of_attendees": 0, + "playback_for_audience": true, + "playback_url": "URL", + "preparation_mode": false, + "warm_up_picture": "URL", + "warm_up_video": "URL", + "allow_attendees_invite_others": false +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.json new file mode 100644 index 00000000..ffabd028 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestRequest.json @@ -0,0 +1,4 @@ +{ + "meetingid": "MEETINGID", + "meeting_code": "CODE" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.json new file mode 100644 index 00000000..6d0ba32e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarListGuestResponse.json @@ -0,0 +1,14 @@ +{ + "errcode": 0, + "errmsg": "ok", + "guests": [ + { + "guest_type": 1, + "userid": "USERID", + "area": "86", + "phone_number": "15900000001", + "guest_name": "NAME", + "email": "" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.json new file mode 100644 index 00000000..45ce9922 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateGuestListRequest.json @@ -0,0 +1,13 @@ +{ + "meetingid": "MEETINGID", + "guests": [ + { + "guest_type": 1, + "userid": "USERID", + "area": "86", + "phone_number": "13333333333", + "guest_name": "NAME", + "email": "xxxxx@yy.com" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.json new file mode 100644 index 00000000..ae33784b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateRequest.json @@ -0,0 +1,37 @@ +{ + "meetingid": "MEETINGID", + "title": "TITLE", + "sponsor": "SPONSOR", + "start_time": "166666666", + "end_time": "177777777", + "admission_type": 0, + "hosts": [ + { + "userid": "USERID" + } + ], + "password": "PASSWORD", + "cover_url": "URL", + "description": "description", + "enable_guest_invite_link": false, + "media_setting": { + "enable_enter_mute": false, + "allow_unmute_self": false, + "allow_enter_before_host": false, + "enable_screen_watermark": false, + "watermark_type": 0, + "allow_external_user": false, + "auto_record_type": "none", + "attendee_join_auto_record": false, + "enable_host_pause_auto_record": false + }, + "enable_qa": false, + "sensitive_words": [ + "WORD1" + ], + "enable_manual_check": false, + "activity_page": false, + "display_number_of_attendees": 0, + "playback_for_audience": true, + "preparation_mode": false +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.json new file mode 100644 index 00000000..3bfacb49 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Webinar/CgibinMeetingWebinarUpdateWarmUpRequest.json @@ -0,0 +1,6 @@ +{ + "meetingid": "MEETINGID1", + "warm_up_picture": "https://xxxxxx.cos.myqcloud.com/flower.png", + "warm_up_video": "https://xxxxxx.cos.myqcloud.com/cat.mp4", + "allow_attendees_invite_others": true +}