rerobe-js-orm 2.4.2 → 2.4.8

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.
Files changed (103) hide show
  1. package/lib/factories/FormState/Address/AddressFormStateFactory.d.ts +1 -1
  2. package/lib/factories/FormState/Address/AddressFormStateFactory.js +1 -1
  3. package/lib/factories/FormState/Merchant/MerchantFormStateFactory.d.ts +1 -1
  4. package/lib/factories/FormState/Merchant/MerchantFormStateFactory.js +1 -1
  5. package/lib/factories/FormState/Order/OrderFormStateFactory.d.ts +1 -1
  6. package/lib/factories/FormState/Order/OrderFormStateFactory.js +1 -1
  7. package/lib/factories/FormState/Order/RefundFormStateFactory.d.ts +5 -0
  8. package/lib/factories/FormState/Order/RefundFormStateFactory.js +10 -0
  9. package/lib/factories/FormState/PickUp/PickUpFormStateFactory.d.ts +1 -1
  10. package/lib/factories/FormState/PickUp/PickUpFormStateFactory.js +1 -1
  11. package/lib/factories/FormState/Product/ProductFormStateFactory.d.ts +2 -2
  12. package/lib/factories/FormState/Product/ProductFormStateFactory.js +3 -3
  13. package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.d.ts +5 -0
  14. package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.js +10 -0
  15. package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.d.ts +1 -1
  16. package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.js +1 -1
  17. package/lib/factories/FormState/User/UserFormStateFactory.d.ts +1 -1
  18. package/lib/factories/FormState/User/UserFormStateFactory.js +1 -1
  19. package/lib/factories/Merchant/MerchantFactory.d.ts +1 -1
  20. package/lib/factories/Merchant/MerchantFromFormState.d.ts +1 -1
  21. package/lib/factories/Merchant/MerchantFromFormState.js +13 -1
  22. package/lib/factories/Order/OrderFactory.d.ts +1 -1
  23. package/lib/factories/Order/OrderFromApp.js +4 -2
  24. package/lib/factories/Order/OrderFromFormState.d.ts +1 -1
  25. package/lib/factories/Order/OrderFromFormState.js +17 -15
  26. package/lib/factories/Order/OrderFromShopifyWebhook.js +126 -10
  27. package/lib/factories/Order/RefundFactory.d.ts +5 -0
  28. package/lib/factories/Order/RefundFactory.js +6 -0
  29. package/lib/factories/Order/RefundFromFormState.d.ts +5 -0
  30. package/lib/factories/Order/RefundFromFormState.js +29 -0
  31. package/lib/factories/PayoutAccount/PayoutAccountFromFormState.d.ts +1 -1
  32. package/lib/factories/Product/ProductFactory.d.ts +1 -1
  33. package/lib/factories/Product/ProductFromFormState.d.ts +1 -1
  34. package/lib/factories/Product/ProductFromFormState.js +29 -3
  35. package/lib/factories/ProductCollection/ProductCollectionFactory.d.ts +5 -0
  36. package/lib/factories/ProductCollection/ProductCollectionFactory.js +6 -0
  37. package/lib/factories/ProductCollection/ProductCollectionFromFormState.d.ts +5 -0
  38. package/lib/factories/ProductCollection/ProductCollectionFromFormState.js +29 -0
  39. package/lib/factories/User/UserFactory.d.ts +1 -1
  40. package/lib/factories/User/UserFromFormState.d.ts +1 -1
  41. package/lib/{models/FormStates → form-states}/Address/AddressFormState.d.ts +0 -0
  42. package/lib/{models/FormStates → form-states}/Address/AddressFormState.js +1 -3
  43. package/lib/{models/FormStates → form-states}/FormState.d.ts +1 -1
  44. package/lib/{models/FormStates → form-states}/FormState.js +1 -1
  45. package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.d.ts +1 -1
  46. package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.js +19 -4
  47. package/lib/form-states/Merchant/WebhookFormState.d.ts +8 -0
  48. package/lib/form-states/Merchant/WebhookFormState.js +49 -0
  49. package/lib/{models/FormStates → form-states}/Merchant/options.d.ts +8 -0
  50. package/lib/{models/FormStates → form-states}/Merchant/options.js +15 -2
  51. package/lib/{models/FormStates → form-states}/Order/OrderFormState.d.ts +2 -2
  52. package/lib/{models/FormStates → form-states}/Order/OrderFormState.js +12 -13
  53. package/lib/form-states/Order/RefundFormState.d.ts +17 -0
  54. package/lib/form-states/Order/RefundFormState.js +122 -0
  55. package/lib/{models/FormStates → form-states}/Order/options.d.ts +0 -0
  56. package/lib/{models/FormStates → form-states}/Order/options.js +1 -1
  57. package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.d.ts +1 -1
  58. package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.js +2 -2
  59. package/lib/{models/FormStates → form-states}/PayoutAccount/options.d.ts +0 -0
  60. package/lib/{models/FormStates → form-states}/PayoutAccount/options.js +0 -0
  61. package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.d.ts +0 -0
  62. package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.js +0 -0
  63. package/lib/{models/FormStates → form-states}/Product/ProductFormState.d.ts +8 -2
  64. package/lib/{models/FormStates → form-states}/Product/ProductFormState.js +24 -4
  65. package/lib/{models/FormStates → form-states}/Product/options.d.ts +0 -0
  66. package/lib/form-states/Product/options.js +3455 -0
  67. package/lib/form-states/ProductCollection/ProductCollectionFormState.d.ts +12 -0
  68. package/lib/form-states/ProductCollection/ProductCollectionFormState.js +80 -0
  69. package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.d.ts +0 -0
  70. package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.js +1 -1
  71. package/lib/{models/FormStates → form-states}/User/UserFormState.d.ts +1 -1
  72. package/lib/{models/FormStates → form-states}/User/UserFormState.js +2 -2
  73. package/lib/helpers/AnalyticsHelpers.js +3 -3
  74. package/lib/helpers/OrderHelpers.d.ts +5 -0
  75. package/lib/helpers/OrderHelpers.js +107 -0
  76. package/lib/helpers/ProductCollectionHelpers.d.ts +4 -0
  77. package/lib/helpers/ProductCollectionHelpers.js +27 -0
  78. package/lib/helpers/ReRobeProductHelpers.d.ts +6 -0
  79. package/lib/helpers/ReRobeProductHelpers.js +221 -41
  80. package/lib/helpers/Utilities.d.ts +1 -0
  81. package/lib/helpers/Utilities.js +10 -0
  82. package/lib/index.d.ts +7 -3
  83. package/lib/index.js +11 -3
  84. package/lib/models/Merchant.d.ts +16 -0
  85. package/lib/models/Merchant.js +40 -0
  86. package/lib/models/Order.d.ts +4 -0
  87. package/lib/models/Order.js +7 -1
  88. package/lib/models/Product.d.ts +1 -0
  89. package/lib/models/Product.js +37 -3
  90. package/lib/models/ProductCollection.d.ts +15 -0
  91. package/lib/models/ProductCollection.js +34 -0
  92. package/lib/models/Refund.d.ts +13 -0
  93. package/lib/models/Refund.js +40 -0
  94. package/lib/models/User.js +7 -2
  95. package/lib/types/merchant-types.d.ts +46 -13
  96. package/lib/types/product-collection-types.d.ts +63 -0
  97. package/lib/types/product-collection-types.js +13 -0
  98. package/lib/types/rerobe-order-types.d.ts +88 -26
  99. package/lib/types/rerobe-product-types.d.ts +30 -0
  100. package/lib/types/rerobe-user-types.d.ts +27 -21
  101. package/lib/types/rerobe-user-types.js +0 -1
  102. package/package.json +3 -2
  103. package/lib/models/FormStates/Product/options.js +0 -3453
