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,
|
|
|
|
|
reference: wcPackage.slug,
|
|
|
|
|
image: wcPackage.images[0].src || DEFAULT_PACKAGE_IMG,
|
2018-08-29 07:56:37 +02:00
|
|
|
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,
|
|
|
|
|
documents: wcPackage.documents ? wcPackage.documents.map(document => ({
|
|
|
|
|
idDocument: document.id,
|
|
|
|
|
documentName: document.name,
|
|
|
|
|
extension: document.extension,
|
|
|
|
|
idPackage: wcPackage.id,
|
|
|
|
|
})) : [],
|
2018-08-26 15:41:08 +02:00
|
|
|
shortDescription: wcPackage.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
|
|
|
}
|
|
|
|
|
};
|