Exemplo n.º 1
0
        public async Task <ActionResult <UsuarioDto> > Signup([FromBody] UsuarioInputDto usuarioInput)
        {
            if (usuarioInput == null || !ModelState.IsValid)
            {
                return(BadRequest(new Erro {
                    StatusCode = "400", Mensagem = "Parâmetros inválidos."
                }));
            }

            var erro = _usuarioService.EmailJaExiste(usuarioInput);

            if (erro != null)
            {
                return(BadRequest(erro));
            }
            try
            {
                usuarioInput.Senha = Hashing.HashPassword(usuarioInput.Senha);
                usuarioInput.Token = _authenticate.GerarToken(usuarioInput.Id);

                var novoUsuario = await _usuarioService.Create(usuarioInput).ConfigureAwait(true);

                return(CreatedAtAction(nameof(Get), new { id = novoUsuario.Id }, new UsuarioDto(novoUsuario)));
            }
            catch (Exception ex)
            {
                return(BadRequest(new Erro {
                    StatusCode = "400", Mensagem = ex.Message
                }));
            }
        }