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://open.work.weixin.qq.com/api/doc/90000/90135/94662
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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);
}
///
/// 异步调用 [GET] /cgi-bin/kf/account/list 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94661
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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.Get, "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://open.work.weixin.qq.com/api/doc/90000/90135/94664
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94663
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94665
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94646
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94647
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94645
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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, cancellationToken: cancellationToken);
}
#endregion
#region ServiceState
///
/// 异步调用 [POST] /cgi-bin/kf/service_state/get 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94669
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94669
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94674
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/kf/customer/upgrade_service 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94674
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/94674
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/95159
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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);
}
///
/// 异步调用 [GET] /cgi-bin/kf/get_corp_qualification 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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);
}
#endregion
///
/// 异步调用 [POST] /cgi-bin/kf/send_msg 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94677
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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://open.work.weixin.qq.com/api/doc/90000/90135/95122
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/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);
}
}
}