33 lines
1014 B
C#
33 lines
1014 B
C#
using System.Text.Json;
|
|
using Backend.Common;
|
|
using Backend.Domain;
|
|
using Backend.Repositories;
|
|
|
|
namespace Backend.Services;
|
|
|
|
public sealed class AdminAuditService(IAdminAuditRepository adminAuditRepository) : IAdminAuditService
|
|
{
|
|
public void AddEntry(
|
|
string adminTwitchUserId,
|
|
string actionType,
|
|
string entityType,
|
|
string entityId,
|
|
string summary,
|
|
object? metadata = null,
|
|
RequestMetadata? requestMetadata = null)
|
|
{
|
|
adminAuditRepository.Add(new AdminAuditEntry
|
|
{
|
|
AdminTwitchUserId = adminTwitchUserId,
|
|
ActionType = actionType,
|
|
EntityType = entityType,
|
|
EntityId = entityId,
|
|
Summary = summary,
|
|
MetadataJson = JsonSerializer.Serialize(metadata ?? new { }),
|
|
CreatedFromIp = requestMetadata?.ClientIp ?? string.Empty,
|
|
UserAgent = requestMetadata?.UserAgent ?? string.Empty,
|
|
CreatedAt = DateTimeOffset.UtcNow,
|
|
});
|
|
}
|
|
}
|