src/actions/productActions.js (75 lines of code) (raw):
import * as types from './actionTypes';
import productApi from '../api/productApi';
export function loadProduct(id) {
return function(dispatch) {
dispatch(loadProductRequest());
return productApi.getProduct(id).then(product => {
dispatch(loadProductSuccess(product));
}).catch(error => {
throw (error);
});
};
}
export function loadProductRequest() {
return {type: types.LOAD_PRODUCT_REQUEST};
}
export function loadProductSuccess(product) {
return {type: types.LOAD_PRODUCT_SUCCESS, product};
}
export function loadProducts() {
return function(dispatch) {
dispatch(loadProductsRequest());
return productApi.getAllProducts().then(products => {
dispatch(loadProductsSuccess(products));
}).catch(error => {
throw (error);
});
};
}
export function unloadProducts() {
return {type: types.UNLOAD_PRODUCTS};
}
export function loadProductsRequest() {
return {type: types.LOAD_PRODUCTS_REQUEST};
}
export function loadProductsSuccess(products) {
return {type: types.LOAD_PRODUCTS_SUCCESS, products};
}
export function loadProductsTop() {
return function(dispatch) {
dispatch(loadProductsTopRequest());
return productApi.getTopProducts().then(productsTop => {
dispatch(loadProductsTopSuccess(productsTop));
}).catch(error => {
throw (error);
});
};
}
export function loadProductsTopRequest() {
return {type: types.LOAD_PRODUCTS_TOP_REQUEST};
}
export function loadProductsTopSuccess(productsTop) {
return {type: types.LOAD_PRODUCTS_TOP_SUCCESS, productsTop};
}
export function unloadProductsTop() {
return {type: types.UNLOAD_PRODUCTS_TOP};
}
export function loadProductCustomers(id) {
return function(dispatch) {
dispatch(loadProductCustomersRequest());
return productApi.getProductCustomers(id).then(productCustomers => {
dispatch(loadProductCustomersSuccess(productCustomers));
}).catch(error => {
throw (error);
});
};
}
export function loadProductCustomersRequest() {
return {type: types.LOAD_PRODUCT_CUSTOMERS_REQUEST};
}
export function loadProductCustomersSuccess(productCustomers) {
return {type: types.LOAD_PRODUCT_CUSTOMERS_SUCCESS, productCustomers};
}
export function unloadProductCustomers() {
return {type: types.UNLOAD_PRODUCT_CUSTOMERS};
}