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 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())); } }