── GET /api/users/search?query=... ──────────────────────────────────
([FromQuery] string query)
| 29 | |
| 30 | // ── GET /api/users/search?query=... ────────────────────────────────── |
| 31 | [HttpGet("search")] |
| 32 | public async Task<ActionResult<IEnumerable<UserSummaryDto>>> SearchUsers([FromQuery] string query) |
| 33 | { |
| 34 | if (string.IsNullOrWhiteSpace(query)) |
| 35 | return Ok(new List<UserSummaryDto>()); |
| 36 | |
| 37 | var users = await _context.Users |
| 38 | .Where(u => u.Username.Contains(query)) |
| 39 | .Take(10) |
| 40 | .Select(u => new UserSummaryDto |
| 41 | { |
| 42 | Id = u.Id, |
| 43 | Username = u.Username, |
| 44 | AvatarUrl = u.AvatarUrl, |
| 45 | DisplayOfflineAlways = u.DisplayOfflineAlways |
| 46 | }) |
| 47 | .ToListAsync(); |
| 48 | |
| 49 | return Ok(users); |
| 50 | } |
| 51 | |
| 52 | // ── GET /api/users/me ──────────────────────────────────────────────── |
| 53 | [HttpGet("me")] |
no outgoing calls