feat(work): 封装部分企业微信接口

This commit is contained in:
Fu Diwei
2021-06-03 10:38:41 +08:00
parent b25eadfaa6
commit d290155dec
98 changed files with 4269 additions and 165 deletions

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/create 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90195 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90331 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90196 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90332 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -57,6 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/update 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90197 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90333 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -78,6 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/delete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90198 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90334 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -100,6 +104,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/batchdelete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90199 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90335 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -121,6 +126,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/simplelist 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90200 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90336 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -146,6 +152,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90201 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90337 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -171,6 +178,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/convert_to_openid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90202 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90338 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -192,6 +200,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/convert_to_userid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90202 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90338 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -210,28 +219,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinUserConvertToUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/authsucc 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90203 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserAuthSuccessResponse> ExecuteCgibinUserAuthSuccessAsync(this WechatWorkClient client, Models.CgibinUserAuthSuccessRequest 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.Get, "cgi-bin", "user", "authsucc")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("userid", request.UserId);
return await client.SendRequestAsync<Models.CgibinUserAuthSuccessResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/getuserinfo 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91023 </para>
@@ -255,6 +242,50 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestAsync<Models.CgibinUserGetUserInfoResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/getuserid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91693 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserGetUserIdResponse> ExecuteCgibinUserGetUserIdAsync(this WechatWorkClient client, Models.CgibinUserGetUserIdRequest 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", "user", "getuserid")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinUserGetUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/authsucc 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90203 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90339 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserAuthSuccessResponse> ExecuteCgibinUserAuthSuccessAsync(this WechatWorkClient client, Models.CgibinUserAuthSuccessRequest 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.Get, "cgi-bin", "user", "authsucc")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("userid", request.UserId);
return await client.SendRequestAsync<Models.CgibinUserAuthSuccessResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/get_active_stat 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92714 </para>