import { API_SERVER } from '../../config'; import HtmlClient from '../../helpers/HtmlClient'; import { REQUEST_SHOP_PACKAGES, RECIEVE_SHOP_PACKAGES, REQUEST_SHOP_COMMERCIAL_LEADS, RECIEVE_SHOP_COMMERCIAL_LEADS, SELECT_SHOP_COMMERCIAL_LEAD } from '../../constants/coMarketConstants'; import { fromWCPackage } from '../../helpers/PackageHelper'; const client = new HtmlClient(); const requestShopPackages = () => ({ type: REQUEST_SHOP_PACKAGES, isLoading: true }); const recieveShopPackages = (json) => ({ type: RECIEVE_SHOP_PACKAGES, isLoading: false, shopPackages: json }); export const fetchShopPackages = (cl, search) => { return dispatch => { dispatch(requestShopPackages()); let searchParam = search ? '?search=' +search : '' return client.fetch({ url: `${API_SERVER}/wp-json/wc/v2/products` + searchParam, // TODO: Add comercialLead parameter after the support for it is added on backend // method: 'post', // data: { // idCommercialLead: (cl && cl.value) || 0, // search // } }) .then(response => { if (response.data) { dispatch(recieveShopPackages(response.data.map(wcPackage => fromWCPackage(wcPackage)))) } }) .catch(error => { client.onError(error, dispatch); }); } } const requestShopCommercialLeads = () => ({ type: REQUEST_SHOP_COMMERCIAL_LEADS }); const recieveShopCommercialLeads = (json) => ({ type: RECIEVE_SHOP_COMMERCIAL_LEADS, commercialLeads: json }); const generateClOptions = (commercialLeads) => { commercialLeads.forEach((cl) => { cl.value = cl.idCommercialLead; cl.label = cl.commercialLeadName; }); return commercialLeads; } export const fetchShopCommercialLeads = () => { return dispatch => { dispatch(requestShopCommercialLeads()); // TODO: FetchcomercialLead after the support for it is added on backend // return client.fetch({url: `${API_SERVER}/coMarket/api/getAllCommercialLeads`}) // .then(response => { // if(response.data && response.data.commercialLeads){ const clOptions = generateClOptions([{ "idCommercialLead": 14, "commercialLeadName": "Coor Service Management", "mail": "rikard@co-ideation.com" }]); dispatch(recieveShopCommercialLeads(clOptions)); if (clOptions.length) { dispatch(selectCommercialLead(clOptions[0])); dispatch(fetchShopPackages(clOptions[0])); } } // }) // .catch(error => { // client.onError(error, dispatch); // }); } // } export const selectCommercialLead = (cl) => ({ type: SELECT_SHOP_COMMERCIAL_LEAD, selectedCommercialLead: cl });