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" }); } }