31 lines
1.1 KiB
C#
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()));
|
|
}
|
|
}
|