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;
|
||||||
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;
|
||||||
|
@ -32,7 +31,7 @@ public class AdminController(
|
||||||
[HttpGet("/api/v1/pleroma/admin/reports")]
|
[HttpGet("/api/v1/pleroma/admin/reports")]
|
||||||
[Authenticate("admin:read:reports")]
|
[Authenticate("admin:read:reports")]
|
||||||
[ProducesResults(HttpStatusCode.OK)]
|
[ProducesResults(HttpStatusCode.OK)]
|
||||||
public async Task<ReportsResponse> GetReports(bool resolved = false)
|
public async Task<ReportsQuery> GetReports(bool resolved = false)
|
||||||
{
|
{
|
||||||
var user = HttpContext.GetUserOrFail();
|
var user = HttpContext.GetUserOrFail();
|
||||||
var reports = await db.Reports
|
var reports = await db.Reports
|
||||||
|
@ -77,7 +76,7 @@ public class AdminController(
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var resps = new ReportsResponse()
|
var resps = new ReportsQuery()
|
||||||
{
|
{
|
||||||
Total = reportsList.Count,
|
Total = reportsList.Count,
|
||||||
Reports = reportsList
|
Reports = reportsList
|
||||||
|
@ -85,4 +84,21 @@ public class AdminController(
|
||||||
|
|
||||||
return resps;
|
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.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;
|
using J = System.Text.Json.Serialization.JsonPropertyNameAttribute;
|
||||||
|
|
||||||
namespace Iceshrimp.Backend.Controllers.Pleroma.Schemas;
|
namespace Iceshrimp.Backend.Controllers.Pleroma.Schemas;
|
||||||
|
|
||||||
public class ReportsResponse
|
public class ReportsQuery
|
||||||
{
|
{
|
||||||
[J("total")] public int Total { get; set; }
|
[J("total")] public int Total { get; set; }
|
||||||
[J("reports")] public required List<Reports> Reports { get; set; }
|
[J("reports")] public required List<Reports> Reports { get; set; }
|
||||||
|
@ -15,12 +11,12 @@ public class ReportsResponse
|
||||||
|
|
||||||
public class Reports
|
public class Reports
|
||||||
{
|
{
|
||||||
[J("account")] public required AccountEntity Account { get; set; }
|
[J("account")] public AccountEntity? Account { get; set; }
|
||||||
[J("actor")] public required AccountEntity Actor { get; set; }
|
[J("actor")] public AccountEntity? Actor { get; set; }
|
||||||
[J("id")] public required string Id { get; set; }
|
[J("id")] public required string Id { get; set; }
|
||||||
[J("created_at")] public required DateTime CreatedAt { get; set; }
|
[J("created_at")] public 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 string? Content { get; set; }
|
||||||
[J("statuses")] public required IEnumerable<StatusEntity> Statuses { get; set; }
|
[J("statuses")] public IEnumerable<StatusEntity>? Statuses { get; set; }
|
||||||
[J("notes")] public required string[] Notes { get; set; }
|
[J("notes")] public string[]? Notes { get; set; }
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue