using IdentityService.Domain; using IdentityService.WebApi.Applications.Auth; using IdentityService.WebApi.Applications.Dtos; using IdentityService.WebApi.Applications.Dtos.Common; using IM.Commons; using Microsoft.AspNetCore.Mvc; namespace IdentityService.WebApi.Controllers.Auth { [Route("/api/[controller]/[action]")] [ApiController] public class AuthController : ControllerBase { private readonly AuthService authService; private readonly IIdRepository idRepository; public AuthController(AuthService authService, IIdRepository idRepository) { this.authService = authService; this.idRepository = idRepository; } [HttpPost] [ProducesDefaultResponseType(typeof(Result))] public async Task Login([FromBody] LoginRequest loginRequest) { return Ok(await authService.LoginAsync(loginRequest.UserName, loginRequest.Password)); } [HttpPost] [ProducesDefaultResponseType(typeof(Result))] public async Task Register([FromBody] RegisterRequest registerRequest) { return Ok(await authService.RegisterAsync(registerRequest.UserName, registerRequest.Password, registerRequest.NickName)); } [HttpPost] [ProducesDefaultResponseType(typeof(Result))] public async Task Refresh([FromBody] RefreshRequest refreshRequest) { return Ok(await authService.RefreshAsync(refreshRequest.RefreshToken)); } } }