diff --git a/docs/WechatWork/Basic_ModelDefinition.md b/docs/WechatWork/Basic_ModelDefinition.md index 866a6034..d31d142e 100644 --- a/docs/WechatWork/Basic_ModelDefinition.md +++ b/docs/WechatWork/Basic_ModelDefinition.md @@ -59,6 +59,7 @@ | √ | 办公:打卡 | 企业 & 第三方 & 服务商 | | | √ | 办公:审批 | 企业 & 第三方 & 服务商 | | | √ | 办公:汇报 | 企业 | | +| √ | 办公:人事助手 | 企业 | | | √ | 办公:会议室 | 企业 | | | √ | 办公:紧急通知 | 企业 | | | √ | 智慧硬件 | 第三方 | | diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinHrExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinHrExtensions.cs new file mode 100644 index 00000000..08d9ad35 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinHrExtensions.cs @@ -0,0 +1,72 @@ +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 WechatWorkClientExecuteCgibinHrExtensions + { + /// + /// 异步调用 [GET] /cgi-bin/hr/get_fields 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/99131 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinHrGetFieldsAsync(this WechatWorkClient client, Models.CgibinHrGetFieldsRequest 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", "hr", "get_fields") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/hr/get_staff_info 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/99132 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinHrGetStaffInfoAsync(this WechatWorkClient client, Models.CgibinHrGetStaffInfoRequest 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, "cgi-bin", "hr", "get_staff_info") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/hr/update_staff_info 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/99133 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinHrUpdateStaffInfoAsync(this WechatWorkClient client, Models.CgibinHrUpdateStaffInfoRequest 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, "cgi-bin", "hr", "update_staff_info") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsRequest.cs new file mode 100644 index 00000000..5acea392 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/hr/get_fields 接口的请求。 + /// + public class CgibinHrGetFieldsRequest : WechatWorkRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsResponse.cs new file mode 100644 index 00000000..7e8fcd72 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetFieldsResponse.cs @@ -0,0 +1,76 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/hr/get_fields 接口的响应。 + /// + public class CgibinHrGetFieldsResponse : WechatWorkResponse + { + public static class Types + { + public class FieldGroup + { + public static class Types + { + public class Field + { + /// + /// 获取或设置字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("fieldid")] + [System.Text.Json.Serialization.JsonPropertyName("fieldid")] + public int FieldId { get; set; } + + /// + /// 获取或设置字段名称。 + /// + [Newtonsoft.Json.JsonProperty("field_name")] + [System.Text.Json.Serialization.JsonPropertyName("field_name")] + public string FieldName { get; set; } = default!; + + /// + /// 获取或设置字段类型。 + /// + [Newtonsoft.Json.JsonProperty("field_type")] + [System.Text.Json.Serialization.JsonPropertyName("field_type")] + public int FieldType { get; set; } + + /// + /// 获取或设置是否必须。 + /// + [Newtonsoft.Json.JsonProperty("is_must")] + [System.Text.Json.Serialization.JsonPropertyName("is_must")] + public bool IsMust { get; set; } + } + } + + /// + /// 获取或设置字段组 ID。 + /// + [Newtonsoft.Json.JsonProperty("group_id")] + [System.Text.Json.Serialization.JsonPropertyName("group_id")] + public int GroupId { get; set; } + + /// + /// 获取或设置字段组名称。 + /// + [Newtonsoft.Json.JsonProperty("group_name")] + [System.Text.Json.Serialization.JsonPropertyName("group_name")] + public string GroupName { get; set; } = default!; + + /// + /// 获取或设置字段列表。 + /// + [Newtonsoft.Json.JsonProperty("field_list")] + [System.Text.Json.Serialization.JsonPropertyName("field_list")] + public Types.Field[] FieldList { get; set; } = default!; + } + } + + /// + /// 获取或设置字段组列表。 + /// + [Newtonsoft.Json.JsonProperty("group_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_list")] + public Types.FieldGroup[] FieldGroupList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoRequest.cs new file mode 100644 index 00000000..9d808af6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoRequest.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/hr/get_staff_info 接口的请求。 + /// + public class CgibinHrGetStaffInfoRequest : WechatWorkRequest + { + public static class Types + { + public class Field + { + /// + /// 获取或设置字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("fieldid")] + [System.Text.Json.Serialization.JsonPropertyName("fieldid")] + public int FieldId { get; set; } + + /// + /// 获取或设置需要获取的字段下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int? SubIndex { get; set; } + } + } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置是否获取全部字段信息。 + /// + [Newtonsoft.Json.JsonProperty("get_all")] + [System.Text.Json.Serialization.JsonPropertyName("get_all")] + public bool? RequireAll { get; set; } + + /// + /// 获取或设置需要获取的字段列表。 + /// + [Newtonsoft.Json.JsonProperty("fieldids")] + [System.Text.Json.Serialization.JsonPropertyName("fieldids")] + public IList? FieldList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoResponse.cs new file mode 100644 index 00000000..67f6884e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrGetStaffInfoResponse.cs @@ -0,0 +1,128 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/hr/get_staff_info 接口的响应。 + /// + public class CgibinHrGetStaffInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Field + { + public static class Types + { + public class MobileValue + { + /// + /// 获取或设置国际区号。 + /// + [Newtonsoft.Json.JsonProperty("value_country_code")] + [System.Text.Json.Serialization.JsonPropertyName("value_country_code")] + public string CountryCode { get; set; } = default!; + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("value_mobile")] + [System.Text.Json.Serialization.JsonPropertyName("value_mobile")] + public string MobileNumber { get; set; } = default!; + } + + public class FileValue + { + /// + /// 获取或设置文件 MediaId 列表。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string[] MediaIdList { get; set; } = default!; + } + } + + /// + /// 获取或设置字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("fieldid")] + [System.Text.Json.Serialization.JsonPropertyName("fieldid")] + public int FieldId { get; set; } + + /// + /// 获取或设置字段下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int? SubIndex { get; set; } + + /// + /// 获取或设置查询结果。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public int Result { get; set; } + + /// + /// 获取或设置字段值的类型。 + /// + [Newtonsoft.Json.JsonProperty("value_type")] + [System.Text.Json.Serialization.JsonPropertyName("value_type")] + public int ValueType { get; set; } + + /// + /// 获取或设置字符串类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_string")] + [System.Text.Json.Serialization.JsonPropertyName("value_string")] + public string? StringValue { get; set; } + + /// + /// 获取或设置 32 位非负整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_uint32")] + [System.Text.Json.Serialization.JsonPropertyName("value_uint32")] + public uint? UInt32Value { get; set; } + + /// + /// 获取或设置 64 位非负整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_uint64")] + [System.Text.Json.Serialization.JsonPropertyName("value_uint64")] + public ulong? UInt64Value { get; set; } + + /// + /// 获取或设置 32 位整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_int32")] + [System.Text.Json.Serialization.JsonPropertyName("value_int32")] + public int? Int32Value { get; set; } + + /// + /// 获取或设置 64 位整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_int64")] + [System.Text.Json.Serialization.JsonPropertyName("value_int64")] + public long? Int64Value { get; set; } + + /// + /// 获取或设置手机号码类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_mobile")] + [System.Text.Json.Serialization.JsonPropertyName("value_mobile")] + public Types.MobileValue? MobileValue { get; set; } + + /// + /// 获取或设置文件类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_file")] + [System.Text.Json.Serialization.JsonPropertyName("value_file")] + public Types.FileValue? FileValue { get; set; } + } + } + + /// + /// 获取或设置字段列表。 + /// + [Newtonsoft.Json.JsonProperty("fieldinfo")] + [System.Text.Json.Serialization.JsonPropertyName("fieldinfo")] + public Types.Field[] FieldList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoRequest.cs new file mode 100644 index 00000000..a854eb3b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoRequest.cs @@ -0,0 +1,178 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/hr/update_staff_info 接口的请求。 + /// + public class CgibinHrUpdateStaffInfoRequest : WechatWorkRequest + { + public static class Types + { + public class UpdatedItem + { + public static class Types + { + public class MobileValue + { + /// + /// 获取或设置国际区号。 + /// + [Newtonsoft.Json.JsonProperty("value_country_code")] + [System.Text.Json.Serialization.JsonPropertyName("value_country_code")] + public string CountryCode { get; set; } = string.Empty; + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("value_mobile")] + [System.Text.Json.Serialization.JsonPropertyName("value_mobile")] + public string MobileNumber { get; set; } = string.Empty; + } + + public class FileValue + { + /// + /// 获取或设置文件 MediaId 列表。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public IList MediaIdList { get; set; } = new List(); + } + } + + /// + /// 获取或设置字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("fieldid")] + [System.Text.Json.Serialization.JsonPropertyName("fieldid")] + public int FieldId { get; set; } + + /// + /// 获取或设置需要获取的字段下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int? SubIndex { get; set; } + + /// + /// 获取或设置字符串类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_string")] + [System.Text.Json.Serialization.JsonPropertyName("value_string")] + public string? StringValue { get; set; } + + /// + /// 获取或设置 32 位非负整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_uint32")] + [System.Text.Json.Serialization.JsonPropertyName("value_uint32")] + public uint? UInt32Value { get; set; } + + /// + /// 获取或设置 64 位非负整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_uint64")] + [System.Text.Json.Serialization.JsonPropertyName("value_uint64")] + public ulong? UInt64Value { get; set; } + + /// + /// 获取或设置 32 位整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_int32")] + [System.Text.Json.Serialization.JsonPropertyName("value_int32")] + public int? Int32Value { get; set; } + + /// + /// 获取或设置 64 位整数类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_int64")] + [System.Text.Json.Serialization.JsonPropertyName("value_int64")] + public long? Int64Value { get; set; } + + /// + /// 获取或设置手机号码类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_mobile")] + [System.Text.Json.Serialization.JsonPropertyName("value_mobile")] + public Types.MobileValue? MobileValue { get; set; } + + /// + /// 获取或设置文件类型的字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_file")] + [System.Text.Json.Serialization.JsonPropertyName("value_file")] + public Types.FileValue? FileValue { get; set; } + } + + public class InsertedItem + { + public static class Types + { + public class Field : UpdatedItem + { + } + } + + /// + /// 获取或设置字段组类型。 + /// + [Newtonsoft.Json.JsonProperty("group_type")] + [System.Text.Json.Serialization.JsonPropertyName("group_type")] + public int GroupType { get; set; } + + /// + /// 获取或设置字段列表。 + /// + [Newtonsoft.Json.JsonProperty("item")] + [System.Text.Json.Serialization.JsonPropertyName("item")] + public IList FieldList { get; set; } = new List(); + } + + public class RemovedItem + { + /// + /// 获取或设置字段组类型。 + /// + [Newtonsoft.Json.JsonProperty("group_type")] + [System.Text.Json.Serialization.JsonPropertyName("group_type")] + public int GroupType { get; set; } + + /// + /// 获取或设置字段组下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int SubIndex { get; set; } + } + } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置需要更新的项列表。 + /// + [Newtonsoft.Json.JsonProperty("update_items")] + [System.Text.Json.Serialization.JsonPropertyName("update_items")] + public IList? UpdatedItemList { get; set; } + + /// + /// 获取或设置需要新增的项列表。 + /// + [Newtonsoft.Json.JsonProperty("insert_items")] + [System.Text.Json.Serialization.JsonPropertyName("insert_items")] + public IList? InsertedItemList { get; set; } + + /// + /// 获取或设置需要删除的项列表。 + /// + [Newtonsoft.Json.JsonProperty("remove_items")] + [System.Text.Json.Serialization.JsonPropertyName("remove_items")] + public IList? RemovedItemList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoResponse.cs new file mode 100644 index 00000000..28ff0de6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinHr/CgibinHrUpdateStaffInfoResponse.cs @@ -0,0 +1,104 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/hr/update_staff_info 接口的响应。 + /// + public class CgibinHrUpdateStaffInfoResponse : WechatWorkResponse + { + public static class Types + { + public class UpdatedResult + { + /// + /// 获取或设置字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("fieldid")] + [System.Text.Json.Serialization.JsonPropertyName("fieldid")] + public int FieldId { get; set; } + + /// + /// 获取或设置需要获取的字段下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int? SubIndex { get; set; } + + /// + /// 获取或设置更新结果。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public int Result { get; set; } + } + + public class InsertedResult + { + /// + /// 获取或设置字段组类型。 + /// + [Newtonsoft.Json.JsonProperty("group_type")] + [System.Text.Json.Serialization.JsonPropertyName("group_type")] + public int GroupType { get; set; } + + /// + /// 获取或设置字段下标。 + /// + [Newtonsoft.Json.JsonProperty("idx")] + [System.Text.Json.Serialization.JsonPropertyName("idx")] + public int? Index { get; set; } + + /// + /// 获取或设置新增结果。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public int Result { get; set; } + } + + public class RemovedResult + { + /// + /// 获取或设置字段组类型。 + /// + [Newtonsoft.Json.JsonProperty("group_type")] + [System.Text.Json.Serialization.JsonPropertyName("group_type")] + public int GroupType { get; set; } + + /// + /// 获取或设置字段组下标。 + /// + [Newtonsoft.Json.JsonProperty("sub_idx")] + [System.Text.Json.Serialization.JsonPropertyName("sub_idx")] + public int SubIndex { get; set; } + + /// + /// 获取或设置删除结果。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public int Result { get; set; } + } + } + + /// + /// 获取或设置更新结果列表。 + /// + [Newtonsoft.Json.JsonProperty("update_results")] + [System.Text.Json.Serialization.JsonPropertyName("update_results")] + public Types.UpdatedResult[]? UpdatedResultList { get; set; } + + /// + /// 获取或设置新增结果列表。 + /// + [Newtonsoft.Json.JsonProperty("insert_result")] + [System.Text.Json.Serialization.JsonPropertyName("insert_result")] + public Types.InsertedResult[]? InsertedResultList { get; set; } + + /// + /// 获取或设置删除结果列表。 + /// + [Newtonsoft.Json.JsonProperty("remove_results")] + [System.Text.Json.Serialization.JsonPropertyName("remove_results")] + public Types.RemovedResult[]? RemovedResultList { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetFieldsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetFieldsResponse.json new file mode 100644 index 00000000..f7456341 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetFieldsResponse.json @@ -0,0 +1,36 @@ +{ + "errcode": 0, + "errmsg": "ok", + "group_list": [ + { + "group_id": 1001, + "group_name": "个人信息", + "field_list": [ + { + "fieldid": 11001, + "field_name": "姓名", + "field_type": 1, + "is_must": true + }, + { + "fieldid": 11002, + "field_name": "别名", + "field_type": 1, + "is_must": false + } + ] + }, + { + "group_id": 1002, + "group_name": "在职信息", + "field_list": [ + { + "fieldid": 12024, + "field_name": "工号", + "field_type": 1, + "is_must": true + } + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoRequest.json new file mode 100644 index 00000000..0da596ea --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoRequest.json @@ -0,0 +1,14 @@ +{ + "userid": "xxxxx", + "get_all": false, + "fieldids": [ + { + "fieldid": 11004, + "sub_idx": 0 + }, + { + "fieldid": 14001, + "sub_idx": 1 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoResponse.json new file mode 100644 index 00000000..94240b3d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrGetStaffInfoResponse.json @@ -0,0 +1,32 @@ +{ + "errcode": 0, + "errmsg": "ok", + "fieldinfo": [ + { + "fieldid": 11004, + "sub_idx": 0, + "result": 1, + "value_type": 3, + "value_uint32": 1 + }, + { + "fieldid": 11003, + "sub_idx": 0, + "result": 1, + "value_type": 5, + "value_mobile": { + "value_country_code": "xx", + "value_mobile": "xxxxxxxxxx" + } + }, + { + "fieldid": 19001, + "sub_idx": 0, + "result": 1, + "value_type": 6, + "value_file": { + "media_id": [ "xxxxxx", "xxxxxx" ] + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoRequest.json new file mode 100644 index 00000000..15029d0b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoRequest.json @@ -0,0 +1,58 @@ +{ + "userid": "xxxxx", + "update_items": [ + { + "fieldid": 11020, + "sub_idx": 0, + "value_string": "xxxxx" + }, + { + "fieldid": 17003, + "sub_idx": 1, + "value_mobile": { + "value_country_code": "xxx", + "value_mobile": "xxxxxxxx" + } + } + ], + "remove_items": [ + { + "group_type": 1, + "sub_idx": 1 + }, + { + "group_type": 1, + "sub_idx": 2 + } + ], + "insert_items": [ + { + "group_type": 4, + "item": [ + { + "fieldid": 17001, + "sub_idx": 0, + "value_string": "孙悟空" + }, + { + "fieldid": 17002, + "sub_idx": 0, + "value_uint32": 1 + }, + { + "fieldid": 17003, + "sub_idx": 0, + "value_mobile": { + "value_country_code": "xxx", + "value_mobile": "xxxxxxxx" + } + }, + { + "fieldid": 17004, + "sub_idx": 0, + "value_string": "娜美克星" + } + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoResponse.json new file mode 100644 index 00000000..e20c7ba3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinHr/CgibinHrUpdateStaffInfoResponse.json @@ -0,0 +1,25 @@ +{ + "errcode": 0, + "errmsg": "ok", + "update_results": [ + { + "fieldid": 11001, + "sub_idx": 0, + "result": 1 + } + ], + "remove_results": [ + { + "group_type": 1, + "sub_idx": 20, + "result": 3 + } + ], + "insert_result": [ + { + "group_type": 1, + "idx": 1, + "result": 4 + } + ] +}