@nuskin/cs-product-lib 1.1.2 → 1.1.3-brw-3319.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/csProduct.js +68 -22
package/package.json
CHANGED
package/src/csProduct.js
CHANGED
|
@@ -83,6 +83,21 @@ const csProduct = (props) => {
|
|
|
83
83
|
return props
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
const badLocaleMap = (locale) => {
|
|
87
|
+
if (typeof locale !== 'string') {
|
|
88
|
+
return locale
|
|
89
|
+
}
|
|
90
|
+
// Change known changed locales to their new locale
|
|
91
|
+
switch (locale.toLowerCase()) {
|
|
92
|
+
case 'id-in' :
|
|
93
|
+
return 'ID-id'
|
|
94
|
+
case 'hu-hu':
|
|
95
|
+
return 'HU-hu'
|
|
96
|
+
default:
|
|
97
|
+
return locale
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
86
101
|
const removeInvalidVariants = async (products = [], locale, translations) => {
|
|
87
102
|
const validSkus = []
|
|
88
103
|
for (const product of products) {
|
|
@@ -405,6 +420,7 @@ const csProduct = (props) => {
|
|
|
405
420
|
* @returns
|
|
406
421
|
*/
|
|
407
422
|
const getBundles = async (ids, locale) => {
|
|
423
|
+
locale = badLocaleMap(locale)
|
|
408
424
|
if (!Array.isArray(ids)) {
|
|
409
425
|
ids = [ids]
|
|
410
426
|
}
|
|
@@ -417,17 +433,19 @@ const csProduct = (props) => {
|
|
|
417
433
|
{"sku_kit":{"$in_query":{"uid":{"$in": ${idString}}}}}
|
|
418
434
|
]}`
|
|
419
435
|
const products = await queryProducts(query, locale)
|
|
420
|
-
if (products.length > 0) {
|
|
436
|
+
if (Array.isArray(products) && products.length > 0) {
|
|
421
437
|
const translations = await getTranslations(locale)
|
|
422
438
|
await formatKit(products, locale, translations)
|
|
423
439
|
await removeInvalidVariants(products, locale, translations)
|
|
424
440
|
return formatProductWithSchema(products)
|
|
425
|
-
} else {
|
|
426
|
-
return []
|
|
427
441
|
}
|
|
442
|
+
const errorResponse = products.response || {}
|
|
443
|
+
const responseData = errorResponse.data || {}
|
|
444
|
+
return [{error: {message: products.message, name: products.name, status: errorResponse.status, errors: [`${responseData.error_code}: ${responseData.error_message}`]}}]
|
|
428
445
|
}
|
|
429
446
|
|
|
430
447
|
const getProductsBySku = async (skus, locale) => {
|
|
448
|
+
locale = badLocaleMap(locale)
|
|
431
449
|
if (!Array.isArray(skus)) {
|
|
432
450
|
skus = [skus]
|
|
433
451
|
}
|
|
@@ -436,17 +454,23 @@ const csProduct = (props) => {
|
|
|
436
454
|
)}}}}}`
|
|
437
455
|
|
|
438
456
|
let products = await queryProducts(query, locale)
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
product
|
|
444
|
-
|
|
457
|
+
if (Array.isArray(products)) {
|
|
458
|
+
const translations = await getTranslations(locale)
|
|
459
|
+
await formatKit(products, locale, translations)
|
|
460
|
+
await removeInvalidVariants(products, locale, translations)
|
|
461
|
+
for (const product of products) {
|
|
462
|
+
product.skus = skus
|
|
463
|
+
product.locale = locale
|
|
464
|
+
}
|
|
465
|
+
return formatProductWithSchema(products)
|
|
445
466
|
}
|
|
446
|
-
|
|
467
|
+
const errorResponse = products.response || {}
|
|
468
|
+
const responseData = errorResponse.data || {}
|
|
469
|
+
return [{error: {message: products.message, name: products.name, status: errorResponse.status, errors: [`${responseData.error_code}: ${responseData.error_message}`]}}]
|
|
447
470
|
}
|
|
448
471
|
|
|
449
472
|
const getProductsByGlobalId = async (ids, locale) => {
|
|
473
|
+
locale = badLocaleMap(locale)
|
|
450
474
|
if (!Array.isArray(ids)) {
|
|
451
475
|
ids = [ids]
|
|
452
476
|
}
|
|
@@ -455,13 +479,19 @@ const csProduct = (props) => {
|
|
|
455
479
|
)}}}}}`
|
|
456
480
|
|
|
457
481
|
let products = await queryProducts(query, locale)
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
482
|
+
if (Array.isArray(products)) {
|
|
483
|
+
const translations = await getTranslations(locale)
|
|
484
|
+
await formatKit(products, locale, translations)
|
|
485
|
+
await removeInvalidVariants(products, locale, translations)
|
|
486
|
+
return formatProductWithSchema(products)
|
|
487
|
+
}
|
|
488
|
+
const errorResponse = products.response || {}
|
|
489
|
+
const responseData = errorResponse.data || {}
|
|
490
|
+
return [{error: {message: products.message, name: products.name, status: errorResponse.status, errors: [`${responseData.error_code}: ${responseData.error_message}`]}}]
|
|
462
491
|
}
|
|
463
492
|
|
|
464
493
|
const getProductsBySlug = async (slugs, locale) => {
|
|
494
|
+
locale = badLocaleMap(locale)
|
|
465
495
|
if (!Array.isArray(slugs)) {
|
|
466
496
|
slugs = [slugs]
|
|
467
497
|
}
|
|
@@ -470,25 +500,37 @@ const csProduct = (props) => {
|
|
|
470
500
|
)}}}`
|
|
471
501
|
|
|
472
502
|
const products = await queryProducts(query, locale)
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
503
|
+
if (Array.isArray(products)) {
|
|
504
|
+
const translations = await getTranslations(locale)
|
|
505
|
+
await formatKit(products, locale, translations)
|
|
506
|
+
await removeInvalidVariants(products, locale, translations)
|
|
507
|
+
return formatProductWithSchema(products)
|
|
508
|
+
}
|
|
509
|
+
const errorResponse = products.response || {}
|
|
510
|
+
const responseData = errorResponse.data || {}
|
|
511
|
+
return [{error: {message: products.message, name: products.name, status: errorResponse.status, errors: [`${responseData.error_code}: ${responseData.error_message}`]}}]
|
|
477
512
|
}
|
|
478
513
|
|
|
479
514
|
const getProductsByUID = async (ids, locale) => {
|
|
515
|
+
locale = badLocaleMap(locale)
|
|
480
516
|
if (!Array.isArray(ids)) {
|
|
481
517
|
ids = [ids]
|
|
482
518
|
}
|
|
483
519
|
const query = `{"uid": {"$in": ${helpers?.arrayString(ids)}}}`
|
|
484
520
|
let products = await queryProducts(query, locale)
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
521
|
+
if (Array.isArray(products)) {
|
|
522
|
+
const translations = await getTranslations(locale)
|
|
523
|
+
await formatKit(products, locale, translations)
|
|
524
|
+
await removeInvalidVariants(products, locale, translations)
|
|
525
|
+
return formatProductWithSchema(products)
|
|
526
|
+
}
|
|
527
|
+
const errorResponse = products.response || {}
|
|
528
|
+
const responseData = errorResponse.data || {}
|
|
529
|
+
return [{error: {message: products.message, name: products.name, status: errorResponse.status, errors: [`${responseData.error_code}: ${responseData.error_message}`]}}]
|
|
489
530
|
}
|
|
490
531
|
|
|
491
532
|
const getTranslations = async (locale) => {
|
|
533
|
+
locale = badLocaleMap(locale)
|
|
492
534
|
const translations = await getEntriesByQuery({
|
|
493
535
|
contentType: 'strings_product_detail_page',
|
|
494
536
|
locale,
|
|
@@ -499,6 +541,7 @@ const csProduct = (props) => {
|
|
|
499
541
|
}
|
|
500
542
|
|
|
501
543
|
const getProductTranslations = async (locale) => {
|
|
544
|
+
locale = badLocaleMap(locale)
|
|
502
545
|
const translations = await getTranslations(locale)
|
|
503
546
|
const formattedTranslations = translations.map((translate) =>
|
|
504
547
|
formatTranslations(translate)
|
|
@@ -510,6 +553,7 @@ const csProduct = (props) => {
|
|
|
510
553
|
contentType,
|
|
511
554
|
includes = []
|
|
512
555
|
) => {
|
|
556
|
+
locale = badLocaleMap(locale)
|
|
513
557
|
const translations = await getEntriesByQuery({
|
|
514
558
|
contentType,
|
|
515
559
|
locale,
|
|
@@ -520,6 +564,7 @@ const csProduct = (props) => {
|
|
|
520
564
|
}
|
|
521
565
|
|
|
522
566
|
const getCategoryPageTranslations = async (locale) => {
|
|
567
|
+
locale = badLocaleMap(locale)
|
|
523
568
|
const translations = await getTranslationsForCategoryPage(
|
|
524
569
|
locale,
|
|
525
570
|
'strings_category_page',
|
|
@@ -532,6 +577,7 @@ const csProduct = (props) => {
|
|
|
532
577
|
}
|
|
533
578
|
|
|
534
579
|
const publishedProducts = async ({ locale, skip = 0, limit = 50 } = {}) => {
|
|
580
|
+
locale = badLocaleMap(locale)
|
|
535
581
|
let products = await getEntriesByQuery({
|
|
536
582
|
locale,
|
|
537
583
|
start: skip,
|