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 WechatWorkClientExecuteCgibinKfExtensions
{
#region Account
///
/// 异步调用 [POST] /cgi-bin/kf/account/add 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94662
/// REF: https://developer.work.weixin.qq.com/document/path/94688
///
///
///
///
///
public static async Task ExecuteCgibinKfAccountAddAsync(this WechatWorkClient client, Models.CgibinKfAccountAddRequest 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", "kf", "account", "add")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/account/list 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94661
/// REF: https://developer.work.weixin.qq.com/document/path/94691
///
///
///
///
///
public static async Task ExecuteCgibinKfAccountListAsync(this WechatWorkClient client, Models.CgibinKfAccountListRequest 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", "kf", "account", "list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/account/update 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94664
/// REF: https://developer.work.weixin.qq.com/document/path/94690
///
///
///
///
///
public static async Task ExecuteCgibinKfAccountUpdateAsync(this WechatWorkClient client, Models.CgibinKfAccountUpdateRequest 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", "kf", "account", "update")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/account/del 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94663
/// REF: https://developer.work.weixin.qq.com/document/path/94689
///
///
///
///
///
public static async Task ExecuteCgibinKfAccountDeleteAsync(this WechatWorkClient client, Models.CgibinKfAccountDeleteRequest 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", "kf", "account", "del")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/add_contact_way 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94665
/// REF: https://developer.work.weixin.qq.com/document/path/94692
///
///
///
///
///
public static async Task ExecuteCgibinKfAddContactWayAsync(this WechatWorkClient client, Models.CgibinKfAddContactWayRequest 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", "kf", "add_contact_way")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Servicer
///
/// 异步调用 [POST] /cgi-bin/kf/servicer/add 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94646
/// REF: https://developer.work.weixin.qq.com/document/path/94695
///
///
///
///
///
public static async Task ExecuteCgibinKfServicerAddAsync(this WechatWorkClient client, Models.CgibinKfServicerAddRequest 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", "kf", "servicer", "add")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/servicer/del 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94647
/// REF: https://developer.work.weixin.qq.com/document/path/94696
///
///
///
///
///
public static async Task ExecuteCgibinKfServicerDeleteAsync(this WechatWorkClient client, Models.CgibinKfServicerDeleteRequest 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", "kf", "servicer", "del")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [GET] /cgi-bin/kf/servicer/list 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94645
/// REF: https://developer.work.weixin.qq.com/document/path/94697
///
///
///
///
///
public static async Task ExecuteCgibinKfServicerListAsync(this WechatWorkClient client, Models.CgibinKfServicerListRequest 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.Get, "cgi-bin", "kf", "servicer", "list")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("open_kfid", request.OpenKfId);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region ServiceState
///
/// 异步调用 [POST] /cgi-bin/kf/service_state/get 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94669
/// REF: https://developer.work.weixin.qq.com/document/path/94698
///
///
///
///
///
public static async Task ExecuteCgibinKfServiceStateGetAsync(this WechatWorkClient client, Models.CgibinKfServiceStateGetRequest 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", "kf", "service_state", "get")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/service_state/trans 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94669
/// REF: https://developer.work.weixin.qq.com/document/path/94698
///
///
///
///
///
public static async Task ExecuteCgibinKfServiceStateTransferAsync(this WechatWorkClient client, Models.CgibinKfServiceStateTransferRequest 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", "kf", "service_state", "trans")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Customer
///
/// 异步调用 [GET] /cgi-bin/kf/customer/get_upgrade_service_config 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94674
/// REF: https://developer.work.weixin.qq.com/document/path/94702
///
///
///
///
///
public static async Task ExecuteCgibinKfCustomerGetUpgradeServiceConfigAsync(this WechatWorkClient client, Models.CgibinKfCustomerGetUpgradeServiceConfigRequest 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.Get, "cgi-bin", "kf", "customer", "get_upgrade_service_config")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/customer/upgrade_service 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94674
/// REF: https://developer.work.weixin.qq.com/document/path/94702
///
///
///
///
///
public static async Task ExecuteCgibinKfCustomerUpgradeServiceAsync(this WechatWorkClient client, Models.CgibinKfCustomerUpgradeServiceRequest 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", "kf", "customer", "upgrade_service")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/customer/cancel_upgrade_service 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94674
/// REF: https://developer.work.weixin.qq.com/document/path/94702
///
///
///
///
///
public static async Task ExecuteCgibinKfCustomerCancelUpgradeServiceAsync(this WechatWorkClient client, Models.CgibinKfCustomerCancelUpgradeServiceRequest 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", "kf", "customer", "cancel_upgrade_service")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/customer/batchget 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95159
/// REF: https://developer.work.weixin.qq.com/document/path/95149
///
///
///
///
///
public static async Task ExecuteCgibinKfCustomerBatchGetAsync(this WechatWorkClient client, Models.CgibinKfCustomerBatchGetRequest 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", "kf", "customer", "batchget")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region KnowledgeGroup
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/add_group 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95971
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeAddGroupAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeAddGroupRequest 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", "kf", "knowledge", "add_group")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/mod_group 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95971
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeModifyGroupAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeModifyGroupRequest 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", "kf", "knowledge", "mod_group")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/del_group 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95971
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeDeleteGroupAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeDeleteGroupRequest 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", "kf", "knowledge", "del_group")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/list_group 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95971
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeListGroupAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeListGroupRequest 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", "kf", "knowledge", "list_group")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region KnowledgeIntent
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/add_intent 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95972
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeAddIntentAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeAddIntentRequest 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", "kf", "knowledge", "add_intent")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/mod_intent 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95972
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeModifyIntentAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeModifyIntentRequest 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", "kf", "knowledge", "mod_intent")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/del_intent 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95972
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeDeleteIntentAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeDeleteIntentRequest 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", "kf", "knowledge", "del_intent")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/knowledge/list_intent 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95972
///
///
///
///
///
public static async Task ExecuteCgibinKfKnowledgeListIntentAsync(this WechatWorkClient client, Models.CgibinKfKnowledgeListIntentRequest 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", "kf", "knowledge", "list_intent")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
///
/// 异步调用 [POST] /cgi-bin/kf/send_msg 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94677
/// REF: https://developer.work.weixin.qq.com/document/path/94700
///
///
///
///
///
public static async Task ExecuteCgibinKfSendMessageAsync(this WechatWorkClient client, Models.CgibinKfSendMessageRequest 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", "kf", "send_msg")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/send_msg_on_event 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95122
/// REF: https://developer.work.weixin.qq.com/document/path/94910
///
///
///
///
///
public static async Task ExecuteCgibinKfSendMessageOnEventAsync(this WechatWorkClient client, Models.CgibinKfSendMessageOnEventRequest 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", "kf", "send_msg_on_event")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/sync_msg 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/94670
/// REF: https://developer.work.weixin.qq.com/document/path/94699
///
///
///
///
///
public static async Task ExecuteCgibinKfSyncMessageAsync(this WechatWorkClient client, Models.CgibinKfSyncMessageRequest 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", "kf", "sync_msg")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [GET] /cgi-bin/kf/get_corp_qualification 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95153
///
///
///
///
///
public static async Task ExecuteCgibinKfGetCorpQualificationAsync(this WechatWorkClient client, Models.CgibinKfGetCorpQualificationRequest 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.Get, "cgi-bin", "kf", "get_corp_qualification")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/get_corp_statistic 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95489
///
///
///
///
///
public static async Task ExecuteCgibinKfGetCorpStatisticAsync(this WechatWorkClient client, Models.CgibinKfGetCorpStatisticRequest 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", "kf", "get_corp_statistic")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/get_servicer_statistic 接口。
/// REF: https://developer.work.weixin.qq.com/document/path/95490
///
///
///
///
///
public static async Task ExecuteCgibinKfGetServicerStatisticAsync(this WechatWorkClient client, Models.CgibinKfGetServicerStatisticRequest 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", "kf", "get_servicer_statistic")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}