this took far too long if this is what it is
Some checks are pending
/ test-build-and-push (push) Waiting to run

This commit is contained in:
notfire 2025-03-30 21:39:00 -04:00
parent 234007efd1
commit 684c66b112
Signed by: notfire
GPG key ID: 3AFDACAAB4E56B16
2 changed files with 33 additions and 20 deletions

View file

@ -1,15 +1,18 @@
using System.Net;
using System.Net.Mime;
using Iceshrimp.Backend.Controllers.Mastodon.Attributes;
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
using Iceshrimp.Backend.Controllers.Pleroma.Schemas;
using Iceshrimp.Backend.Controllers.Shared.Attributes;
using Iceshrimp.Backend.Controllers.Web.Renderers;
using Iceshrimp.Backend.Core.Database;
using Iceshrimp.Backend.Core.Extensions;
using Iceshrimp.Backend.Core.Middleware;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.RateLimiting;
using Microsoft.EntityFrameworkCore;
using NoteRenderer = Iceshrimp.Backend.Controllers.Mastodon.Renderers.NoteRenderer;
namespace Iceshrimp.Backend.Controllers.Pleroma;
@ -19,13 +22,15 @@ namespace Iceshrimp.Backend.Controllers.Pleroma;
[Produces(MediaTypeNames.Application.Json)]
public class AdminController(
DatabaseContext db,
ReportRenderer reportRenderer
ReportRenderer reportRenderer,
NoteRenderer noteRenderer
) : ControllerBase
{
[HttpGet("/api/v1/pleroma/admin/reports")]
[ProducesResults(HttpStatusCode.OK)]
public async Task<ReportsResponse> GetReports(bool resolved = false)
{
var user = HttpContext.GetUserOrFail();
var reports = await db.Reports
.IncludeCommonProperties()
.Where(p => p.Resolved == resolved)
@ -36,6 +41,13 @@ public class AdminController(
var reportsList = new List<Reports>();
foreach (var r in rendered)
{
foreach (var n in r.Notes)
{
var note = await db.Notes
.IncludeCommonProperties()
.Where(p => p.Id == n.Id)
.RenderAllForMastodonAsync(noteRenderer, user);
reportsList.Add(new Reports()
{
Account = r.TargetUser,
@ -44,14 +56,15 @@ public class AdminController(
CreatedAt = r.CreatedAt,
State = r.Resolved ? "resolved" : "open",
Content = r.Comment,
Statuses = r.Notes,
Notes = r.Notes // ???
Statuses = note
});
}
}
var resps = new ReportsResponse()
{
Total = 1,
Total = reportsList.Count,
Reports = reportsList
};

View file

@ -1,3 +1,4 @@
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
using Iceshrimp.Backend.Core.Database.Tables;
using Iceshrimp.Frontend.Pages.Settings;
using Iceshrimp.Shared.Schemas.Web;
@ -20,6 +21,5 @@ public class Reports
[J("created_at")] public required DateTime CreatedAt { get; set; }
[J("state")] public required string State { get; set; }
[J("content")] public required string Content { get; set; }
[J("statuses")] public required NoteResponse[] Statuses { get; set; }
[J("notes")] public required NoteResponse[] Notes { get; set; }
[J("statuses")] public required IEnumerable<StatusEntity> Statuses { get; set; }
}