jfilter/frag-den-staat-app

View on GitHub
src/actions/publicBodies.js

Summary

Maintainability
A
2 hrs
Test Coverage
import { ORIGIN, PUBLIC_BODIES_PATH } from '../globals';
import { fetchAndDispatch } from '../utils/networking';

function publicBodiesPendingAction() {
  return {
    type: 'PUBLIC_BODIES_PENDING',
  };
}

function publicBodiesSuccessAction(publicBody) {
  return {
    type: 'PUBLIC_BODIES_SUCCESS',
    publicBody,
  };
}

function publicBodiesErrorAction(error) {
  return {
    type: 'PUBLIC_BODIES_ERROR',
    error,
  };
}

function fetchPublicBody(publicBodyId) {
  return dispatch => {
    const buildUrl = () => `${ORIGIN}${PUBLIC_BODIES_PATH}${publicBodyId}`;

    const onSuccess = (innerDispatch => data =>
      innerDispatch(publicBodiesSuccessAction(data)))(dispatch);

    fetchAndDispatch(
      buildUrl,
      dispatch,
      publicBodiesPendingAction,
      onSuccess,
      publicBodiesErrorAction
    );
  };
}

export { fetchPublicBody };