Skip to content

Commit

Permalink
Display an error toaster on newsfeed fetch failure
Browse files Browse the repository at this point in the history
  • Loading branch information
rylnd committed Mar 5, 2020
1 parent 797b607 commit 6421322
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import moment from 'moment';
import uuid from 'uuid';

import { NewsItem, RawNewsApiItem, RawNewsApiResponse } from './types';
import { throwIfNotOk } from '../../hooks/api/api';
import { KibanaServices } from '../../lib/kibana';

/**
* Removes the `-SNAPSHOT` that is sometimes appended to the Kibana version,
Expand Down Expand Up @@ -90,15 +90,11 @@ export const fetchNews = async ({
}: {
newsFeedUrl: string;
}): Promise<RawNewsApiResponse> => {
const response = await fetch(newsFeedUrl, {
credentials: 'omit',
return KibanaServices.get().http.fetch<RawNewsApiResponse>(newsFeedUrl, {
method: 'GET',
credentials: 'omit',
mode: 'cors',
});

await throwIfNotOk(response);

return response.json();
};

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import chrome from 'ui/chrome';

import { fetchNews, getNewsFeedUrl, getNewsItemsFromApiResponse } from './helpers';
import { useKibana, useUiSetting$ } from '../../lib/kibana';
import { errorToToaster, useStateToaster } from '../toasters';
import { NewsFeed } from './news_feed';
import { NewsItem } from './types';
import * as i18n from './translations';

export const StatefulNewsFeed = React.memo<{
enableNewsFeedSetting: string;
Expand All @@ -20,6 +22,7 @@ export const StatefulNewsFeed = React.memo<{
const [enableNewsFeed] = useUiSetting$<boolean>(enableNewsFeedSetting);
const [newsFeedUrlSetting] = useUiSetting$<string>(newsFeedSetting);
const [news, setNews] = useState<NewsItem[] | null>(null);
const [, dispatchToaster] = useStateToaster();

// respect kibana's global newsfeed.enabled setting
const newsfeedEnabled = kibanaNewsfeedEnabled && enableNewsFeed;
Expand All @@ -39,7 +42,8 @@ export const StatefulNewsFeed = React.memo<{
if (!canceled) {
setNews(getNewsItemsFromApiResponse(apiResponse));
}
} catch {
} catch (error) {
errorToToaster({ title: i18n.NEWSFEED_FETCH_ERROR, error, dispatchToaster });
if (!canceled) {
setNews([]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ export const NO_NEWS_MESSAGE = i18n.translate('xpack.siem.newsFeed.noNewsMessage
'Your current news feed URL returned no recent news. You may update the URL or disable security news via',
});

export const NEWSFEED_FETCH_ERROR = i18n.translate('xpack.siem.newsFeed.fetchErrorMessage', {
defaultMessage: 'There was an error retrieving the news feed.',
});

export const ADVANCED_SETTINGS_LINK_TITLE = i18n.translate(
'xpack.siem.newsFeed.advancedSettingsLinkTitle',
{
Expand Down

0 comments on commit 6421322

Please sign in to comment.