68 lines
2.9 KiB
C#
68 lines
2.9 KiB
C#
using AlquilaFacil.Builder;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Modelo;
|
|
using Entidades;
|
|
|
|
namespace AlquilaFacil.Controllers;
|
|
|
|
[ApiController]
|
|
public class UsuarioController : ControllerBase
|
|
{
|
|
[HttpGet("/api/usuario")]
|
|
public IActionResult ObtenerInfoUsuario([FromHeader(Name = "Auth")] string Auth)
|
|
{
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un usuari por ese token" });
|
|
|
|
var usu = new UsuarioDtoBuilder()
|
|
.SetNombre(cli.Nombre).SetApellido(cli.Apellido)
|
|
.SetEmail(cli.Email).SetCelular(cli.Celular)
|
|
.SetDni(cli.Dni).SetDomicilio(cli.Domicilio)
|
|
.SetEmailRecuperacion(cli.EmailRecuperacion)
|
|
.Build();
|
|
return Ok(usu);
|
|
}
|
|
|
|
public class bodyCambiarContraseña
|
|
{
|
|
public string contraseña { get; set; } = "";
|
|
}
|
|
|
|
[HttpPatch("/api/usuario")]
|
|
public IActionResult CambiarPass([FromHeader(Name = "Auth")] string Auth, [FromBody] bodyCambiarContraseña body)
|
|
{
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un usuario por ese token" });
|
|
|
|
if (body.contraseña.Length < 8) return BadRequest(new { message = "Tiene que tener por lo menos 8 caracteres" });
|
|
|
|
bool ret = RepositorioUsuarios.Singleton.CambiarContraseña(body.contraseña, cli);
|
|
return ret ? Ok(new { message = "Contraseña cambiada con éxito" }) : BadRequest(new { message = "No se pudo cambiar la contraseña" });
|
|
}
|
|
|
|
public record setemail(string EmailRecuperacion);
|
|
[HttpPut("/api/usuario/emailrecuperacion")]
|
|
public IActionResult CambiarPass([FromHeader(Name = "Auth")] string Auth, [FromBody] setemail setemail)
|
|
{
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un usuario por ese token" });
|
|
|
|
string emailrecuperacion = setemail.EmailRecuperacion;
|
|
if (!emailrecuperacion.Contains("@")) return BadRequest(new { message = "Tiene que ser un email" });
|
|
|
|
bool ret = RepositorioUsuarios.Singleton.SetEmailRecuperacion(emailrecuperacion, cli);
|
|
return ret ? Ok(new { message = "Email de recuperación actualizado con éxito" }) : BadRequest(new { message = "No se pudo actualizar el email de recuperación" });
|
|
}
|
|
|
|
public record recuperarusuario(string Email, string EmailRecuperacion);
|
|
[HttpPost("/api/recuperarUsuario")]
|
|
public IActionResult RecuperarUsuario([FromBody] recuperarusuario mails)
|
|
{
|
|
bool check = RepositorioUsuarios.Singleton.CheckEmailRecuperacion(mails.Email, mails.EmailRecuperacion);
|
|
if (check == false) return BadRequest(new { message = "El email no corresponde al email de recuperacion" });
|
|
|
|
//WIP hacer emailer
|
|
|
|
}
|
|
}
|