public async Task <ActionResult <WatsonResponse> > PostWatsonPayload(WatsonPayload watsonPayload) { // _context.WatsonPayload.Add(watsonPayload); // await _context.SaveChangesAsync(); WatsonResponse response = new WatsonResponse(); NewsAPIClient newsAPI = new NewsAPIClient(_appSettings); switch (watsonPayload.Action) { case WatsonAction.News_Highlights: response.articles = await newsAPI.FindNewsHighlights(watsonPayload); response.status = true; break; case WatsonAction.News_Keyphrase: response.articles = await newsAPI.FindNewsKeyphrase(watsonPayload); response.status = true; break; default: response.status = false; break; } return(response); }
public async Task <List <Article> > FindNewsKeyphrase(WatsonPayload watsonJson) { List <Article> foundArticles = new List <Article>(); using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(NewsAPIKey); using (var response = await httpClient.GetAsync($"https://newsapi.org/v2/everything?q={watsonJson.Query}&language=en&sortBy=relevancy")) { string apiResponse = await response.Content.ReadAsStringAsync(); JObject jsonResponse = JObject.Parse(apiResponse); if (!jsonResponse["status"].ToString().Equals("ok")) { return(foundArticles); } foundArticles = JsonConvert.DeserializeObject <List <Article> >(jsonResponse["articles"].ToString()); } } return(foundArticles); }
public async Task <List <Article> > FindNewsHighlights(WatsonPayload watsonJson) { List <Article> foundArticles = new List <Article>(); using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(NewsAPIKey); using (var response = await httpClient.GetAsync("https://newsapi.org/v2/top-headlines?country=sa")) { string apiResponse = await response.Content.ReadAsStringAsync(); JObject jsonResponse = JObject.Parse(apiResponse); if (!jsonResponse["status"].ToString().Equals("ok")) { return(foundArticles); } foundArticles = JsonConvert.DeserializeObject <List <Article> >(jsonResponse["articles"].ToString()); } } return(foundArticles); }