Files
old-new-wiaas/frontend/src/helpers/PackageHelper.js

67 lines
2.5 KiB
JavaScript
Raw Normal View History

2018-10-03 16:46:41 +02:00
import { getDocumentIcon } from './DocumentHelper';
2018-08-26 15:41:08 +02:00
const DEFAULT_PACKAGE_IMG = 'static/img/no-photo-package.jpg';
2018-09-06 23:29:29 +02:00
function extractPrices(wcPackageId, prices) {
return prices.map(price => ({
idPrice: price.id,
idPaymentType: price.id,
payType: price['payment_type'],
isSameCompanyAsCl: false,
idPackage: wcPackageId,
periodUnit: price['period_unit'],
maxContractPeriod: price['max_contract_period'],
packagePayPeriod: price['package_pay_period'],
servicesContractPeriod: price['services_contract_period'],
2018-09-12 16:42:21 +02:00
fixedExtra: price['fixed_extra'],
servicesExtra: price['services_extra'],
recurrentExtra: price['recurrent_extra']
2018-09-06 23:29:29 +02:00
}));
}
function extractGroups(wcPackageGroups) {
const extractedGroups = {};
Object.keys(wcPackageGroups).forEach(key => {
const group = wcPackageGroups[key];
extractedGroups[key] = {
groupName: group.name,
idGroup: group.id,
options: group.options.map(option => ({
idOptionPackage: option.id,
optionName: option.name,
isDefault: option.default,
shortDescription: option.description,
prices: extractPrices(option.id, option.prices),
})),
};
});
return extractedGroups;
}
2018-08-26 15:41:08 +02:00
export const fromWCPackage = wcPackage => {
return {
id: wcPackage.id,
2018-10-18 13:10:55 +02:00
reference: wcPackage.reference,
2018-08-26 15:41:08 +02:00
image: wcPackage.images[0].src || DEFAULT_PACKAGE_IMG,
hasImage: !!wcPackage.images.length,
2018-08-26 15:41:08 +02:00
name: wcPackage.name,
2018-09-12 16:42:21 +02:00
country: wcPackage.country,
countryCode: wcPackage['country_code'],
currency: wcPackage.currency,
2018-10-03 16:46:41 +02:00
documents: wcPackage.documents ? wcPackage.documents.map(document => {
document.icon = getDocumentIcon(document.extension);
return document;
}) : [],
shortDescription: wcPackage['short_description'],
2018-09-12 16:42:21 +02:00
prices: extractPrices(wcPackage.id, wcPackage.prices || []),
groups: extractGroups(wcPackage.groups || {}),
additionalPackages: wcPackage['additional_packages'] ? wcPackage['additional_packages'].map(additionalPackage =>({
2018-09-06 23:29:29 +02:00
idAdditionalPackage: additionalPackage.id,
packageName: additionalPackage.name,
shortDescription: additionalPackage.description,
prices: extractPrices(additionalPackage.id, additionalPackage.prices)
2018-09-12 16:42:21 +02:00
})) : [],
2018-08-26 15:41:08 +02:00
}
};