This commit is contained in:
parent
de57d12097
commit
d88518836b
2 changed files with 28 additions and 16 deletions
|
@ -1,7 +1,6 @@
|
|||
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;
|
||||
|
@ -32,7 +31,7 @@ public class AdminController(
|
|||
[HttpGet("/api/v1/pleroma/admin/reports")]
|
||||
[Authenticate("admin:read:reports")]
|
||||
[ProducesResults(HttpStatusCode.OK)]
|
||||
public async Task<ReportsResponse> GetReports(bool resolved = false)
|
||||
public async Task<ReportsQuery> GetReports(bool resolved = false)
|
||||
{
|
||||
var user = HttpContext.GetUserOrFail();
|
||||
var reports = await db.Reports
|
||||
|
@ -77,7 +76,7 @@ public class AdminController(
|
|||
|
||||
}
|
||||
|
||||
var resps = new ReportsResponse()
|
||||
var resps = new ReportsQuery()
|
||||
{
|
||||
Total = reportsList.Count,
|
||||
Reports = reportsList
|
||||
|
@ -85,4 +84,21 @@ public class AdminController(
|
|||
|
||||
return resps;
|
||||
}
|
||||
|
||||
[HttpPost("/api/v1/pleroma/admin/reports")]
|
||||
[Authenticate("admin:read:reports")]
|
||||
[ProducesResults(HttpStatusCode.OK)]
|
||||
public async Task<Task<ReportsQuery>> SetReportState(ReportsQuery query)
|
||||
{
|
||||
var user = HttpContext.GetUserOrFail();
|
||||
|
||||
foreach (var list in query.Reports)
|
||||
{
|
||||
var report = await db.Reports.Where(p => p.Id == list.Id).FirstOrDefaultAsync()
|
||||
?? throw GracefulException.NotFound("Report not found");
|
||||
report.Resolved = list.State == "closed";
|
||||
}
|
||||
|
||||
return this.GetReports();
|
||||
}
|
||||
}
|
|
@ -1,13 +1,9 @@
|
|||
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
|
||||
using Iceshrimp.Backend.Core.Database.Tables;
|
||||
using Iceshrimp.Frontend.Pages.Settings;
|
||||
using Iceshrimp.Shared.Schemas.Web;
|
||||
using Newtonsoft.Json;
|
||||
using J = System.Text.Json.Serialization.JsonPropertyNameAttribute;
|
||||
|
||||
namespace Iceshrimp.Backend.Controllers.Pleroma.Schemas;
|
||||
|
||||
public class ReportsResponse
|
||||
public class ReportsQuery
|
||||
{
|
||||
[J("total")] public int Total { get; set; }
|
||||
[J("reports")] public required List<Reports> Reports { get; set; }
|
||||
|
@ -15,12 +11,12 @@ public class ReportsResponse
|
|||
|
||||
public class Reports
|
||||
{
|
||||
[J("account")] public required AccountEntity Account { get; set; }
|
||||
[J("actor")] public required AccountEntity 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; }
|
||||
[J("notes")] public required string[] Notes { get; set; }
|
||||
[J("account")] public AccountEntity? Account { get; set; }
|
||||
[J("actor")] public AccountEntity? Actor { get; set; }
|
||||
[J("id")] public required string Id { get; set; }
|
||||
[J("created_at")] public DateTime? CreatedAt { get; set; }
|
||||
[J("state")] public required string State { get; set; }
|
||||
[J("content")] public string? Content { get; set; }
|
||||
[J("statuses")] public IEnumerable<StatusEntity>? Statuses { get; set; }
|
||||
[J("notes")] public string[]? Notes { get; set; }
|
||||
}
|
Loading…
Add table
Reference in a new issue