Add project files.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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<IActionResult> 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user