diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs index 4f94b01b..f13ee602 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs @@ -606,6 +606,169 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /tcb/createfunction 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/createFunction.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbCreateFunctionAsync(this WechatApiClient client, Models.TcbCreateFunctionRequest 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, "tcb", "createfunction") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/getcodesecret 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/getCodeSecret.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbGetCodeSecretAsync(this WechatApiClient client, Models.TcbGetCodeSecretRequest 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, "tcb", "getcodesecret") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/getuploadsignature 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/getUploadSignature.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbGetUploadSignatureAsync(this WechatApiClient client, Models.TcbGetUploadSignatureRequest 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, "tcb", "getuploadsignature") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/listfunctions 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/listFunctions.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbListFunctionsAsync(this WechatApiClient client, Models.TcbListFunctionsRequest 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, "tcb", "listfunctions") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/downloadfunction 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/downloadFunction.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbDownloadFunctionAsync(this WechatApiClient client, Models.TcbDownloadFunctionRequest 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, "tcb", "downloadfunction") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/uploadfuncconfig 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/uploadFuncConfig.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbUploadFunctionConfigAsync(this WechatApiClient client, Models.TcbUploadFunctionConfigRequest 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, "tcb", "uploadfuncconfig") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/getfuncconfig 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/getFuncConfig.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbGetFunctionConfigAsync(this WechatApiClient client, Models.TcbGetFunctionConfigRequest 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, "tcb", "getfuncconfig") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /tcb/invokecloudfunction 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/cloudbase/common/invokecloudfunction.html + /// + /// + /// + /// + /// + public static async Task ExecuteTcbInvokeCloudFunctionAsync(this WechatApiClient client, Models.TcbInvokeCloudFunctionRequest 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, "tcb", "invokecloudfunction") + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("env", request.EnvironmentId) + .SetQueryParam("name", request.FunctionName); + + using var httpContent = new StringContent(request.Data ?? string.Empty, Encoding.UTF8); + return await client.SendRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken); + } #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbInvokeCloudFunctionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbInvokeCloudFunctionRequest.cs index dd1fe0f6..bec092c8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbInvokeCloudFunctionRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbInvokeCloudFunctionRequest.cs @@ -8,33 +8,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models /// public class ComponentTcbInvokeCloudFunctionRequest : WechatApiRequest { - public static class Types - { - public class Trigger - { - /// - /// 获取或设置触发器名称。 - /// - [Newtonsoft.Json.JsonProperty("trigger_name")] - [System.Text.Json.Serialization.JsonPropertyName("trigger_name")] - public string TriggerName { get; set; } = string.Empty; - - /// - /// 获取或设置触发器触发周期。 - /// - [Newtonsoft.Json.JsonProperty("config")] - [System.Text.Json.Serialization.JsonPropertyName("config")] - public string Config { get; set; } = string.Empty; - - /// - /// 获取或设置触发器类型。 - /// - [Newtonsoft.Json.JsonProperty("type")] - [System.Text.Json.Serialization.JsonPropertyName("type")] - public string Type { get; set; } = string.Empty; - } - } - /// /// 获取或设置第三方平台 AccessToken。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbUploadSCFConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbUploadSCFConfigRequest.cs index 853e7f06..2cabd9f9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbUploadSCFConfigRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/ComponentTcb/SCF/ComponentTcbUploadSCFConfigRequest.cs @@ -91,7 +91,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models public int? FunctionMemorySize { get; set; } /// - /// 获取或设置超时时间(单位:秒))。 + /// 获取或设置超时时间(单位:秒)。 /// [Newtonsoft.Json.JsonProperty("timeout")] [System.Text.Json.Serialization.JsonPropertyName("timeout")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Product/Offline/ProductOfflineGetSameCityTemplateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Product/Offline/ProductOfflineGetSameCityTemplateResponse.cs index 1c0c28d6..7f341eea 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Product/Offline/ProductOfflineGetSameCityTemplateResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Product/Offline/ProductOfflineGetSameCityTemplateResponse.cs @@ -21,7 +21,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models public class ConditionFreeDetail { /// - /// 获取或设置最低金额(单位:分))。 + /// 获取或设置最低金额(单位:分)。 /// [Newtonsoft.Json.JsonProperty("min_free_price")] [System.Text.Json.Serialization.JsonPropertyName("min_free_price")] @@ -31,7 +31,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models public class TieredBillingDetail { /// - /// 获取或设置最低起送金额(单位:分))。 + /// 获取或设置最低起送金额(单位:分)。 /// [Newtonsoft.Json.JsonProperty("min_send_price")] [System.Text.Json.Serialization.JsonPropertyName("min_send_price")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionRequest.cs new file mode 100644 index 00000000..f9c9c6a3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/createfunction 接口的请求。 + /// + public class TcbCreateFunctionRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置云函数名。 + /// + [Newtonsoft.Json.JsonProperty("function_name")] + [System.Text.Json.Serialization.JsonPropertyName("function_name")] + public string FunctionName { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionResponse.cs new file mode 100644 index 00000000..eed8f807 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbCreateFunctionResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/createfunction 接口的响应。 + /// + public class TcbCreateFunctionResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionRequest.cs new file mode 100644 index 00000000..95d9463a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/downloadfunction 接口的请求。 + /// + public class TcbDownloadFunctionRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置云函数名。 + /// + [Newtonsoft.Json.JsonProperty("function_name")] + [System.Text.Json.Serialization.JsonPropertyName("function_name")] + public string FunctionName { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionResponse.cs new file mode 100644 index 00000000..5b0df45a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbDownloadFunctionResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/downloadfunction 接口的响应。 + /// + public class TcbDownloadFunctionResponse : WechatApiResponse + { + /// + /// 获取或设置下载地址。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string DownloadUrl { get; set; } = default!; + + /// + /// 获取或设置校验码。 + /// + [Newtonsoft.Json.JsonProperty("checksum")] + [System.Text.Json.Serialization.JsonPropertyName("checksum")] + public string Checksum { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretRequest.cs new file mode 100644 index 00000000..9a4e3ba3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getcodesecret 接口的请求。 + /// + public class TcbGetCodeSecretRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretResponse.cs new file mode 100644 index 00000000..ebb3815b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetCodeSecretResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getcodesecret 接口的响应。 + /// + public class TcbGetCodeSecretResponse : WechatApiResponse + { + /// + /// 获取或设置代码保护密钥。 + /// + [Newtonsoft.Json.JsonProperty("codesecret")] + [System.Text.Json.Serialization.JsonPropertyName("codesecret")] + public string CodeSecret { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigRequest.cs new file mode 100644 index 00000000..8e112b06 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getfuncconfig 接口的请求。 + /// + public class TcbGetFunctionConfigRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置函数名。 + /// + [Newtonsoft.Json.JsonProperty("function_name")] + [System.Text.Json.Serialization.JsonPropertyName("function_name")] + public string FunctionName { get; set; } = string.Empty; + + /// + /// 获取或设置配置类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigResponse.cs new file mode 100644 index 00000000..5607ef38 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetFunctionConfigResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getfuncconfig 接口的响应。 + /// + public class TcbGetFunctionConfigResponse : WechatApiResponse + { + /// + /// 获取或设置 JSON 格式的配置。 + /// + [Newtonsoft.Json.JsonProperty("config")] + [System.Text.Json.Serialization.JsonPropertyName("config")] + public string JsonConfig { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureRequest.cs new file mode 100644 index 00000000..e94c66ad --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getuploadsignature 接口的请求。 + /// + public class TcbGetUploadSignatureRequest : WechatApiRequest + { + /// + /// 获取或设置请求数据的签名。 + /// + [Newtonsoft.Json.JsonProperty("hashed_payload")] + [System.Text.Json.Serialization.JsonPropertyName("hashed_payload")] + public string HashedPayload { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureResponse.cs new file mode 100644 index 00000000..f317eb68 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbGetUploadSignatureResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/getuploadsignature 接口的响应。 + /// + public class TcbGetUploadSignatureResponse : WechatApiResponse + { + /// + /// 获取或设置带签名标头。 + /// + [Newtonsoft.Json.JsonProperty("headers")] + [System.Text.Json.Serialization.JsonPropertyName("headers")] + public string Headers { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionRequest.cs new file mode 100644 index 00000000..16869c9c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/invokecloudfunction 接口的请求。 + /// + public class TcbInvokeCloudFunctionRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置函数名。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string FunctionName { get; set; } = string.Empty; + + /// + /// 获取或设置函数传入参数。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? Data { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionResponse.cs new file mode 100644 index 00000000..3df2eef0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbInvokeCloudFunctionResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/invokecloudfunction 接口的响应。 + /// + public class TcbInvokeCloudFunctionResponse : WechatApiResponse + { + /// + /// 获取或设置函数返回结果。 + /// + [Newtonsoft.Json.JsonProperty("resp_data")] + [System.Text.Json.Serialization.JsonPropertyName("resp_data")] + public string? Data { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsRequest.cs new file mode 100644 index 00000000..6ca888d3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/listfunctions 接口的请求。 + /// + public class TcbListFunctionsRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置分页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int? Offset { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsResponse.cs new file mode 100644 index 00000000..2ebec61f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbListFunctionsResponse.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/listfunctions 接口的响应。 + /// + public class TcbListFunctionsResponse : WechatApiResponse + { + public static class Types + { + public class Function + { + /// + /// 获取或设置函数名。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string FunctionName { get; set; } = default!; + + /// + /// 获取或设置运行时。 + /// + [Newtonsoft.Json.JsonProperty("runtime")] + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public string Runtime { get; set; } = default!; + + /// + /// 获取或设置函数状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置修改时间。 + /// + [Newtonsoft.Json.JsonProperty("mod_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("mod_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))] + public DateTimeOffset UpdateTime { get; set; } + + /// + /// 获取或设置创建时间。 + /// + [Newtonsoft.Json.JsonProperty("add_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("add_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + } + } + + /// + /// 获取或设置云函数列表。 + /// + [Newtonsoft.Json.JsonProperty("functions")] + [System.Text.Json.Serialization.JsonPropertyName("functions")] + public Types.Function[] FunctionList { get; set; } = default!; + + /// + /// 获取或设置云函数总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigRequest.cs new file mode 100644 index 00000000..70376acc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/uploadfuncconfig 接口的请求。 + /// + public class TcbUploadFunctionConfigRequest : WechatApiRequest + { + /// + /// 获取或设置环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置函数名。 + /// + [Newtonsoft.Json.JsonProperty("function_name")] + [System.Text.Json.Serialization.JsonPropertyName("function_name")] + public string FunctionName { get; set; } = string.Empty; + + /// + /// 获取或设置配置类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置 JSON 格式的配置。 + /// + [Newtonsoft.Json.JsonProperty("config")] + [System.Text.Json.Serialization.JsonPropertyName("config")] + public string JsonConfig { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigResponse.cs new file mode 100644 index 00000000..d162a8fb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Tcb/ThirdPartyPlatforms/TcbUploadFunctionConfigResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /tcb/uploadfuncconfig 接口的响应。 + /// + public class TcbUploadFunctionConfigResponse : WechatApiResponse + { + } +}