Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using jwt_auth_api.Api.ViewModel.Login;
using jwt_auth_api.Api.ViewModel.LoginViewModel;
using jwt_auth_api.Api.ViewModel.LoginViwModel;
using jwt_auth_api.Application.Service;
using Microsoft.AspNetCore.Identity.Data;
using Microsoft.AspNetCore.Mvc;

namespace jwt_auth_api.Api.Controllers
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using jwt_auth_api.Api.ViewModel;
using jwt_auth_api.Api.ViewModel.PersonViewModel;
using jwt_auth_api.Api.ViewModel.PersonViewModel;
using jwt_auth_api.Application.Service;
using jwt_auth_api.Core.Users;
using jwt_auth_api.Domain.Users;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

Expand All @@ -17,72 +16,75 @@ public PersonController(PersonService servicePerson)
{
_servicePerson = servicePerson;
}

[HttpGet]
public IActionResult Get()
{
List<Person> person = _servicePerson.Read();
List<PersonViewModel> listViewModel = new List<PersonViewModel>();
List<PersonGetResponse> response = new List<PersonGetResponse>();
foreach (var p in person)
{
listViewModel.Add(new PersonViewModel
response.Add(new PersonGetResponse
{
Id = p.Id,
FirstName = p.FirstName,
LastName = p.LastName
});
LastName = p.LastName,
CreatedAt = p.CreatedAt
});
}
return Ok(listViewModel);
return Ok(response);
}

[HttpGet("{id}")]
public ActionResult<PersonViewModel> Get(int id)
public IActionResult Get(int id)
{
Person person = _servicePerson.ReadById(id);
if (person == null)
return NotFound();

var personViewModel = new PersonViewModel
Person model = _servicePerson.ReadById(id);
var response = new PersonGetResponse
{
Id = person.Id,
FirstName = person.FirstName,
LastName = person.LastName
Id = model.Id,
FirstName = model.FirstName,
LastName = model.LastName,
CreatedAt = model.CreatedAt,
};

return personViewModel;
return Ok(response);
}


[HttpGet("exist/{id}")]
public IActionResult Exist(int id)
{
var response = _servicePerson.Exists(id);
var response = new ExistResponse
{
Id = id,
Exist = _servicePerson.Exists(id)
};
return Ok(response);
}

[HttpPost]
public IActionResult Post([FromBody] PersonViewModel viewModel)
public IActionResult Post([FromBody] PersonPostRequest request)
{
Person model = new Person
{
FirstName = viewModel.FirstName,
LastName = viewModel.LastName
FirstName = request.FirstName,
LastName = request.LastName,
};
_servicePerson.Create(model);
return CreatedAtAction(nameof(Get), new { id = model.Id }, model);
return Created();
}

[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody] PersonViewModel viewModel)
public IActionResult Put(int id, [FromBody] PersonPostRequest request)
{
Person model = new Person
{
Id = id,
FirstName = viewModel.FirstName,
LastName = viewModel.LastName
FirstName = request.FirstName,
LastName = request.LastName
};

_servicePerson.Update(model);
return Ok(model);
return NoContent();

}

[HttpDelete("{id}")]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
using jwt_auth_api.Api.ViewModel.UsersViewModel;
using jwt_auth_api.Api.ViewModel.PersonViewModel;
using jwt_auth_api.Api.ViewModel.UsersViewModel;
using jwt_auth_api.Application.Service;
using jwt_auth_api.Core.Users;
using Microsoft.AspNetCore.Authorization;
using jwt_auth_api.Domain.Users;
using Microsoft.AspNetCore.Mvc;

namespace jwt_auth_api.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
[Authorize]
//[Authorize]
public class UsuarioController : ControllerBase
{
private readonly UsuarioService _serviceUsuario;
Expand All @@ -21,46 +21,50 @@ public UsuarioController(UsuarioService serviceUsuario, PersonService servicePer
}

[HttpGet]
public List<UserResponseViewModel> Get()
public IActionResult Get()
{
List<Usuario> usuarios = _serviceUsuario.Read();
List<UserResponseViewModel> listViewModel = new List<UserResponseViewModel>();
List<UserGetResponseViewModel> listViewModel = new List<UserGetResponseViewModel>();
foreach (var usuario in usuarios)
{
listViewModel.Add(new UserResponseViewModel
listViewModel.Add(new UserGetResponseViewModel
{
Id = usuario.Id,
Email = usuario.Email,
CreatedAt = usuario.CreatedAt,
Person = _servicePerson.ReadById(usuario.PersonId)
}); //gerei o token no senha do usuario, depois é validar com jwt
});
}
return listViewModel;
return Ok(listViewModel);
}


[HttpGet("{id}")]
public UserResponseViewModel Get(int id)
public IActionResult Get(int id)
{
Usuario user = _serviceUsuario.ReadById(id);
UserResponseViewModel userResponseViewModel = new UserResponseViewModel
UserGetResponseViewModel userResponseViewModel = new UserGetResponseViewModel
{
Id = user.Id,
Email = user.Email,
CreatedAt = user.CreatedAt,
Person = _servicePerson.ReadById(user.PersonId)
};
return userResponseViewModel;
return Ok(userResponseViewModel);
}

[HttpGet("exist/{id}")]
public bool Exist(int id)
public IActionResult Exist(int id)
{
return _serviceUsuario.Exists(id);
ExistResponse response = new ExistResponse
{
Id = id,
Exist = _serviceUsuario.Exists(id)
};
return Ok(response);
}

