this took far too long if this is what it is
Some checks are pending
/ test-build-and-push (push) Waiting to run
Some checks are pending
/ test-build-and-push (push) Waiting to run
This commit is contained in:
parent
234007efd1
commit
684c66b112
2 changed files with 33 additions and 20 deletions
|
@ -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,22 +41,30 @@ public class AdminController(
|
|||
var reportsList = new List<Reports>();
|
||||
foreach (var r in rendered)
|
||||
{
|
||||
reportsList.Add(new Reports()
|
||||
foreach (var n in r.Notes)
|
||||
{
|
||||
Account = r.TargetUser,
|
||||
Actor = r.Reporter,
|
||||
Id = r.Id,
|
||||
CreatedAt = r.CreatedAt,
|
||||
State = r.Resolved ? "resolved" : "open",
|
||||
Content = r.Comment,
|
||||
Statuses = r.Notes,
|
||||
Notes = r.Notes // ???
|
||||
});
|
||||
var note = await db.Notes
|
||||
.IncludeCommonProperties()
|
||||
.Where(p => p.Id == n.Id)
|
||||
.RenderAllForMastodonAsync(noteRenderer, user);
|
||||
|
||||
reportsList.Add(new Reports()
|
||||
{
|
||||
Account = r.TargetUser,
|
||||
Actor = r.Reporter,
|
||||
Id = r.Id,
|
||||
CreatedAt = r.CreatedAt,
|
||||
State = r.Resolved ? "resolved" : "open",
|
||||
Content = r.Comment,
|
||||
Statuses = note
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var resps = new ReportsResponse()
|
||||
{
|
||||
Total = 1,
|
||||
Total = reportsList.Count,
|
||||
Reports = reportsList
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
@ -14,12 +15,11 @@ public class ReportsResponse
|
|||
|
||||
public class Reports
|
||||
{
|
||||
[J("account")] public required UserResponse Account { get; set; }
|
||||
[J("actor")] public required UserResponse Actor { get; set; }
|
||||
[J("id")] public required string Id { get; set; }
|
||||
[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("account")] public required UserResponse Account { get; set; }
|
||||
[J("actor")] public required UserResponse Actor { get; set; }
|
||||
[J("id")] public required string Id { get; set; }
|
||||
[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 IEnumerable<StatusEntity> Statuses { get; set; }
|
||||
}
|
Loading…
Add table
Reference in a new issue