feat: filters on reports list
This commit is contained in:
		
							parent
							
								
									27846a4fe4
								
							
						
					
					
						commit
						d518cdf739
					
				
					 1 changed files with 16 additions and 3 deletions
				
			
		|  | @ -173,6 +173,9 @@ public class ReportsController( | ||||||
|     public async Task<IActionResult> GetReportsAsync( |     public async Task<IActionResult> GetReportsAsync( | ||||||
|         [FromQuery] int? limit = null, |         [FromQuery] int? limit = null, | ||||||
|         [FromQuery] Snowflake? before = null, |         [FromQuery] Snowflake? before = null, | ||||||
|  |         [FromQuery] Snowflake? after = null, | ||||||
|  |         [FromQuery(Name = "by-reporter")] Snowflake? byReporter = null, | ||||||
|  |         [FromQuery(Name = "by-target")] Snowflake? byTarget = null, | ||||||
|         [FromQuery(Name = "include-closed")] bool includeClosed = false |         [FromQuery(Name = "include-closed")] bool includeClosed = false | ||||||
|     ) |     ) | ||||||
|     { |     { | ||||||
|  | @ -187,11 +190,21 @@ public class ReportsController( | ||||||
|         IQueryable<Report> query = db |         IQueryable<Report> query = db | ||||||
|             .Reports.Include(r => r.Reporter) |             .Reports.Include(r => r.Reporter) | ||||||
|             .Include(r => r.TargetUser) |             .Include(r => r.TargetUser) | ||||||
|             .Include(r => r.TargetMember) |             .Include(r => r.TargetMember); | ||||||
|             .OrderByDescending(r => r.Id); | 
 | ||||||
|  |         if (byTarget != null && await db.Users.AnyAsync(u => u.Id == byTarget.Value)) | ||||||
|  |             query = query.Where(r => r.TargetUserId == byTarget.Value); | ||||||
|  | 
 | ||||||
|  |         if (byReporter != null && await db.Users.AnyAsync(u => u.Id == byReporter.Value)) | ||||||
|  |             query = query.Where(r => r.ReporterId == byReporter.Value); | ||||||
| 
 | 
 | ||||||
|         if (before != null) |         if (before != null) | ||||||
|             query = query.Where(r => r.Id < before.Value); |             query = query.Where(r => r.Id < before.Value).OrderByDescending(r => r.Id); | ||||||
|  |         else if (after != null) | ||||||
|  |             query = query.Where(r => r.Id > after.Value).OrderBy(r => r.Id); | ||||||
|  |         else | ||||||
|  |             query = query.OrderByDescending(r => r.Id); | ||||||
|  | 
 | ||||||
|         if (!includeClosed) |         if (!includeClosed) | ||||||
|             query = query.Where(r => r.Status == ReportStatus.Open); |             query = query.Where(r => r.Status == ReportStatus.Open); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue