rerobe-js-orm 2.4.59 → 2.4.61

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.
@@ -7,17 +7,14 @@ class WebhookFormState extends FormState_1.default {
7
7
  super();
8
8
  this.props = {
9
9
  event: (props === null || props === void 0 ? void 0 : props.event) || '',
10
- httpMethod: (props === null || props === void 0 ? void 0 : props.httpMethod) || '',
11
10
  callBackUrl: (props === null || props === void 0 ? void 0 : props.callBackUrl) || '',
12
11
  };
13
12
  this.fields.event = this.fieldFactory('singleSelect', 'event', options_1.webhookKeyOptions);
14
- this.fields.httpMethod = this.fieldFactory('singleSelect', 'httpMethod', options_1.httpRequestMethodOptions);
15
13
  this.fields.callBackUrl = this.fieldFactory('textInput', 'callBackUrl');
16
14
  }
17
15
  toObj() {
18
16
  return {
19
17
  event: this.fields.event.selectedValue,
20
- httpMethod: this.fields.httpMethod.selectedValue,
21
18
  callBackUrl: this.fields.callBackUrl.inputValue,
22
19
  };
23
20
  }
@@ -7,10 +7,13 @@ 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(productObj: CompleteProduct, merchantName?: string): string;
10
12
  static prepareProductForMutation(productObj: CompleteProduct, mediaInputArr?: {
11
13
  originalSource: string;
12
14
  }[]): CompleteProduct;
13
15
  static getSubtitle(title: string): string;
14
16
  static sizeFinder(sizeLabel: string, sizeToMatch: string): boolean;
17
+ static convertReRobeSizeToStandardSize(productObj: CompleteProduct): string;
15
18
  static buildLineItem(productObj: CompleteProduct, quantity?: number): ProductLineItem;
16
19
  }
@@ -69,6 +69,7 @@ class ReRobeProductHelpers {
69
69
  }
70
70
  return '';
71
71
  }
