@shopgate/pwa-common-commerce
Version:
Commerce library for the Shopgate Connect PWA.
5 lines • 1.22 kB
JavaScript
import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{EUNKNOWN,EACCESS}from'@shopgate/pwa-core/constants/Pipeline';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import{SHOPGATE_USER_GET_REVIEW}from"../constants/Pipelines";import requestUserReview from"../action-creators/requestUserReview";import receiveUserReview from"../action-creators/receiveUserReview";import errorUserReview from"../action-creators/errorUserReview";/**
* Request a user review for a product from server.
* @param {string} productId The product ID.
* @returns {Function} The dispatched action.
*/function fetchUserReview(productId){return function(dispatch,getState){var data=getState().reviews.userReviewsByProductId[productId];if(!shouldFetchData(data)){return Promise.resolve(null);}dispatch(requestUserReview(productId));var request=new PipelineRequest(SHOPGATE_USER_GET_REVIEW).setErrorBlacklist([EUNKNOWN,EACCESS]).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveUserReview(productId,result));})["catch"](function(){dispatch(errorUserReview(productId));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchUserReview);