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 WechatWorkClientExecuteCgibinExmailExtensions { #region App /// /// 异步调用 [POST] /cgi-bin/exmail/app/compose_send 接口。 /// /// REF:
///
///
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAppComposeSendAsync(this WechatWorkClient client, Models.CgibinExmailAppComposeSendRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "compose_send") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/app/get_mail_list 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAppGetMailListAsync(this WechatWorkClient client, Models.CgibinExmailAppGetMailListRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "get_mail_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/app/read_mail 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAppReadMailAsync(this WechatWorkClient client, Models.CgibinExmailAppReadMailRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "read_mail") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/app/update_email_alias 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAppUpdateEmailAliasAsync(this WechatWorkClient client, Models.CgibinExmailAppUpdateEmailAliasRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "update_email_alias") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/app/get_email_alias 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAppGetEmailAliasAsync(this WechatWorkClient client, Models.CgibinExmailAppGetEmailAliasRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "get_email_alias") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region Group /// /// 异步调用 [POST] /cgi-bin/exmail/group/create 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailGroupCreateAsync(this WechatWorkClient client, Models.CgibinExmailGroupCreateRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "group", "create") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/group/update 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailGroupUpdateAsync(this WechatWorkClient client, Models.CgibinExmailGroupUpdateRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "group", "update") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/group/delete 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailGroupDeleteAsync(this WechatWorkClient client, Models.CgibinExmailGroupDeleteRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "group", "delete") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /cgi-bin/exmail/group/search 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailGroupSearchAsync(this WechatWorkClient client, Models.CgibinExmailGroupSearchRequest 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 .CreateFlurlRequest(request, HttpMethod.Get, "cgi-bin", "exmail", "group", "search") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("groupid", request.GroupId) .SetQueryParam("fuzzy", request.IsFuzzy ? 1 : 0); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /cgi-bin/exmail/group/get 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailGroupGetAsync(this WechatWorkClient client, Models.CgibinExmailGroupGetRequest 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 .CreateFlurlRequest(request, HttpMethod.Get, "cgi-bin", "exmail", "group", "get") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("groupid", request.GroupId); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region PublicMail /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/create 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailCreateAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailCreateRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "create") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/update 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailUpdateAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailUpdateRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "update") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/delete 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailDeleteAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailDeleteRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "delete") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /cgi-bin/exmail/publicmail/search 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailSearchAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailSearchRequest 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 .CreateFlurlRequest(request, HttpMethod.Get, "cgi-bin", "exmail", "publicmail", "search") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("email", request.EmailOrName) .SetQueryParam("fuzzy", request.IsFuzzy ? 1 : 0); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/get 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailGetAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailGetRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/get_auth_code_list 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailGetAuthCodeListAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailGetAuthCodeListRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "get_auth_code_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/publicmail/delete_auth_code 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailPublicMailDeleteAuthCodeAsync(this WechatWorkClient client, Models.CgibinExmailPublicMailDeleteAuthCodeRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "publicmail", "delete_auth_code") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region Account /// /// 异步调用 [POST] /cgi-bin/exmail/account/act_email 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailAccountActiveEmailAsync(this WechatWorkClient client, Models.CgibinExmailAccountActiveEmailRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "account", "act_email") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region UserOption /// /// 异步调用 [POST] /cgi-bin/exmail/useroption/get 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailUserOptionGetAsync(this WechatWorkClient client, Models.CgibinExmailUserOptionGetRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "useroption", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /cgi-bin/exmail/useroption/update 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailUserOptionUpdateAsync(this WechatWorkClient client, Models.CgibinExmailUserOptionUpdateRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "useroption", "update") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region Mail /// /// 异步调用 [POST] /cgi-bin/exmail/mail/get_newcount 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCgibinExmailMailGetNewCountAsync(this WechatWorkClient client, Models.CgibinExmailMailGetNewCountRequest 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 .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "mail", "get_newcount") .SetQueryParam("access_token", request.AccessToken); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion } }