gab-social/app/javascript/gabsocial/actions/expenses.js

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,
})