igor-starostenko/report_factory-web

View on GitHub
src/actions/reports_actions.js

Summary

Maintainability
B
6 hrs
Test Coverage
import ReportsClient from '../api/reports_client';

export const REPORTS = 'reports';
export const RSPEC_REPORTS = 'rspec_reports';
export const RSPEC_REPORTS_QUERY = 'rspec_reports_query';
export const GET_REPORTS = 'get_reports';
export const GET_RSPEC_REPORT = 'get_rspec_report';
export const RESET_RSPEC_REPORT = 'reset_rspec_reports';
export const GET_RSPEC_REPORTS = 'get_rspec_reports';
export const GET_RSPEC_REPORTS_SUCCESS = 'get_rspec_reports_success';
export const GET_RSPEC_REPORTS_FAILURE = 'get_rspec_reports_failure';
export const SET_RSPEC_REPORTS_PAGE = 'set_rspec_reports_page';
export const SET_RSPEC_REPORTS_TAGS = 'set_rspec_reports_tags';
export const RESET_RSPEC_REPORTS = 'reset_rspec_reports';

const apiUrl = process.env.API_URL;
const reportsClient = new ReportsClient(apiUrl);

export const queryReports = (xApiKey, variables) => {
  const request = reportsClient.queryReports(xApiKey, variables);

  return {
    type: REPORTS,
    payload: request.then(response => response.json()),
  };
};

export const queryRspecReports = (xApiKey, variables) => {
  const request = reportsClient.queryRspecReports(xApiKey, variables);

  return {
    type: RSPEC_REPORTS,
    payload: request.then(response => response.json()),
  };
};

export const setRspecReportsQuery = variables => ({
  type: RSPEC_REPORTS_QUERY,
  payload: variables,
});

export const getReports = (xApiKey, options) => {
  const request = reportsClient.getReports(xApiKey, options);

  return {
    type: GET_REPORTS,
    payload: request.then(response => response.json()),
  };
};

export const getRspecReport = (reportId, xApiKey) => {
  const request = reportsClient.showRspecReport(reportId, xApiKey);

  return {
    type: GET_RSPEC_REPORT,
    payload: request.then(response => response.json()),
  };
};

export const resetRspecReport = () => ({ type: RESET_RSPEC_REPORT });

/* eslint-disable arrow-body-style */
export const getRspecReports = (xApiKey, options) => {
  return reportsClient.getRspecReports(xApiKey, options);
};
/* eslint-enable arrow-body-style */

export const setRspecReportsPage = response => ({
  type: SET_RSPEC_REPORTS_PAGE,
  payload: response.headers,
});

export const setRspecReportsTags = tags => ({
  type: SET_RSPEC_REPORTS_TAGS,
  payload: tags,
});

export const getRspecReportsSuccess = response => ({
  type: GET_RSPEC_REPORTS_SUCCESS,
  payload: response.json(),
});

export const getRspecReportsFailure = response => ({
  type: GET_RSPEC_REPORTS_FAILURE,
  payload: response.json(),
});

export const resetRspecReports = () => ({ type: RESET_RSPEC_REPORTS });