GSA/code-gov-front-end

View on GitHub
src/actions/update-browse-results.js

Summary

Maintainability
A
0 mins
Test Coverage
import { UPDATE_BROWSE_RESULTS } from 'constants/actions'
import { getFilterValuesFromParamsByCategory } from 'utils/other'
import client from 'api-client'

export default function(params) {
  return async dispatch => {
    const options = {}
    if (params.size) options.size = params.size
    if (params.sort) options.sort = params.sort
    if (params.page) options.page = params.page
    if (params.filters) {
      ['agencies', 'languages', 'licenses', 'usageTypes'].forEach(key => {
        options[key] = getFilterValuesFromParamsByCategory(params, key)
      })
    }
    const results = await client.repos(options)
    results.params = options
    dispatch({ type: UPDATE_BROWSE_RESULTS, results })
  }
}