V13-FE-011: finalize search list layout slice

This commit is contained in:
2026-08-09 02:57:26 +09:00
parent 9efd202e76
commit 6422cb2b13
984 changed files with 120811 additions and 1498 deletions
@@ -0,0 +1,11 @@
using FastEndpoints;
using Kbx.Shared.Runtime;
namespace Kbx.Modules.Common.Runtime.Health;
public sealed class Endpoint(KbxRuntimeNoticeRepository repository) : EndpointWithoutRequest<KbxRuntimeNotice?>
{
public override void Configure() { Get("/api/kbx/runtime/notice"); Permissions("common.runtime.read"); }
public override async Task HandleAsync(CancellationToken ct)
=> await Send.OkAsync(await repository.GetActiveAsync(RuntimeIdentity.TenantId(User), ct), ct);
}
@@ -0,0 +1,23 @@
using FastEndpoints;
using Kbx.Shared.Runtime;
namespace Kbx.Modules.Common.Runtime.Notifications;
public sealed class Request { public int Limit { get; init; } = 30; }
public sealed class Endpoint(KbxNotificationRepository repository) : Endpoint<Request, IReadOnlyList<KbxUserNotificationDto>>
{
public override void Configure() { Get("/api/kbx/runtime/notifications"); Permissions("common.runtime.read"); }
public override async Task HandleAsync(Request req, CancellationToken ct)
=> await Send.OkAsync(await repository.GetRecentAsync(RuntimeIdentity.TenantId(User), RuntimeIdentity.UserId(User), req.Limit, ct), ct);
}
public sealed class MarkReadRequest { public Guid Id { get; init; } }
public sealed class MarkReadEndpoint(KbxNotificationRepository repository) : Endpoint<MarkReadRequest>
{
public override void Configure() { Post("/api/kbx/runtime/notifications/{Id}/read"); Permissions("common.runtime.read"); }
public override async Task HandleAsync(MarkReadRequest req, CancellationToken ct)
{
await repository.MarkReadAsync(RuntimeIdentity.TenantId(User), RuntimeIdentity.UserId(User), req.Id, ct);
await Send.NoContentAsync(ct);
}
}
@@ -0,0 +1,12 @@
using FastEndpoints;
using Kbx.Shared.Runtime;
namespace Kbx.Modules.Common.Runtime.Operations;
public sealed class Request { public int Limit { get; init; } = 20; }
public sealed class Endpoint(KbxOperationRunRepository repository) : Endpoint<Request, IReadOnlyList<KbxOperationRunDto>>
{
public override void Configure() { Get("/api/kbx/runtime/operations"); Permissions("common.runtime.read"); }
public override async Task HandleAsync(Request req, CancellationToken ct)
=> await Send.OkAsync(await repository.GetRecentAsync(RuntimeIdentity.TenantId(User), RuntimeIdentity.UserId(User), req.Limit, ct), ct);
}