예제 #1
0
        public async Task <IActionResult> AuthenticateAsync([FromBody] EstabelecimentoUser item)
        {
            if (item == null)
            {
                return(BadRequest(new {
                    status = 400,
                    message = "Objeto inválido."
                }));
            }

            if (ModelState.IsValid)
            {
                var user = await _estabelecimentoRepository.AuthenticateAsync(item);

                if (user == null)
                {
                    return(BadRequest(new {
                        status = 400,
                        message = "Usuário e/ou senha incorreto(s)."
                    }));
                }

                return(Ok(new {
                    status = HttpContext.Response.StatusCode,
                    message = "Autenticado com sucesso.",
                    data = user.Id,
                    token = TokenGenerator.BuildToken(user.Id, user.IsAdmin.Value)
                }));
            }
            else
            {
                return(BadRequest(new {
                    status = 400,
                    message = ModelState.Values.SelectMany(m => m.Errors)
                              .Select(e => e.ErrorMessage)
                              .ToList()
                }));
            }
        }