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;
|
||||||
using System.Net.Mime;
|
using System.Net.Mime;
|
||||||
using Iceshrimp.Backend.Controllers.Mastodon.Attributes;
|
using Iceshrimp.Backend.Controllers.Mastodon.Attributes;
|
||||||
|
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
|
||||||
using Iceshrimp.Backend.Controllers.Pleroma.Schemas;
|
using Iceshrimp.Backend.Controllers.Pleroma.Schemas;
|
||||||
using Iceshrimp.Backend.Controllers.Shared.Attributes;
|
using Iceshrimp.Backend.Controllers.Shared.Attributes;
|
||||||
using Iceshrimp.Backend.Controllers.Web.Renderers;
|
using Iceshrimp.Backend.Controllers.Web.Renderers;
|
||||||
using Iceshrimp.Backend.Core.Database;
|
using Iceshrimp.Backend.Core.Database;
|
||||||
using Iceshrimp.Backend.Core.Extensions;
|
using Iceshrimp.Backend.Core.Extensions;
|
||||||
|
using Iceshrimp.Backend.Core.Middleware;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.RateLimiting;
|
using Microsoft.AspNetCore.RateLimiting;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using NoteRenderer = Iceshrimp.Backend.Controllers.Mastodon.Renderers.NoteRenderer;
|
||||||
|
|
||||||
namespace Iceshrimp.Backend.Controllers.Pleroma;
|
namespace Iceshrimp.Backend.Controllers.Pleroma;
|
||||||
|
|
||||||
|
@ -19,13 +22,15 @@ namespace Iceshrimp.Backend.Controllers.Pleroma;
|
||||||
[Produces(MediaTypeNames.Application.Json)]
|
[Produces(MediaTypeNames.Application.Json)]
|
||||||
public class AdminController(
|
public class AdminController(
|
||||||
DatabaseContext db,
|
DatabaseContext db,
|
||||||
ReportRenderer reportRenderer
|
ReportRenderer reportRenderer,
|
||||||
|
NoteRenderer noteRenderer
|
||||||
) : ControllerBase
|
) : ControllerBase
|
||||||
{
|
{
|
||||||
[HttpGet("/api/v1/pleroma/admin/reports")]
|
[HttpGet("/api/v1/pleroma/admin/reports")]
|
||||||
[ProducesResults(HttpStatusCode.OK)]
|
[ProducesResults(HttpStatusCode.OK)]
|
||||||
public async Task<ReportsResponse> GetReports(bool resolved = false)
|
public async Task<ReportsResponse> GetReports(bool resolved = false)
|
||||||
{
|
{
|
||||||
|
var user = HttpContext.GetUserOrFail();
|
||||||
var reports = await db.Reports
|
var reports = await db.Reports
|
||||||
.IncludeCommonProperties()
|
.IncludeCommonProperties()
|
||||||
.Where(p => p.Resolved == resolved)
|
.Where(p => p.Resolved == resolved)
|
||||||
|
@ -36,6 +41,13 @@ public class AdminController(
|
||||||
var reportsList = new List<Reports>();
|
var reportsList = new List<Reports>();
|
||||||
foreach (var r in rendered)
|
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()
|
reportsList.Add(new Reports()
|
||||||
{
|
{
|
||||||
Account = r.TargetUser,
|
Account = r.TargetUser,
|
||||||
|
@ -44,14 +56,15 @@ public class AdminController(
|
||||||
CreatedAt = r.CreatedAt,
|
CreatedAt = r.CreatedAt,
|
||||||
State = r.Resolved ? "resolved" : "open",
|
State = r.Resolved ? "resolved" : "open",
|
||||||
Content = r.Comment,
|
Content = r.Comment,
|
||||||
Statuses = r.Notes,
|
Statuses = note
|
||||||
Notes = r.Notes // ???
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var resps = new ReportsResponse()
|
var resps = new ReportsResponse()
|
||||||
{
|
{
|
||||||
Total = 1,
|
Total = reportsList.Count,
|
||||||
Reports = reportsList
|
Reports = reportsList
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
|
||||||
using Iceshrimp.Backend.Core.Database.Tables;
|
using Iceshrimp.Backend.Core.Database.Tables;
|
||||||
using Iceshrimp.Frontend.Pages.Settings;
|
using Iceshrimp.Frontend.Pages.Settings;
|
||||||
using Iceshrimp.Shared.Schemas.Web;
|
using Iceshrimp.Shared.Schemas.Web;
|
||||||
|
@ -20,6 +21,5 @@ public class Reports
|
||||||
[J("created_at")] public required DateTime CreatedAt { get; set; }
|
[J("created_at")] public required DateTime CreatedAt { get; set; }
|
||||||
[J("state")] public required string State { get; set; }
|
[J("state")] public required string State { get; set; }
|
||||||
[J("content")] public required string Content { get; set; }
|
[J("content")] public required string Content { get; set; }
|
||||||
[J("statuses")] public required NoteResponse[] Statuses { get; set; }
|
[J("statuses")] public required IEnumerable<StatusEntity> Statuses { get; set; }
|
||||||
[J("notes")] public required NoteResponse[] Notes { get; set; }
|
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue