Handle order project and refactor api

This commit is contained in:
Almira Krdzic
2018-09-24 21:51:55 +02:00
parent 8cc2a7c8bc
commit 11c26aeee1
32 changed files with 1408 additions and 587 deletions

View File

@@ -0,0 +1,55 @@
export const fromWCCartItems = wcCartItem => {
const paymentInfo = wcCartItem['payment_info'] || {};
const totalPrices = wcCartItem['total_prices'] || {};
return {
idPackage: wcCartItem['package_id'],
key: wcCartItem.key,
packageName: wcCartItem['package_name'],
quantity: wcCartItem.quantity,
idCommercialLead: wcCartItem['commercial_lead_id'],
commercialLead: wcCartItem['commercial_lead'],
country: wcCartItem.country ? wcCartItem.country : [],
areAdditionalAvailable: wcCartItem['are_additional_available'],
additionalPackages: wcCartItem['additional_packages'] ? wcCartItem['additional_packages'].map(additionalPackageItem => ({
idAdditionalPackage: additionalPackageItem['package_id'],
packageName: additionalPackageItem['package_name'],
prices: {
fixedExtra: additionalPackageItem['prices'] ? additionalPackageItem['prices']['fixed_extra'] : 0,
recurrentExtra: additionalPackageItem['prices'] ? additionalPackageItem['prices']['recurrent_extra'] : 0,
servicesExtra: additionalPackageItem['prices'] ? additionalPackageItem['prices']['services_extra'] : 0,
}
})) : [],
areOptionsAvailable: wcCartItem['are_options_available'],
options: wcCartItem.options ? wcCartItem.options.map(optionPackageItem => ({
idOptionPackage: optionPackageItem['package_id'],
packageName: optionPackageItem['package_name'],
groupName: optionPackageItem['group_name'],
prices: {
fixedExtra: optionPackageItem['prices'] ? optionPackageItem['prices']['fixed_extra'] : 0,
recurrentExtra: optionPackageItem['prices'] ? optionPackageItem['prices']['recurrent_extra'] : 0,
servicesExtra: optionPackageItem['prices'] ? optionPackageItem['prices']['services_extra'] : 0,
}
})) : [],
bids: wcCartItem.bids,
idPayType: paymentInfo.id,
payType: paymentInfo.type,
periodUnit: paymentInfo['period_unit'] || 'month',
idPrice: paymentInfo.id,
fixedPrice: paymentInfo['fixed_extra'] !== undefined ? paymentInfo['fixed_extra'] : 0,
recurrentPrice: paymentInfo['recurrent_extra'] !== undefined ? paymentInfo['recurrent_extra'] : 0,
servicesPrice: paymentInfo['services_extra'] !== undefined ? paymentInfo['services_extra'] : 0,
totalPrices: {
fixedPrice: totalPrices['fixed_extra'] !== undefined ? totalPrices['fixed_extra'] : 0,
recurrentPrice: totalPrices['recurrent_extra'] !== undefined ? totalPrices['recurrent_extra'] : 0,
servicesPrice: totalPrices['services_extra'] !== undefined ? totalPrices['services_extra'] : 0,
}
};
};

View File

@@ -60,6 +60,24 @@ class HtmlClient {
}
onError(error) {
const response = error.response;
if (response.data) {
switch (response.data.code) {
case 'rest_missing_callback_param':
store.dispatch(updateMessages([{code:'error', message: response.data.message }]));
return;
case 'rest_invalid_param':
const messages = Object.keys(response.data.data.params).map(paramName => {
const errorMessage = response.data.data.params[paramName];
if (errorMessage === 'Invalid parameter.') {
return { code: 'error', message: `Invalid ${paramName} parameter!` };
}
return { code: 'error', message: errorMessage };
});
store.dispatch(updateMessages(messages));
return;
}
}
store.dispatch(updateMessages([{code:'error', message: 'HTML_ERROR'}], notificationMessages));
}
}

View File

@@ -21,7 +21,11 @@ export const fromWCOrder = (WCOrder) => {
dateCreated: formatDate(WCOrder['date_created']),
dateCompleted: formatDate(WCOrder['date_completed']),
estimatedDeliveryDate: undefined,
vatCode: WCOrder['vat'],
reference: WCOrder['reference'],
tender: WCOrder['tender'],
companyName: WCOrder['company_name'],
projectName: WCOrder['project_name'],
assignedTo: 'assigned to',
fixedPrice: WCOrder.total,
recurringPrice: WCOrder['recurring_price'],