using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using RunnersMeet.Server.Domain; using RunnersMeet.Server.Persistence; namespace RunnersMeet.Server.Controllers; [Route("api/[controller]")] [ApiController] [Authorize] public class UsersController : ControllerBase { private readonly IRequestRouter _requestRouter; public UsersController(IRequestRouter requestRouter) { _requestRouter = requestRouter; } [HttpGet("validate")] public ActionResult Validate([FromQuery] string? nickname) { if (!ApiUser.Current.IsValidUser) { throw new ApiException("UsersController.Validate call without a User / authentication token"); } var userProfile = _requestRouter .For(new ValidateUserRequest(ApiUser.Current.UserId, nickname)) .Process(); return new UserValidationResult { UserProfile = userProfile, Claims = ApiUser.Current.Claims, }; } }