using CalendarReminder.Api.Data; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; namespace CalendarReminder.Api.Controllers; [Authorize] [ApiController] [Route("api/[controller]")] public class UsersController : ControllerBase { private readonly AppDbContext _db; public UsersController(AppDbContext db) => _db = db; // GET api/users?search=jan [HttpGet] public async Task Search([FromQuery] string? search) { var myId = int.Parse(User.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier)!.Value); var query = _db.Users.Where(u => u.Id != myId); if (!string.IsNullOrWhiteSpace(search)) query = query.Where(u => u.Username.Contains(search) || u.Email.Contains(search)); var users = await query .Select(u => new { u.Id, u.Username, u.Email }) .Take(20) .ToListAsync(); return Ok(users); } }