18F/analytics-reporter

View on GitHub
ua/src/analytics.js

Summary

Maintainability
A
0 mins
Test Coverage
const path = require("path");
const config = require("./config");
const GoogleAnalyticsClient = require("./google-analytics/client");
const GoogleAnalyticsDataProcessor = require("./process-results/ga-data-processor");

const query = (report) => {
  if (!report) {
    return Promise.reject(
      new Error("Analytics.query missing required argument `report`"),
    );
  }

  return GoogleAnalyticsClient.fetchData(report).then((data) => {
    return GoogleAnalyticsDataProcessor.processData(report, data);
  });
};

const _loadReports = () => {
  const _reportFilePath = path.resolve(
    process.cwd(),
    config.ua_reports_file || "reports/api.json",
  );
  return require(_reportFilePath).reports;
};

module.exports = {
  query,
  reports: _loadReports(),
};