Skip to content
Snippets Groups Projects

registrar usuario

Merged Lucca Santangelo Dodera requested to merge feature/registrar-usuario into master
19 files
+ 497
40
Compare changes
  • Side-by-side
  • Inline
Files
19
@@ -5,6 +5,8 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Tsi1.Api.Infrastructure;
using Tsi1.Api.Models;
using Tsi1.BusinessLayer.Dtos;
using Tsi1.BusinessLayer.Helpers;
using Tsi1.BusinessLayer.Interfaces;
namespace Tsi1.Api.Controllers
@@ -14,26 +16,30 @@ namespace Tsi1.Api.Controllers
[ApiController]
public class UserController : ControllerBase
{
private readonly IUserService _userService;
private readonly IJwtAuthManager _jwtAuthManager;
private readonly IUserService _userService;
private readonly IUserTypeService _userTypeService;
public UserController(IUserService userService, IJwtAuthManager jwtAuthManager)
public UserController(IJwtAuthManager jwtAuthManager, IUserService userService, IUserTypeService userTypeService)
{
_userService = userService;
_jwtAuthManager = jwtAuthManager;
_userService = userService;
_userTypeService = userTypeService;
}
[AllowAnonymous]
[HttpPost("Login")]
public async Task<IActionResult> Login(LoginRequest request)
{
var user = await _userService.Authenticate(request.UserName, request.Password);
var result = await _userService.Authenticate(request.UserName, request.Password);
if (user == null)
if (result.HasError)
{
return BadRequest();
return BadRequest(result.Message);
}
var user = result.Data;
var claims = new[]
{
new Claim(ClaimTypes.Name,user.Username),
@@ -51,11 +57,27 @@ namespace Tsi1.Api.Controllers
});
}
[HttpGet("Register")]
public async Task<IActionResult> Register()
[Authorize(Roles = UserTypes.FacultyAdmin)]
[HttpPost("Register")]
public async Task<IActionResult> Register(UserRegisterDto dto)
{
var userTypeResult = await _userTypeService.GetById(dto.UserTypeId);
if (userTypeResult.HasError)
{
BadRequest(userTypeResult.Message);
}
var userType = userTypeResult.Data;
var userServiceResult = await _userService.Create(dto, userType.Name);
if (userServiceResult.HasError)
{
BadRequest(userServiceResult.Message);
}
return Ok();
}
}
}
Loading