From fea1c8061eddab89b1487491f5528f93a6038f0a Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 23 Jun 2022 11:25:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E6=96=B0=E5=A2=9E=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AE=B6=E6=A0=A1=E8=AE=BF=E9=97=AE=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WorkClientExecuteCgibinSchoolExtensions.cs | 21 ++++++++++++++ .../CgibinSchoolGetUserInfoRequest.cs | 15 ++++++++++ .../CgibinSchoolGetUserInfoResponse.cs | 29 +++++++++++++++++++ .../CgibinSchoolGetUserInfoResponse.json | 7 +++++ 4 files changed, 72 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSchool/CgibinSchoolGetUserInfoResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs index 456988ad..233e50dc 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs @@ -91,6 +91,27 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + /// + /// 异步调用 [GET] /cgi-bin/school/getuserinfo 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/95791 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinSchoolGetUserInfoAsync(this WechatWorkClient client, Models.CgibinSchoolGetUserInfoRequest 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.Get, "cgi-bin", "school", "getuserinfo") + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("code", request.Code); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #region User /// /// 异步调用 [GET] /cgi-bin/school/user/get 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoRequest.cs new file mode 100644 index 00000000..597e3a8f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/school/getuserinfo 接口的请求。 + /// + public class CgibinSchoolGetUserInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置成员授权码。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string Code { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoResponse.cs new file mode 100644 index 00000000..d19563e4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetUserInfoResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/school/getuserinfo 接口的响应。 + /// + public class CgibinSchoolGetUserInfoResponse : WechatWorkResponse + { + /// + /// 获取或设置手机设备号。 + /// + [Newtonsoft.Json.JsonProperty("DeviceId")] + [System.Text.Json.Serialization.JsonPropertyName("DeviceId")] + public string? DeviceId { get; set; } + + /// + /// 获取或设置家长账号。 + /// + [Newtonsoft.Json.JsonProperty("parent_userid")] + [System.Text.Json.Serialization.JsonPropertyName("parent_userid")] + public string? ParentUserId{ get; set; } + + /// + /// 获取或设置学生账号。 + /// + [Newtonsoft.Json.JsonProperty("student_userid")] + [System.Text.Json.Serialization.JsonPropertyName("student_userid")] + public string? StudentUserId{ get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSchool/CgibinSchoolGetUserInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSchool/CgibinSchoolGetUserInfoResponse.json new file mode 100644 index 00000000..a54220ce --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSchool/CgibinSchoolGetUserInfoResponse.json @@ -0,0 +1,7 @@ +{ + "errcode": 0, + "errmsg": "ok", + "DeviceId": "DEVICEID", + "parent_userid": "parent_userid", + "student_userid": "student_userid" +}