feat(wxads): 新增 Credentials 类型,存储初始化客户端时的凭证副本

This commit is contained in:
Fu Diwei
2021-07-27 00:49:14 +08:00
parent 93780f6092
commit 2a7efe1039
10 changed files with 47 additions and 32 deletions

View File

@@ -70,7 +70,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
flurlReq.SetQueryParam("adcreative_id", request.AdCreativeId.Value);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -70,7 +70,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
flurlReq.SetQueryParam("adgroup_id", request.AdGroupId.Value);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -70,7 +70,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
flurlReq.SetQueryParam("ad_id", request.AdId.Value);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
.SetQueryParam("access_token", request.AccessToken);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -70,7 +70,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
flurlReq.SetQueryParam("campaign_id", request.CampaignId.Value);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -66,7 +66,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
.SetQueryParam("access_token", request.AccessToken);
if (request.DateRange != null)
flurlReq.SetQueryParam("date_range", client.FlurlJsonSerializer.Serialize(request.DateRange));
flurlReq.SetQueryParam("date_range", client.JsonSerializer.Serialize(request.DateRange));
if (!string.IsNullOrEmpty(request.TradeType))
flurlReq.SetQueryParam("trade_type", request.TradeType);

View File

@@ -75,7 +75,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
flurlReq.SetQueryParam("image_id", request.ImageId);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
if (request.PageSize.HasValue)
flurlReq.SetQueryParam("page_size", request.PageSize.Value);

View File

@@ -29,7 +29,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
.SetQueryParam("access_token", request.AccessToken);
if (request.DateRange != null)
flurlReq.SetQueryParam("date_range", client.FlurlJsonSerializer.Serialize(request.DateRange));
flurlReq.SetQueryParam("date_range", client.JsonSerializer.Serialize(request.DateRange));
if (!string.IsNullOrEmpty(request.ReportType))
flurlReq.SetQueryParam("report_type", request.ReportType);
@@ -65,7 +65,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
.SetQueryParam("level", request.Level);
if (request.Filters != null && request.Filters.Any())
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters));
return await client.SendRequestWithJsonAsync<Models.RealtimeCostGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SKIT.FlurlHttpClient.Wechat.Ads.Settings
{
public class Credentials
{
/// <summary>
/// 初始化客户端时 <see cref="WechatAdsClientOptions.AgencyId"/> 的副本。
/// </summary>
public string AgencyId { get; }
/// <summary>
/// 初始化客户端时 <see cref="WechatAdsClientOptions.AgencyAppId"/> 的副本。
/// </summary>
public string AgencyAppId { get; }
/// <summary>
/// 初始化客户端时 <see cref="WechatAdsClientOptions.AgencyApiKey"/> 的副本。
/// </summary>
public string AgencyApiKey { get; }
internal Credentials(WechatAdsClientOptions options)
{
if (options == null) throw new ArgumentNullException(nameof(options));
AgencyId = options.AgencyId;
AgencyAppId = options.AgencyAppId;
AgencyApiKey = options.AgencyApiKey;
}
}
}

View File

@@ -18,27 +18,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
public class WechatAdsClient : WechatClientBase
{
/// <summary>
/// 获取当前客户端使用的微信广告平台服务商 ID
/// 获取当前客户端使用的微信广告平台凭证
/// </summary>
public string WechatAgencyId { get; }
/// <summary>
/// 获取当前客户端使用的微信广告平台服务商 AppId。
/// </summary>
public string WechatAgencyAppId { get; }
/// <summary>
/// 获取当前客户端使用的微信广告平台服务商 ApiKey。
/// </summary>
internal string WechatAgencyApiKey { get; }
/// <summary>
/// 获取当前客户端使用的 JSON 序列化器。
/// </summary>
internal ISerializer FlurlJsonSerializer
{
get { return FlurlClient.Settings?.JsonSerializer ?? new FlurlNewtonsoftJsonSerializer(); }
}
public Settings.Credentials Credentials { get; }
/// <summary>
/// 用指定的配置项初始化 <see cref="WechatAdsClient"/> 类的新实例。
@@ -49,9 +31,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
{
if (options == null) throw new ArgumentNullException(nameof(options));
WechatAgencyId = options.AgencyId;
WechatAgencyAppId = options.AgencyAppId;
WechatAgencyApiKey = options.AgencyApiKey;
Credentials = new Settings.Credentials(options);
FlurlClient.BaseUrl = options.Endpoints ?? WechatAdsEndpoints.DEFAULT;
FlurlClient.WithTimeout(TimeSpan.FromMilliseconds(options.Timeout));