Skip to content

Commit

Permalink
fix(products): refactor product values processing
Browse files Browse the repository at this point in the history
  • Loading branch information
sanjithkumar017 committed May 19, 2021
1 parent d548361 commit 2f6dab4
Showing 1 changed file with 28 additions and 57 deletions.
85 changes: 28 additions & 57 deletions src/modules/products/utils/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,74 +6,48 @@ export const getProductFields = ({
showSwatches,
swatchAttributesMap
}) => {
const attributesMapper = {
TITLE: 'title',
UNIQUE_ID: 'uniqueId',
PRODUCT_URL: 'productUrl',
IMAGE_URL: 'imageUrl',
PRICE: 'price',
SELLING_PRICE: 'sellingPrice'
};
const UNIQUE_ID = 'uniqueId';

const variantAttributesMapper = {
TITLE: 'title',
UNIQUE_ID: 'uniqueId',
PRODUCT_URL: 'productUrl',
IMAGE_URL: 'imageUrl',
PRICE: 'price',
SELLING_PRICE: 'sellingPrice',
SWATCH: 'swatchImageUrl',
COLOR: 'color',
SIZE: 'size'
};

const UNIQUE_ID = attributesMapper['attributesMapper'] || 'uniqueId';
const parentUniqueIdKey = attributesMap[UNIQUE_ID] || 'uniqueId';

let productValues = {};
let variants = [];
let swatches = [];
productValues[UNIQUE_ID] = product[UNIQUE_ID];
for (const key in attributesMapper) {
let mappedKey = attributesMapper[key];
productValues[UNIQUE_ID] = product[parentUniqueIdKey];
for (const key of Object.keys(attributesMap)) {
if (product['relevantDocument'] === 'variant' && showVariants) {
mappedKey = variantAttributesMapper[key];
if (key === 'IMAGE_URL') {
const value =
product['variants'][0][variantAttributesMap[mappedKey]];
productValues[mappedKey] =
if (key === 'imageUrl') {
const value = product['variants'][0][key];
productValues[key] =
Array.isArray(value) && value.length ? value[0] : value;
} else {
productValues[mappedKey] =
product['variants'][0][variantAttributesMap[mappedKey]];
productValues[key] = product['variants'][0][key];
}
} else if (key === 'IMAGE_URL') {
const value = product[attributesMap[mappedKey]];
productValues[mappedKey] =
} else if (key === 'imageUrl') {
const value = product[attributesMap[key]];
productValues[key] =
Array.isArray(value) && value.length ? value[0] : value;
} else {
productValues[mappedKey] = product[attributesMap[mappedKey]];
productValues[key] = product[attributesMap[key]];
}
}

productValues = { ...product, ...productValues };

// we need to iterate variants array
if (showVariants) {
const variantUniqueIdKey =
variantAttributesMap[UNIQUE_ID] || 'uniqueId';
variants = product['variants'].map((variant) => {
let variantValues = {};
variantValues[variantAttributesMapper[UNIQUE_ID]] =
product[
variantAttributesMap[[variantAttributesMapper[UNIQUE_ID]]]
];
for (const key in variantAttributesMapper) {
const mappedKey = variantAttributesMapper[key];
if (key === 'IMAGE_URL') {
const value = variant[variantAttributesMap[mappedKey]];
variantValues[mappedKey] =
variantValues[UNIQUE_ID] = variant[variantUniqueIdKey];
for (const key of Object.keys(variantAttributesMap)) {
if (key === 'imageUrl') {
const value = variant[variantAttributesMap[key]];
variantValues[key] =
Array.isArray(value) && value.length ? value[0] : value;
} else {
variantValues[mappedKey] =
variant[variantAttributesMap[mappedKey]];
variantValues[key] = variant[variantAttributesMap[key]];
}
}
return { ...variant, ...variantValues };
Expand All @@ -84,23 +58,20 @@ export const getProductFields = ({
if (showSwatches) {
swatches = product['variants'].map((variant, idx) => {
const swatchDetails = {};
swatchDetails[variantAttributesMapper.UNIQUE_ID] =
variant[
variantAttributesMap[variantAttributesMapper.UNIQUE_ID]
];
swatchDetails[variantAttributesMapper.SWATCH] =
variant[swatchAttributesMap[variantAttributesMapper.SWATCH]];
const variantUniqueIdKey =
variantAttributesMap[UNIQUE_ID] || 'uniqueId';
swatchDetails[UNIQUE_ID] = variant[variantUniqueIdKey];
swatchDetails['swatchImageUrl'] =
variant[swatchAttributesMap['swatchImageUrl']];

const variantValues = {};
for (const key in swatchAttributesMap) {
const mappedKey = swatchAttributesMap[key];

for (const key of Object.keys(swatchAttributesMap)) {
if (key === 'imageUrl') {
const value = variant[mappedKey];
const value = variant[swatchAttributesMap[key]];
variantValues[key] =
Array.isArray(value) && value.length ? value[0] : value;
} else {
variantValues[key] = variant[mappedKey];
variantValues[key] = variant[swatchAttributesMap[key]];
}
}

Expand Down

0 comments on commit 2f6dab4

Please sign in to comment.