Skip to content

Instantly share code, notes, and snippets.

@talyssonoc
Created October 1, 2018 14:22
Show Gist options
  • Save talyssonoc/61535ffa31a959c6a0b92b16b1c6e5e8 to your computer and use it in GitHub Desktop.
Save talyssonoc/61535ffa31a959c6a0b92b16b1c6e5e8 to your computer and use it in GitHub Desktop.
export default ({ validateUser, userRepository }) => async (userData, { onSuccess, onError, onValidationError }) => {
if(!validateUser(userData)) {
return onValidationError(new Error('Invalid user'));
}
try {
const user = await userRepository.add(userData);
onSuccess(user);
} catch(error) {
onError(error);
}
};
const createUserAction = (userData) => (dispatch, getState, container) => {
container.createUser(userData, {
// notice that we don't add conditionals to emit any of these actions
onSuccess: (user) => dispatch(createUserSuccessAction(user)),
onError: (error) => dispatch(createUserErrorAction(error)),
onValidationError: (error) => dispatch(createUserValidationErrorAction(error))
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment