Example #1
0
        public async Task <IActionResult> GetListTopHeadlines()
        {
            try
            {
                IQueryCollection queryParams = Request.Query;

                if (!AppUtils.IsValidParameters(queryParams, topHeadlinesValidParams))
                {
                    return(BadRequest(new Error()
                    {
                        Message = $"A consulta contém parâmetros inválidos. Parâmetros válidos: {string.Join(", ", topHeadlinesValidParams)}", Status = "error"
                    }));
                }

                List <KeyValuePair <string, object> > parameters = AppUtils.GetParameters(queryParams, topHeadlinesValidParams);

                if (parameters.Exists(c => c.Key == "sources"))
                {
                    if (parameters.Exists(c => c.Key == "country" || c.Key == "category"))
                    {
                        return(BadRequest(new Error()
                        {
                            Message = $"Não é permitido utilizar os parâmetros 'country' ou 'category' junto com o parâmetro 'sources'.", Status = "error"
                        }));
                    }
                }

                var result = await _services.GetListTopHeadlines(parameters);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(new Error()
                {
                    Message = $"Erro ao retornar os dados. {ex.Message}", Status = "error"
                }));
            }
        }