Skip to content

Instantly share code, notes, and snippets.

@ccorcos
Created August 29, 2016 23:32
Show Gist options
  • Save ccorcos/05fa550626749bda3c83782a7d01b1e8 to your computer and use it in GitHub Desktop.
Save ccorcos/05fa550626749bda3c83782a7d01b1e8 to your computer and use it in GitHub Desktop.
// reducer.js
export default function reducer(state=initialState, action) {
switch(action.type) {
case defs.MAKE_PAYMENT_SUCCESS:
return state.withMutations(s =>
s.set('modalOpen', false)
.set('loading', false)
.setIn(['loans', action.loan.id], Immutable.fromJS(action.loan))
)
case defs.MAKE_PAYMENT_FAILED:
return state.withMutations(s =>
s.set('modalOpen', false)
.set('loading', false)
.set('paymentError', action.error)
)
// ...
}
}
// actions.js
export function makePayment(loanId, amount, paymentMethodId) {
return async dispatch => {
dispatch(makePaymentSent())
const response = await api.makePayment(loanId, amount, paymentMethodId)
if (response.status !== 200) {
dispatch(makePaymentFailed(response.statusText))
} else {
const result = await response.json()
dispatch(makePaymentSuccess(result.data))
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment