Files
yunhai.netcore.tool/BasePlatformDotnet/src/Yh.Platform.OpenApi/OpenApiGroupClient.cs
T
2026-09-02 09:38:45 +08:00

56 lines
2.8 KiB
C#

using System.Text.Json;
using Yh.Platform.Abstractions;
namespace Yh.Platform.OpenApi;
/// <summary><see cref="IOpenApiGroupClient"/> 的 HTTP 实现(镜像 Java <c>DefaultOpenApiGroupClient</c>)。</summary>
public class OpenApiGroupClient : OpenApiClientBase, IOpenApiGroupClient
{
public OpenApiGroupClient(HttpClient httpClient, OpenApiOptions options)
: base(httpClient, options)
{
}
public Task<BoaGroup?> GetGroupTreeAsync(CancellationToken ct = default)
=> ResolveAsync<BoaGroup>(HttpMethod.Get, Prefix + "/group/tree", ct: ct);
public Task<BoaGroup?> GetGroupByIdAsync(int? groupId, bool? withSub = null, CancellationToken ct = default)
=> ResolveAsync<BoaGroup>(HttpMethod.Get, Prefix + "/group/byId",
Params(("groupId", groupId), ("withSub", withSub)), ct: ct);
public Task<List<BoaGroup>> GetGroupListAsync(string ids, bool? withSub = null, CancellationToken ct = default)
=> ResolveListAsync<BoaGroup>(HttpMethod.Get, Prefix + "/group/list",
Params(("ids", ids), ("withSub", withSub)), ct: ct);
public Task<BoaGroup?> AddGroupAsync(SysGroupRequest request, CancellationToken ct = default)
=> ResolveAsync<BoaGroup>(HttpMethod.Post, Prefix + "/group/add", body: request, ct: ct);
public Task<BoaGroup?> EditGroupAsync(int id, SysGroupRequest request, CancellationToken ct = default)
=> ResolveAsync<BoaGroup>(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<List<BoaGroup>> BatchAddGroupsAsync(SysGroupBatchRequest request, CancellationToken ct = default)
=> ResolveListAsync<BoaGroup>(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);
}
/// <summary><see cref="IOpenApiAppClient"/> 的 HTTP 实现(镜像 Java <c>DefaultOpenApiAppClient</c>)。</summary>
public class OpenApiAppClient : OpenApiClientBase, IOpenApiAppClient
{
public OpenApiAppClient(HttpClient httpClient, OpenApiOptions options)
: base(httpClient, options)
{
}
public Task<JsonElement?> GetAppByIdAsync(string appId, CancellationToken ct = default)
=> SendAsync(HttpMethod.Get, Prefix + "/app/" + Uri.EscapeDataString(appId), ct: ct);
public Task<List<BoaAppType>> GetUserAppAsync(int userId, ClientEnum clientType, CancellationToken ct = default)
=> ResolveListAsync<BoaAppType>(HttpMethod.Get, Prefix + "/app/list",
Params(("userId", userId), ("clientType", (int)clientType)), ct: ct);
}