Files
itworx-knowledge-hub-Public/src/backend/ItWorx.KnowledgeHub.Api/Endpoints/ActivityEndpoints.cs
T

31 lines
1.1 KiB
C#

using ItWorx.KnowledgeHub.Api.Authorization;
using ItWorx.KnowledgeHub.Application.Audit;
using ItWorx.KnowledgeHub.Contracts.Activity;
using ItWorx.KnowledgeHub.Domain.Automation;
using ItWorx.KnowledgeHub.Domain.Identity;
using Microsoft.AspNetCore.Mvc;
namespace ItWorx.KnowledgeHub.Api.Endpoints;
public static class ActivityEndpoints
{
public static IEndpointRouteBuilder MapActivityEndpoints(this IEndpointRouteBuilder app)
{
app.MapGet("/api/v1/activity", ListAsync)
.WithTags("Activity")
.RequireContentAccess(WorkspaceRole.Reader, Scopes.AuditRead);
return app;
}
private static async Task<IResult> ListAsync(
IAuditEventReader reader,
[FromQuery] int? limit,
CancellationToken cancellationToken)
{
var items = await reader.ListRecentAsync(limit ?? 100, cancellationToken);
return Results.Ok(new ActivityListResponse(items.Select(item => new ActivityItemResponse(
item.Id, item.ActorKind, item.ActorId, item.Source, item.Action, item.TargetType,
item.TargetId, item.Summary, item.OccurredAt)).ToArray()));
}
}