@@ -0,0 +1,12 @@
1
+ import FormState from '../FormState';
2
+ import ProductCollection from '../../models/ProductCollection';
3
+ export default class ProductCollectionFormState extends FormState {
4
+ fields: ProductCollectionFormFields;
5
+ props: CompleteProductCollection;
6
+ opts: {
7
+ tagOptions: string[];
8
+ };
9
+ constructor(props?: any, opts?: any);
10
+ createProductCollection(): ProductCollection;
11
+ private fieldFactory;
12
+ }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const FormState_1 = require("../FormState");
4
+ const ProductCollection_1 = require("../../models/ProductCollection");
5
+ const ProductCollectionFromFormState_1 = require("../../factories/ProductCollection/ProductCollectionFromFormState");
6
+ // @ts-ignore
7
+ const lodash_1 = require("lodash");
8
+ class ProductCollectionFormState extends FormState_1.default {
9
+ constructor(props, opts) {
10
+ super();
11
+ this.props = new ProductCollection_1.default(props).toObj();
12
+ this.opts = opts;
13
+ this.fields.preTitle = this.fieldFactory('textInput', 'preTitle');
14
+ this.fields.title = this.fieldFactory('textInput', 'title');
15
+ this.fields.subTitle = this.fieldFactory('textInput', 'subTitle');
16
+ this.fields.description = this.fieldFactory('textInput', 'description');
17
+ this.fields.type = this.fieldFactory('singleSelect', 'type');
18
+ this.fields.imgUrl = this.fieldFactory('textInput', 'imgUrl');
19
+ this.fields.refinements = this.fieldFactory('singleSelect', 'refinements');
20
+ this.fields.tags = this.fieldFactory('multiSelect', 'tags', []);
21
+ this.fields.collectionId = this.fieldFactory('textInput', 'collectionId');
22
+ }
23
+ createProductCollection() {
24
+ const productCollectionFactory = new ProductCollectionFromFormState_1.default();
25
+ return productCollectionFactory.createProductCollection(this);
26
+ }
27
+ fieldFactory(fieldType, fieldKey, fieldOptions) {
28
+ let options = fieldOptions || [];
29
+ if (fieldType === 'singleSelect') {
30
+ const selectedValue = this.props[fieldKey] || '';
31
+ const valid = !!this.props[fieldKey];
32
+ const onChangeHandler = (val) => this.singleSelectChangeHandler(fieldKey, val);
33
+ return {
34
+ options,
35
+ selectedValue,
36
+ valid,
37
+ onChangeHandler,
38
+ };
39
+ }
40
+ if (fieldType === 'textInput') {
41
+ const inputValue = this.props[fieldKey] || '';
42
+ const valid = !!this.props[fieldKey];
43
+ let onChangeHandler = (val) => this.textInputChangeHandler(fieldKey, String(val));
44
+ if (fieldKey === 'collectionId') {
45
+ onChangeHandler = (val) => this.textInputChangeHandler(fieldKey, lodash_1.camelCase(String(val)));
46
+ }
47
+ return {
48
+ inputValue,
49
+ valid,
50
+ onChangeHandler,
51
+ };
52
+ }
53
+ if (fieldType === 'multiSelect') {
54
+ let selectedValues = [];
55
+ let valid = true;
56
+ const onChangeHandler = (val) => this.multiSelectChangeHandler(fieldKey, val);
57
+ if (fieldKey === 'tags') {
58
+ if (this.props.tags) {
59
+ if (Array.isArray(this.props.tags)) {
60
+ selectedValues = this.props.tags;
61
+ }
62
+ }
63
+ if (this.opts && this.opts.tagOptions && this.opts.tagOptions.length > 0) {
64
+ options = this.utilities.uniqObjArray([...options, ...this.opts.tagOptions.map((t) => ({ label: t, value: t }))], 'value');
65
+ }
66
+ valid = true;
67
+ }
68
+ return {
69
+ options,
70
+ selectedValues,
71
+ valid,
72
+ onChangeHandler,
73
+ };
74
+ }
75
+ return {
76
+ valid: false,
77
+ };
78
+ }
79
+ }
80
+ exports.default = ProductCollectionFormState;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const FormState_1 = require("../FormState");
4
- const Product_1 = require("../../../models/Product");
4
+ const Product_1 = require("../../models/Product");
5
5
  class SellRequestFormState extends FormState_1.default {
6
6
  constructor(sellRequest) {
7
7
  super();
@@ -1,5 +1,5 @@
1
1
  import FormState from '../FormState';
2
- import User from '../../User';
2
+ import User from '../../models/User';
3
3
  export default class UserFormState extends FormState {
4
4
  fields: UserFormFields;
5
5
  props: UserAttributes;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const FormState_1 = require("../FormState");
4
- const User_1 = require("../../User");
5
- const UserFromFormState_1 = require("../../../factories/User/UserFromFormState");
4
+ const User_1 = require("../../models/User");
5
+ const UserFromFormState_1 = require("../../factories/User/UserFromFormState");
6
6
  class UserFormState extends FormState_1.default {
7
7
  constructor(props) {
8
8
  super();
@@ -13,16 +13,16 @@ class AnalyticsHelpers {
13
13
  id: documentId,
14
14
  address: prepareAddressTraits(addresses),
15
15
  title,
16
- createdAt: prepareCreatedOrUpdatedAt(createdAt)
16
+ createdAt: prepareCreatedOrUpdatedAt(createdAt),
17
17
  };
18
18
  // Step 2. Pass other user attributes to traits obj
19
19
  const traitsObj = {
20
20
  updatedAt: prepareCreatedOrUpdatedAt(updatedAt),
21
- isSeller
21
+ isSeller,
22
22
  };
23
23
  return {
24
24
  userId: documentId || '',
25
- traits: Object.assign(Object.assign({}, reservedTraitsObj), traitsObj)
25
+ traits: Object.assign(Object.assign({}, reservedTraitsObj), traitsObj),
26
26
  };
27
27
  }
28
28
  }
@@ -4,4 +4,9 @@ export default class OrderHelpers {
4
4
  getPaymentTypeUsingTags(tags: string | null | undefined): string | null;
5
5
  getSalesChannelUsingTags(tags: string | null | undefined): string | null;
6
6
  buildLineItemFromProduct(product: CompleteProduct, currencyCode: string, quantity?: number): ReRobeOrderLineItem;
7
+ toFixedPointPrice(price: number | string): string;
8
+ getAmountSumByField(array: OrderRefund[], fieldKey: string): number;
9
+ getOrderInfoWithRefundsAndFulfillments(order: CompleteOrder): OrderWithRefundsAndFulfillmentsInfoObj;
10
+ getUpdatedOrderObjWithRefunds(orderObj: CompleteOrder, refundObj: OrderRefund): CompleteOrder;
11
+ getUpdatedOrderObjWithFulfillment(orderObj: CompleteOrder, fulfillmentObj: FulfillmentAdmin, totalUnfulfilledItems: number): CompleteOrder;
7
12
  }
@@ -77,5 +77,112 @@ class OrderHelpers {
77
77
  productId: product.documentId,
78
78
  };
79
79
  }
80
+ toFixedPointPrice(price) {
81
+ return Number(price).toFixed(2);
82
+ }
83
+ getAmountSumByField(array, fieldKey) {
84
+ return array.map((item) => Number(item[fieldKey].amount)).reduce((a, b) => a + b, 0);
85
+ }
86
+ getOrderInfoWithRefundsAndFulfillments(order) {
87
+ var _a;
88
+ const orderRefunds = order.refunds ? [...order.refunds] : [];
89
+ const orderFulfillment = order.fulfillments ? [...order.fulfillments] : [];
90
+ const preparedOrder = {
91
+ documentId: order.documentId || '',
92
+ name: order.name || '',
93
+ currencyCode: order.currencyCode,
94
+ fulfillmentStatus: order.fulfillmentStatus || '',
95
+ totalDiscount: order.totalDiscount ? Object.assign({}, order.totalDiscount) : { amount: 0 },
96
+ totalTax: order.totalTax ? Object.assign({}, order.totalTax) : { amount: 0 },
97
+ subtotalPrice: order.subtotalPrice ? Object.assign({}, order.subtotalPrice) : { amount: 0 },
98
+ totalRefunded: order.totalRefunded ? Object.assign({}, order.totalRefunded) : { amount: 0 },
99
+ totalShippingPrice: order.totalShippingPrice ? Object.assign({}, order.totalShippingPrice) : { amount: 0 },
100
+ totalPrice: order.totalPrice ? Object.assign({}, order.totalPrice) : { amount: 0 },
101
+ activeLineItems: !order.lineItems || !order.lineItems.length
102
+ ? []
103
+ : order.lineItems.map((item) => (Object.assign(Object.assign({}, item), { unfulfilledQuantity: Number(item.quantity), fulfilledQuantity: 0, refundedQuantity: 0, canceledQuantity: 0 }))),
104
+ discountType: 'Custom discount',
105
+ shippingRate: 'Custom shipping rate',
106
+ unfulfilledItems: [],
107
+ fulfilledItems: [],
108
+ refundedItems: [],
109
+ canceledItems: [],
110
+ refunds: orderRefunds,
111
+ };
112
+ if (!preparedOrder.activeLineItems.length) {
113
+ return preparedOrder;
114
+ }
115
+ if (orderFulfillment.length) {
116
+ preparedOrder.activeLineItems = preparedOrder.activeLineItems.map((item) => {
117
+ const currentItem = item.productId;
118
+ const fulfilledWithRefundedQuantity = orderFulfillment.reduce((result, { fulfillmentLineItems }) => {
119
+ if (fulfillmentLineItems.length) {
120
+ const fulfillmentProdItem = fulfillmentLineItems.find((fli) => fli.lineItem.productId === currentItem);
121
+ if (fulfillmentProdItem) {
122
+ result = result + Number(fulfillmentProdItem.quantity);
123
+ }
124
+ }
125
+ return result;
126
+ }, 0);
127
+ return Object.assign(Object.assign({}, item), { unfulfilledQuantity: item.unfulfilledQuantity - fulfilledWithRefundedQuantity, fulfilledQuantity: fulfilledWithRefundedQuantity });
128
+ });
129
+ preparedOrder.fulfilledItems = preparedOrder.activeLineItems.filter(({ fulfilledQuantity }) => fulfilledQuantity > 0);
130
+ }
131
+ preparedOrder.unfulfilledItems = preparedOrder.activeLineItems.filter(({ unfulfilledQuantity }) => unfulfilledQuantity > 0);
132
+ if (!orderRefunds.length) {
133
+ return preparedOrder;
134
+ }
135
+ preparedOrder.totalDiscount.amount =
136
+ Number(order.totalDiscount.amount) - this.getAmountSumByField(orderRefunds, 'refundDiscount');
137
+ preparedOrder.subtotalPrice.amount =
138
+ Number(order.subtotalPrice.amount) - this.getAmountSumByField(orderRefunds, 'subtotalRefunded');
139
+ preparedOrder.totalShippingPrice.amount =
140
+ Number(((_a = order.totalShippingPrice) === null || _a === void 0 ? void 0 : _a.amount) || 0) - this.getAmountSumByField(orderRefunds, 'refundShipping');
141
+ preparedOrder.totalPrice.amount =
142
+ Number(order.totalPrice.amount) - this.getAmountSumByField(orderRefunds, 'totalRefunded');
143
+ const lineItemsWithQuantityInfo = preparedOrder.activeLineItems.map((item) => {
144
+ const currentItem = item.productId;
145
+ const refundedAndCanceledQuantity = orderRefunds.reduce((result, { refundLineItems }) => {
146
+ if (refundLineItems.length) {
147
+ const refundProdItem = refundLineItems.find(({ lineItem }) => lineItem.productId === currentItem);
148
+ if (refundProdItem) {
149
+ result.refundedQuantity = result.refundedQuantity + Number(refundProdItem.quantityRefund);
150
+ result.canceledQuantity = result.canceledQuantity + Number(refundProdItem.quantityCancel);
151
+ }
152
+ }
153
+ return result;
154
+ }, { refundedQuantity: 0, canceledQuantity: 0 });
155
+ // 3. fulfilledQuantity = (sum of order.fulfillment) - refundedQuantity
156
+ // 4. quantity = unfulfilled quantity (prev quantity - sum of order.fulfillment) - cancelled
157
+ return Object.assign(Object.assign(Object.assign({}, item), { fulfilledQuantity: Number(item.fulfilledQuantity) - refundedAndCanceledQuantity.refundedQuantity, unfulfilledQuantity: Number(item.unfulfilledQuantity) - refundedAndCanceledQuantity.canceledQuantity }), refundedAndCanceledQuantity);
158
+ });
159
+ preparedOrder.activeLineItems = lineItemsWithQuantityInfo.filter(({ unfulfilledQuantity, fulfilledQuantity }) => unfulfilledQuantity + fulfilledQuantity > 0);
160
+ preparedOrder.unfulfilledItems = lineItemsWithQuantityInfo.filter(({ unfulfilledQuantity }) => unfulfilledQuantity > 0);
161
+ preparedOrder.fulfilledItems = lineItemsWithQuantityInfo.filter(({ fulfilledQuantity }) => fulfilledQuantity > 0);
162
+ preparedOrder.refundedItems = lineItemsWithQuantityInfo.filter(({ refundedQuantity }) => refundedQuantity > 0);
163
+ preparedOrder.canceledItems = lineItemsWithQuantityInfo.filter(({ canceledQuantity }) => canceledQuantity > 0);
164
+ return preparedOrder;
165
+ }
166
+ getUpdatedOrderObjWithRefunds(orderObj, refundObj) {
167
+ const updatedOrder = Object.assign(Object.assign({}, orderObj), { refunds: orderObj.refunds ? [...orderObj.refunds] : [], totalRefunded: orderObj.totalRefunded ? Object.assign({}, orderObj.totalRefunded) : { amount: 0 } });
168
+ const totalRefundedAmount = Number(updatedOrder.totalRefunded.amount) + Number(refundObj.totalRefunded.amount);
169
+ updatedOrder.refunds = [...updatedOrder.refunds, Object.assign({}, refundObj)];
170
+ updatedOrder.totalRefunded.amount = Number(totalRefundedAmount).toFixed(2);
171
+ updatedOrder.financialStatus =
172
+ Number(orderObj.totalPrice.amount) - totalRefundedAmount > 0 ? 'PARTIALLY_REFUNDED' : 'REFUNDED';
173
+ return updatedOrder;
174
+ }
175
+ getUpdatedOrderObjWithFulfillment(orderObj, fulfillmentObj, totalUnfulfilledItems) {
176
+ const updatedOrder = Object.assign(Object.assign({}, orderObj), { fulfillments: orderObj.fulfillments ? [...orderObj.fulfillments] : [] });
177
+ const fulfilledItemsQuantity = !fulfillmentObj.fulfillmentLineItems.length
178
+ ? 0
179
+ : fulfillmentObj.fulfillmentLineItems
180
+ .map(({ quantity }) => Number(quantity))
181
+ .reduce((a, b) => a + b, 0);
182
+ updatedOrder.fulfillments = [...updatedOrder.fulfillments, fulfillmentObj];
183
+ updatedOrder.fulfillmentStatus =
184
+ totalUnfulfilledItems - fulfilledItemsQuantity > 0 ? 'PARTIALLY_FULFILLED' : 'FULFILLED';
185
+ return updatedOrder;
186
+ }
80
187
  }
81
188
  exports.default = OrderHelpers;
@@ -0,0 +1,4 @@
1
+ export default class ProductCollectionHelpers {
2
+ getFiltersByCollectionConditions(collectionRefinementsVal: ProductRefinements): FiltersObj;
3
+ getCollectionRefinementsFromFilters(filtersList: FiltersObj): ProductRefinements;
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ProductCollectionHelpers {
4
+ getFiltersByCollectionConditions(collectionRefinementsVal) {
5
+ if (!collectionRefinementsVal && !Object.keys(collectionRefinementsVal).length) {
6
+ return {};
7
+ }
8
+ return Object.keys(collectionRefinementsVal).reduce((result, key) => {
9
+ const keyName = key.replace('Refinement', '');
10
+ result[keyName] = collectionRefinementsVal[key];
11
+ return result;
12
+ }, {});
13
+ }
14
+ getCollectionRefinementsFromFilters(filtersList) {
15
+ if (!filtersList && !Object.keys(filtersList).length) {
16
+ return {};
17
+ }
18
+ return Object.keys(filtersList).reduce((result, key) => {
19
+ if (!filtersList[key].length) {
20
+ return result;
21
+ }
22
+ result[`${key}Refinement`] = [...filtersList[key]];
23
+ return result;
24
+ }, {});
25
+ }
26
+ }
27
+ exports.default = ProductCollectionHelpers;
@@ -7,10 +7,16 @@ export default class ReRobeProductHelpers {
7
7
  static sizeCommentPretty(sizeComment: string): string;
8
8
  static getSizeLabel(clothingSize: string[], shoeSize: string, jeanSize: string): string;
9
9
  static generateArrForDetailsBulletList(productObj: CompleteProduct): string[];
10
+ static autoCreateFullDescriptionHTML(productObj: CompleteProduct, customHeading?: string): string;
11
+ static autoCreateFullSwedishDescriptionForTraderaHTML(productDescription: string, merchantName?: string): string;
10
12
  static prepareProductForMutation(productObj: CompleteProduct, mediaInputArr?: {
11
13
  originalSource: string;
12
14
  }[]): CompleteProduct;
15
+ static createTimestampsForStates(productObj: CompleteProduct): {
16
+ [key: string]: number;
17
+ };
13
18
  static getSubtitle(title: string): string;
14
19
  static sizeFinder(sizeLabel: string, sizeToMatch: string): boolean;
20
+ static convertReRobeSizeToStandardSize(productObj: CompleteProduct): string;
15
21
  static buildLineItem(productObj: CompleteProduct, quantity?: number): ProductLineItem;
16
22
  }