[HttpPost]
public IActionResult Post([FromBody] UserRequestViewModel viewModel)
public IActionResult Post([FromBody] UserPostRequestViewModel viewModel)
{
Usuario model = new Usuario
{
Expand All @@ -69,37 +73,31 @@ public IActionResult Post([FromBody] UserRequestViewModel viewModel)
PersonId = viewModel.PersonId
};
_serviceUsuario.Create(model);
return CreatedAtAction(nameof(Get), new { id = model.Id }, model);
return Created();
}


[HttpPut("{id}")]
public void Put(int id, [FromBody] UserPasswordViewModel model)
public IActionResult Put(int id, [FromBody] UserPutRequestViewModel request)
{
if (id != model.Id)
{
throw new ArgumentException("O ID do objeto User não é igual ao ID da URL.");
}
Usuario model = new Usuario();
model.Id = request.Id;
model.Password = request.Password;

Usuario userToUpdate = new Usuario();
userToUpdate.Id = model.Id;
userToUpdate.Password = model.Password;
_serviceUsuario.Update(userToUpdate);
_serviceUsuario.Update(model);
return NoContent();
}

[HttpDelete("{id}")]
public StatusCodeResult Delete(int id)
public IActionResult Delete(int id)
{
try
{
this. _serviceUsuario.Delete(id);
StatusCodeResult result = new StatusCodeResult(204);
return result;
_serviceUsuario.Delete(id);
return NoContent();
}
catch (Exception)
{
StatusCodeResult result = new StatusCodeResult(500);
return result;
return StatusCode(500);
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using jwt_auth_api.Application.Auth.Tools;
using jwt_auth_api.Application.Service;
using jwt_auth_api.Core.Users;
using jwt_auth_api.Domain.Users;
using jwt_auth_api.Infrastructure.Repositories;
using jwt_auth_api.Infrastructure.Repositories.Interfaces;
using Microsoft.AspNetCore.Identity;
Expand Down
5 changes: 0 additions & 5 deletions jwt-auth-api.Api/src/jwt-auth-api.Api/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,13 @@
using Microsoft.OpenApi;
using Scalar.AspNetCore;


var builder = WebApplication.CreateBuilder(args);

// Add services to the container.



builder.Services.AddControllers();
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();


//===== Database =====
builder.Services.AddDbContext<ApplicationDbContext>(options =>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;

namespace jwt_auth_api.Api.ViewModel.Login
namespace jwt_auth_api.Api.ViewModel.LoginViwModel
{
public class AuthLoginRequest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace jwt_auth_api.Api.ViewModel.Login
namespace jwt_auth_api.Api.ViewModel.LoginViewModel
{
public class AuthLoginResponse
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace jwt_auth_api.Api.ViewModel.PersonViewModel
{
public class ExistResponse
{
public int Id { get; set; }
public bool Exist { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

namespace jwt_auth_api.Api.ViewModel.PersonViewModel
{
public class PersonViewModel : BaseViewModel
public class PersonGetResponse
{
public int Id { get; set; }
[Required(ErrorMessage = "O campo Primeiro Nome é obrigatório.")]
public string FirstName { get; set; } = string.Empty;
[Required(ErrorMessage = "O campo Sobrenome é obrigatório.")]
public string LastName { get; set; } = string.Empty;

public DateTime CreatedAt { get; set; }


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;

namespace jwt_auth_api.Api.ViewModel.PersonViewModel
{
public class PersonPostRequest
{
[Required(ErrorMessage = "O campo Primeiro Nome é obrigatório.")]
[MinLength(3, ErrorMessage = "O campo FirstName deve ter no mínimo 3 caracteres")]
public string FirstName { get; set; } = string.Empty;
[Required(ErrorMessage = "O campo Sobrenome é obrigatório.")]
[MinLength(3, ErrorMessage = "O campo FirstName deve ter no mínimo 3 caracteres")]
public string LastName { get; set; } = string.Empty;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
using jwt_auth_api.Core.Users;

using jwt_auth_api.Domain.Users;
namespace jwt_auth_api.Api.ViewModel.UsersViewModel
{
public class UserResponseViewModel : BaseViewModel
public class UserGetResponseViewModel : BaseViewModel
{
public string Email { get; set; } = string.Empty;

// Foreign Key para Person - POO Composição
public Person Person { get; set; } = new Person();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.ComponentModel.DataAnnotations;

namespace jwt_auth_api.Api.ViewModel.UsersViewModel
{
public class UserPostRequestViewModel
{
[Required(ErrorMessage = "O campo Email é obrigatório.")]
[EmailAddress(ErrorMessage = "O campo Email está em um formato inválido")]
public string Email { get; set; } = string.Empty;
[Required(ErrorMessage = "O campo Senha é obrigatório.")]
[MinLength(3, ErrorMessage = "O campo Senha deve ter no mínimo 3 caracteres.")]
public string Password { get; set; } = string.Empty;
[Required(ErrorMessage = "O id da pessoa precisa ser preenchido.")]
[Range(1, int.MaxValue, ErrorMessage = "O id da pessoa precisa ser maior que 0.")]
public int PersonId { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace jwt_auth_api.Api.ViewModel.UsersViewModel
{
public class UserPasswordViewModel : BaseViewModel
public class UserPutRequestViewModel : BaseViewModel
{
[Required(ErrorMessage = "O campo Senha é obrigatório.")]
[MinLength(3, ErrorMessage = "O campo Senha deve ter no mínimo 3 caracteres")]
public string Password { get; set; } = string.Empty;
}
}

This file was deleted.

Loading
Loading