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 } }