72
+ // ToDo: refactor
72
73
  static getSizeLabel(clothingSize, shoeSize, jeanSize) {
73
74
  let sizeLabel = 'NA';
74
75
  if (clothingSize && clothingSize.length > 0 && clothingSize[0].trim()) {
@@ -98,6 +99,98 @@ class ReRobeProductHelpers {
98
99
  ];
99
100
  return descriptionArr.filter((d) => d);
100
101
  }
102
+ static autoCreateFullDescriptionHTML(productObj, customHeading) {
103
+ const productStyle = productObj.productStyle.join(', ');
104
+ const size = this.getSizeLabel(productObj.clothingSize, productObj.shoeSize, productObj.jeanSize);
105
+ const sizeComment = productObj.sizeComment;
106
+ const color = productObj.color;
107
+ const productRemarks = productObj.productRemarks;
108
+ const condition = productObj.condition;
109
+ const priceNew = productObj.purchasePrice;
110
+ const yearPurchased = productObj.yearPurchased;
111
+ const materials = this.materialCompJoinedString();
112
+ const measurements = this.measurementsJoinedString(productObj.measurements);
113
+ const fit = options_1.sizeCommentOptions.filter((option) => option.value === sizeComment)[0].label;
114
+ const descriptionObj = {
115
+ title: customHeading ? `<p>${customHeading}</p>\n` : 'REMOVE_ME',
116
+ line0: `<ul>`,
117
+ line1: size ? `\n<li>Size: ${size}</li>` : 'REMOVE_ME',
118
+ line2: fit ? `\n<li>Fit: ${fit}</li>` : 'REMOVE_ME',
119
+ line3: condition ? `\n<li>Condition: ${condition}</li>` : 'REMOVE_ME',
120
+ line4: color ? `\n<li>Color: ${color}</li>` : 'REMOVE_ME',
121
+ line5: productStyle && productStyle.length > 0 ? `\n<li>Style: ${productStyle}</li>` : 'REMOVE_ME',
122
+ line6: materials ? `\n<li>Material: ${materials}</li>` : 'REMOVE_ME',
123
+ line7: measurements ? `\n<li>Measurements: ${measurements}</li>` : 'REMOVE_ME',
124
+ line8: productRemarks ? `\n<li>Remarks: ${productRemarks}</li>` : 'REMOVE_ME',
125
+ line9: priceNew ? `\n<li>Purchase price: ${priceNew}</li>` : 'REMOVE_ME',
126
+ line10: yearPurchased ? `\n<li>Year purchased: ${yearPurchased}</li>` : 'REMOVE_ME',
127
+ line11: `\n</ul>`,
128
+ };
129
+ return Object.values(descriptionObj).reduce((acc, cur) => {
130
+ if (!cur.includes('REMOVE_ME')) {
131
+ acc = acc.concat(cur);
132
+ }
133
+ return acc;
134
+ }, '');
135
+ }
136
+ static autoCreateFullSwedishDescriptionForTraderaHTML(productObj, merchantName = 'våra') {
137
+ return `
138
+ <p>
139
+ <strong>Beskrivning</strong>
140
+ ${String(this.autoCreateFullDescriptionHTML(productObj)).trim()}
141
+ </p>
142
+
143
+ <p>
144
+ <strong>Angiven storlek</strong>
145
+ <br>
146
+ Storlekar beskrivs enligt befintliga lappar på plaggen samt från före detta ägare av plagget. Om en lapp eller angiven storlek saknas, uppskattas en ungefärlig storlek av oss. Vi försöker även alltid att mäta produkter som underdelar, väskor och accessoarer. Vid mer information kring specifika plagg och dess mått finns vi ett meddelande bort med snabbt svar på detta..
147
+ </p>
148
+
149
+ <p>
150
+ <strong>Skick</strong>
151
+ <br>
152
+ Alla våra produkter är begagnade och säljs i befintligt skick. Varje plagg genomgår en noga genomförd kvalitetskontroll där de kontrolleras och autentiseras av ${merchantName}’s produktions team och säljs endast i bästa möjliga skick. Läs mer om detta under vår FAQ-flik på vår hemsida samt i vår app.
153
+ </p>
154
+
155
+ <p>
156
+ <strong>Prissättning</strong>
157
+ <br>
158
+ Våra priser är baserade på de accepterade prisförslag som angetts vid inlämning av plagg. Vi ger prisförslag enligt vår egen historiska data, research från andra plattformar samt vår djupa kunskap om modebranschen, dess nuvarande trender och stilar.
159
+ </p>
160
+
161
+ <p>
162
+ <strong>Betalning</strong>
163
+ <br>
164
+ Vi använder oss av "Tradera betalning" vilket innebär att du som köpare kan välja att betala med Swish, kort eller PayPal. ${merchantName}’s rabatter och erbjudanden gäller endast vid köp på vår hemsida samt via vår app.
165
+ <br>
166
+ <br>
167
+ Tänk på att produkter kan ligga i flera varukorgar samtidigt. Om din vara står som ”slut/såld” vid utcheckningen beror det på att någon annan hunnit före.
168
+ </p>
169
+
170
+ <p>
171
+ <strong>Retur</strong>
172
+ <br>
173
+ Vi har 14 dagars öppet köp från då din order har packats och levererats till dig. Returer är endast giltiga om prislappen sitter kvar, samt att varan är i samma skick som när du köpte den. Via Tradera är det du som kund som står för frakten vid returer. Läs mer om detta under vår FAQ-flik.
174
+ </p>
175
+
176
+ <p>
177
+ <strong>Frakt</strong>
178
+ <br>
179
+ Vi skickar alla våra ordrar via Postnord till hela Sverige, samt internationellt. Vi packar och skickar din order inom 24h, och din order ska vara hos dig inom 1-3 arbetsdagar. Om din order ska skickas till annan adress än den som är angiven på Tradera kontakt gärna oss innan betalning.
180
+ </p>
181
+
182
+ <p>
183
+ <strong>Frakt 69:- oavsett antal varor</strong>
184
+ <br>
185
+ <br>
186
+ * Det vill säga, endast en fraktkostnad vid köp av flertalet varor.
187
+ <br>
188
+ * Vi samfraktar alla varor som beställs vid ett och samma tillfälle.
189
+ <br>
190
+ * For international buyers within the EU the displayed shipping cost is accurate.
191
+ </p>
192
+ `;
193
+ }
101
194
  static prepareProductForMutation(productObj, mediaInputArr = []) {
102
195
  const productObjClone = Object.assign({}, productObj);
103
196
  const { status, dateInQualityControl, dateInPendingPublication, dateListedOnline, publishedAt, price } = productObj;
@@ -189,6 +282,31 @@ class ReRobeProductHelpers {
189
282
  }
190
283
  return false;
191
284
  }
285
+ static convertReRobeSizeToStandardSize(productObj) {
286
+ let size = 'Not Applicable';
287
+ if (productObj.productCategory === 'Clothing' && productObj.productType !== 'Jeans') {
288
+ if (productObj.clothingSize && productObj.clothingSize.length > 0) {
289
+ const arr = productObj.clothingSize[0].split('(');
290
+ if (arr.length === 2) {
291
+ const [universalSize] = arr;
292
+ size = universalSize.trim();
293
+ }
294
+ if (arr.length === 1) {
295
+ [size] = productObj.clothingSize;
296
+ }
297
+ }
298
+ }
299
+ if (productObj.productType === 'Jeans') {
300
+ size = productObj.jeanSize;
301
+ }
302
+ if (productObj.productCategory === 'Shoes') {
303
+ size = productObj.shoeSize;
304
+ }
305
+ if (size === 'No Size') {
306
+ size = 'Not Applicable';
307
+ }
308
+ return size;
309
+ }
192
310
  // RibbnProductHelper candidate
193
311
  static buildLineItem(productObj, quantity = 1) {
194
312
  const { documentId, title, price, coverPhotoUrl, imageUrls, brand } = productObj;
@@ -46,7 +46,6 @@ declare type MerchantTheme = {
46
46
  };
47
47
  declare type MerchantWebHook = {
48
48
  event: string;
49
- httpMethod: string;
50
49
  callBackUrl: string;
51
50
  };
52
51
  declare type MerchantFormFields = {
@@ -67,6 +66,5 @@ declare type MerchantFormFields = {
67
66
  };
68
67
  declare type WebhookFormFields = {
69
68
  event: SingleSelectFormField<string>;
70
- httpMethod: SingleSelectFormField<string>;
71
69
  callBackUrl: TextInputFormField<string>;
72
70
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rerobe-js-orm",
3
- "version": "2.4.59",
3
+ "version": "2.4.61",
4
4
  "description": "ReRobe's Javascript ORM Framework",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",