using System.Text.Json; using Yh.Platform.Abstractions; namespace Yh.Platform.OpenApi; /// 的 HTTP 实现(镜像 Java DefaultOpenApiGroupClient)。 public class OpenApiGroupClient : OpenApiClientBase, IOpenApiGroupClient { public OpenApiGroupClient(HttpClient httpClient, OpenApiOptions options) : base(httpClient, options) { } public Task GetGroupTreeAsync(CancellationToken ct = default) => ResolveAsync(HttpMethod.Get, Prefix + "/group/tree", ct: ct); public Task GetGroupByIdAsync(int? groupId, bool? withSub = null, CancellationToken ct = default) => ResolveAsync(HttpMethod.Get, Prefix + "/group/byId", Params(("groupId", groupId), ("withSub", withSub)), ct: ct); public Task> GetGroupListAsync(string ids, bool? withSub = null, CancellationToken ct = default) => ResolveListAsync(HttpMethod.Get, Prefix + "/group/list", Params(("ids", ids), ("withSub", withSub)), ct: ct); public Task AddGroupAsync(SysGroupRequest request, CancellationToken ct = default) => ResolveAsync(HttpMethod.Post, Prefix + "/group/add", body: request, ct: ct); public Task EditGroupAsync(int id, SysGroupRequest request, CancellationToken ct = default) => ResolveAsync(HttpMethod.Post, Prefix + "/group/edit/" + id, body: request, ct: ct); public Task DeleteGroupAsync(int id, int schoolId, CancellationToken ct = default) => ResolveVoidAsync(HttpMethod.Post, Prefix + "/group/delete/" + id + "/" + schoolId, ct: ct); public Task> BatchAddGroupsAsync(SysGroupBatchRequest request, CancellationToken ct = default) => ResolveListAsync(HttpMethod.Post, Prefix + "/group/batchAdd", body: request, ct: ct); public Task MoveGroupAsync(int schoolId, SysGroupMoveRequest request, CancellationToken ct = default) => ResolveVoidAsync(HttpMethod.Post, Prefix + "/group/move/" + schoolId, body: request, ct: ct); } /// 的 HTTP 实现(镜像 Java DefaultOpenApiAppClient)。 public class OpenApiAppClient : OpenApiClientBase, IOpenApiAppClient { public OpenApiAppClient(HttpClient httpClient, OpenApiOptions options) : base(httpClient, options) { } public Task GetAppByIdAsync(string appId, CancellationToken ct = default) => SendAsync(HttpMethod.Get, Prefix + "/app/" + Uri.EscapeDataString(appId), ct: ct); public Task> GetUserAppAsync(int userId, ClientEnum clientType, CancellationToken ct = default) => ResolveListAsync(HttpMethod.Get, Prefix + "/app/list", Params(("userId", userId), ("clientType", (int)clientType)), ct: ct); }