| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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<UserValidationResult> 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<UserProfile>();
- return new UserValidationResult
- {
- UserProfile = userProfile,
- Claims = ApiUser.Current.Claims,
- };
- }
- }
|