38 lines
956 B
JavaScript
38 lines
956 B
JavaScript
import api from '../api'
|
|
import { me } from '../initial_state'
|
|
|
|
export const EXPENSES_FETCH_REQUEST = 'EXPENSES_FETCH_REQUEST'
|
|
export const EXPENSES_FETCH_SUCCESS = 'EXPENSES_FETCH_SUCCESS'
|
|
export const EXPENSES_FETCH_FAIL = 'EXPENSES_FETCH_FAIL'
|
|
|
|
/**
|
|
* Fetch monthly expenses completion
|
|
*/
|
|
export const fetchExpenses = () => (dispatch, getState) => {
|
|
if (!me) return
|
|
|
|
const isFetched = getState().getIn(['expenses', 'fetched'], false)
|
|
if (isFetched) return
|
|
|
|
dispatch(fetchExpensesRequest())
|
|
|
|
api(getState).get('/api/v1/expenses').then((response) => {
|
|
dispatch(fetchExpensesSuccess(response.data.expenses))
|
|
}).catch((error) => {
|
|
dispatch(fetchExpensesFail(error))
|
|
})
|
|
}
|
|
|
|
const fetchExpensesRequest = () => ({
|
|
type: EXPENSES_FETCH_REQUEST,
|
|
})
|
|
|
|
const fetchExpensesSuccess = (value) => ({
|
|
type: EXPENSES_FETCH_SUCCESS,
|
|
value,
|
|
})
|
|
|
|
const fetchExpensesFail = (error, listType) => ({
|
|
type: EXPENSES_FETCH_FAIL,
|
|
error,
|
|
}) |