feat(backend): report detail endpoint
This commit is contained in:
		
							parent
							
								
									8edbc8bf1d
								
							
						
					
					
						commit
						045964ffb7
					
				
					 2 changed files with 35 additions and 0 deletions
				
			
		|  | @ -220,7 +220,36 @@ public class ReportsController( | |||
|         return Ok(reports.Select(moderationRenderer.RenderReport)); | ||||
|     } | ||||
| 
 | ||||
|     [HttpGet("reports/{id}")] | ||||
|     [Authorize("user.moderation")] | ||||
|     [Limit(RequireModerator = true)] | ||||
|     public async Task<IActionResult> GetReportAsync(Snowflake id, CancellationToken ct = default) | ||||
|     { | ||||
|         Report? report = await db | ||||
|             .Reports.Include(r => r.Reporter) | ||||
|             .Include(r => r.TargetUser) | ||||
|             .Include(r => r.TargetMember) | ||||
|             .FirstOrDefaultAsync(r => r.Id == id, ct); | ||||
|         if (report == null) | ||||
|             throw new ApiError.NotFound("No report with that ID found."); | ||||
| 
 | ||||
|         return Ok( | ||||
|             new ReportDetailResponse( | ||||
|                 Report: moderationRenderer.RenderReport(report), | ||||
|                 User: await userRenderer.RenderUserAsync( | ||||
|                     report.TargetUser, | ||||
|                     renderMembers: false, | ||||
|                     ct: ct | ||||
|                 ), | ||||
|                 Member: report.TargetMember != null | ||||
|                     ? memberRenderer.RenderMember(report.TargetMember) | ||||
|                     : null | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     [HttpPost("reports/{id}/ignore")] | ||||
|     [Authorize("user.moderation")] | ||||
|     [Limit(RequireModerator = true)] | ||||
|     public async Task<IActionResult> IgnoreReportAsync( | ||||
|         Snowflake id, | ||||
|  |  | |||
|  | @ -35,6 +35,12 @@ public record ReportResponse( | |||
|     JObject? Snapshot | ||||
| ); | ||||
| 
 | ||||
| public record ReportDetailResponse( | ||||
|     ReportResponse Report, | ||||
|     UserResponse User, | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] MemberResponse? Member | ||||
| ); | ||||
| 
 | ||||
| public record AuditLogResponse( | ||||
|     Snowflake Id, | ||||
|     AuditLogEntity Moderator, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue