45 lines
1,022 B
JavaScript
45 lines
1,022 B
JavaScript
import { handleFetchAPIErrors } from '../utilities/http';
|
|
|
|
function callAnalyticsAPI(path, date, { organizationId, articleId }, callback) {
|
|
let url = `${path}?start=${date.toISOString().split('T')[0]}`;
|
|
|
|
if (organizationId) {
|
|
url = `${url}&organization_id=${organizationId}`;
|
|
}
|
|
if (articleId) {
|
|
url = `${url}&article_id=${articleId}`;
|
|
}
|
|
|
|
fetch(url)
|
|
.then(handleFetchAPIErrors)
|
|
.then((response) => response.json())
|
|
.then(callback)
|
|
// eslint-disable-next-line no-console
|
|
.catch((error) => console.error(error)); // we should come up with better error handling
|
|
}
|
|
|
|
export function callHistoricalAPI(
|
|
date,
|
|
{ organizationId, articleId },
|
|
callback,
|
|
) {
|
|
callAnalyticsAPI(
|
|
'/api/analytics/historical',
|
|
date,
|
|
{ organizationId, articleId },
|
|
callback,
|
|
);
|
|
}
|
|
|
|
export function callReferrersAPI(
|
|
date,
|
|
{ organizationId, articleId },
|
|
callback,
|
|
) {
|
|
callAnalyticsAPI(
|
|
'/api/analytics/referrers',
|
|
date,
|
|
{ organizationId, articleId },
|
|
callback,
|
|
);
|
|
}
|