using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinWebDriveExtensions
{
#region Space
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_create 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceCreateAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceCreateRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_create")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_rename 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceRenameAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceRenameRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_rename")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_dismiss 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceDismissAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceDismissRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_dismiss")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_info 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceInfoAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceInfoRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_info")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_setting 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceSettingAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceSettingRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_setting")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_share 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceShareAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceShareRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_share")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region SpaceACL
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_acl_add 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceACLAddAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceACLAddRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_acl_add")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/space_acl_del 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveSpaceACLDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceACLDeleteRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "space_acl_del")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region File
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_list 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileListAsync(this WechatWorkClient client, Models.CgibinWebDriveFileListRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_list")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_upload 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileUploadAsync(this WechatWorkClient client, Models.CgibinWebDriveFileUploadRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_upload")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_download 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileDownloadAsync(this WechatWorkClient client, Models.CgibinWebDriveFileDownloadRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_download")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_create 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileCreateAsync(this WechatWorkClient client, Models.CgibinWebDriveFileCreateRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_create")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_rename 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileRenameAsync(this WechatWorkClient client, Models.CgibinWebDriveFileRenameRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_rename")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_move 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileMoveAsync(this WechatWorkClient client, Models.CgibinWebDriveFileMoveRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_move")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_delete 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveFileDeleteRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_delete")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_info 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileInfoAsync(this WechatWorkClient client, Models.CgibinWebDriveFileInfoRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_info")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_setting 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileSettingAsync(this WechatWorkClient client, Models.CgibinWebDriveFileSettingRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_setting")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_share 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileShareAsync(this WechatWorkClient client, Models.CgibinWebDriveFileShareRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_share")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region FileACL
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_acl_add 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileACLAddAsync(this WechatWorkClient client, Models.CgibinWebDriveFileACLAddRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_acl_add")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
///
/// 异步调用 [POST] /cgi-bin/wedrive/file_acl_del 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658
///
///
///
///
///
public static async Task ExecuteCgibinWebDriveFileACLDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveFileACLDeleteRequest 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(HttpMethod.Post, "cgi-bin", "wedrive", "file_acl_del")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}