@contrail/flexplm 1.1.52 → 1.1.53

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/src/index.ts CHANGED
@@ -3,6 +3,7 @@ export * from './flexplm-utils';
3
3
  export * from './util/config-defaults';
4
4
  export * from './util/data-converter';
5
5
  export * from './util/error-response-object';
6
+ export * from './util/event-short-message-status';
6
7
  export * from './util/federation';
7
8
  export * from './util/flexplm-connect';
8
9
  export * from './interfaces/interfaces';
@@ -11,14 +11,7 @@ import fsPromise = require('fs/promises');
11
11
  import path = require('path');
12
12
  import { MapFileUtil } from '@contrail/transform-data';
13
13
  import { Logger } from '@contrail/app-framework';
14
-
15
- enum EventStatuses {
16
- NOT_PUBLISHABLE = 'Not_Publishable',
17
- NO_FEDERATION_INFO = 'No_Federation_Information',
18
- NO_EVENTS_TO_SEND = 'No_Events_to_Send',
19
- FAILURE = 'Failure',
20
- SUCCESS = 'Success',
21
- }
14
+ import { EventShortMessageStatus } from '../util/event-short-message-status';
22
15
 
23
16
  export class BaseProcessPublishAssortment {
24
17
 
@@ -56,9 +49,9 @@ export class BaseProcessPublishAssortment {
56
49
  } catch (e) {
57
50
  const message = e.message;
58
51
  const eventStatus =
59
- (message.includes(BaseProcessPublishAssortment.ASSORTMENT_NOT_PUBLISHABLE)) ? EventStatuses.NOT_PUBLISHABLE :
60
- (message.startsWith(BaseProcessPublishAssortment.ASSORTMENT_NO_FED_INFO)) ? EventStatuses.NO_FEDERATION_INFO :
61
- EventStatuses.FAILURE;
52
+ (message.includes(BaseProcessPublishAssortment.ASSORTMENT_NOT_PUBLISHABLE)) ? EventShortMessageStatus.NOT_PUBLISHABLE :
53
+ (message.startsWith(BaseProcessPublishAssortment.ASSORTMENT_NO_FED_INFO)) ? EventShortMessageStatus.NO_FEDERATION_INFO :
54
+ EventShortMessageStatus.FAILURE;
62
55
  const processStatus = 'BaseProcessPublishAssortment: ' + eventStatus
63
56
  + ': assortmentId: ' + event.assortmentId + ': assortmentPublishChangeId: ' + event.assortmentPublishChangeId;
64
57
  console.log(JSON.stringify(processStatus));
@@ -633,7 +626,7 @@ export class BaseProcessPublishAssortment {
633
626
 
634
627
  const events = await this.getEventsForPublishChangeData(pcd);
635
628
  if (events.length === 0) {
636
- const processStatus = 'BaseProcessPublishAssortment: ' + EventStatuses.NO_EVENTS_TO_SEND
629
+ const processStatus = 'BaseProcessPublishAssortment: ' + EventShortMessageStatus.NO_EVENTS_TO_SEND
637
630
  + ': assortmentId: ' + pcd.assortmentId + ': assortmentPublishChangeId: ' + pcd.assortmentPublishChangeId;
638
631
  console.log(processStatus);
639
632
  const message = 'No Events to Send; returning';
@@ -647,7 +640,7 @@ export class BaseProcessPublishAssortment {
647
640
 
648
641
  const results = await this.sendEvents(events);
649
642
  const resultsCount = this.getResultsCount(events);
650
- const processStatus = 'BaseProcessPublishAssortment: ' + EventStatuses.NO_EVENTS_TO_SEND
643
+ const processStatus = 'BaseProcessPublishAssortment: ' + EventShortMessageStatus.NO_EVENTS_TO_SEND
651
644
  + ': assortmentId: ' + pcd.assortmentId + ': assortmentPublishChangeId: ' + pcd.assortmentPublishChangeId
652
645
  + ': resultsCount: ' + JSON.stringify(resultsCount);
653
646
  console.log(processStatus);
@@ -0,0 +1,496 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.mapping = {
4
+ typeConversion: {
5
+ vibe2flex: {
6
+ 'custom-entity': {
7
+ getMapKey: (entity) =>{
8
+ const typePath = entity['typePath'];
9
+ let mapKey = '';
10
+ switch (typePath) {
11
+ case 'custom-entity:pack':
12
+ mapKey = 'packaging';
13
+ break;
14
+ case 'custom-entity:prefix':
15
+ mapKey = 'prefix';
16
+ break;
17
+ case 'custom-entity:catName':
18
+ mapKey = 'catName';
19
+ break;
20
+ case 'custom-entity:partnerOrg':
21
+ mapKey = 'partnerOrg';
22
+ break;
23
+ case 'custom-entity:catFamily':
24
+ mapKey = 'catFamily';
25
+ break;
26
+ case 'custom-entity:formName':
27
+ mapKey = 'formName';
28
+ break;
29
+ }
30
+
31
+ return mapKey;
32
+ }
33
+ }
34
+ }
35
+ // flex2vibe: {
36
+ // LCSRevisableEntity: {
37
+ // getMapKey: (object) =>{ return object;}
38
+ // },
39
+ // LCSLast: {
40
+ // getMapKey: (object) => {return object;}
41
+ // },
42
+ // LCSMaterial: {
43
+ // getMapKey: (object) =>{ return object;}
44
+ // },
45
+ // LCSBusinessObject: {
46
+ // getMapKey: (object) => {return object;}
47
+ // }
48
+ // },
49
+ },
50
+ LCSSeason: {
51
+ vibe2flex: {
52
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
53
+ rekey: {
54
+ seasonName: 'flexPLMSeasonName',
55
+ year: 'seasonYear'
56
+ },
57
+ getSoftType: () => 'Season',
58
+ getClass: () => 'LCSSeason'
59
+ },
60
+ flex2vibe: {
61
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
62
+ rekey: {
63
+ flexPLMSeasonName: 'seasonName',
64
+ seasonYear: 'year'
65
+ }
66
+ }
67
+ },
68
+ LCSProduct: {
69
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
70
+ vibe2flex: {
71
+ getClass: () => 'LCSProduct',
72
+ getSoftType: (entity /*, dependencies*/) =>{
73
+ const prodType = entity['prodType'];
74
+ let val = '';
75
+ switch (prodType) {
76
+ case 'acc':
77
+ val = 'Product\\Accesories';
78
+ break;
79
+ case 'app':
80
+ val = 'Product\\Apparel';
81
+ break;
82
+ case 'eqp':
83
+ val = 'Product\\Equipment';
84
+ break;
85
+ case 'foot':
86
+ val = 'Product\\Footwear';
87
+ break;
88
+ }
89
+
90
+ return val;
91
+ },
92
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }, { processor: 'VALUE_TRANSFORM', functionTransformersKey: 'valueTransform' }],
93
+ rekey: {
94
+ productName: 'name',
95
+ vibeIQIdentifier: 'itemNumber'
96
+ },
97
+ valueTransform: {
98
+ transformEx: (row/*, dependencies*/) => {
99
+ return row['otherProp'] + 'xxx';
100
+ }
101
+ }
102
+
103
+ },
104
+ flex2vibe: {
105
+ getClass: () => 'item',
106
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
107
+ rekey: {
108
+ itemNumber: 'vibeIQIdentifier',
109
+ name: 'productName',
110
+ }
111
+ }
112
+ },
113
+ LCSSKU: {
114
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
115
+ vibe2flex: {
116
+ getClass: () => 'LCSSKU',
117
+ getSoftType: (entity /*, dependencies*/) =>{
118
+ const prodType = entity['prodType'];
119
+ let val = '';
120
+ switch (prodType) {
121
+ case 'acc':
122
+ val = 'Product\\Accesories';
123
+ break;
124
+ case 'app':
125
+ val = 'Product\\Apparel';
126
+ break;
127
+ case 'eqp':
128
+ val = 'Product\\Equipment';
129
+ break;
130
+ case 'foot':
131
+ val = 'Product\\Footwear';
132
+ break;
133
+ }
134
+
135
+ return val;
136
+ },
137
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
138
+ rekey: {
139
+ skuName: 'optionName',
140
+ vibeIQIdentifier: 'itemNumber'
141
+ }
142
+ },
143
+ flex2vibe: {
144
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
145
+ rekey: {
146
+ itemNumber: 'vibeIQIdentifier',
147
+ optionName: 'skuName',
148
+ }
149
+ }
150
+ },
151
+
152
+ packaging: {
153
+ vibe2flex: {
154
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
155
+ rekey: {
156
+ retailPackType: 'packType',
157
+ retailIntroDate: 'introDate'
158
+ },
159
+ getSoftType: () => 'Revisable Entity\\packaging',
160
+ getClass: () => 'LCSRevisableEntity'
161
+ },
162
+ flex2vibe: {
163
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
164
+ rekey: {
165
+ packType: 'retailPackType',
166
+ introDate: 'retailIntroDate'
167
+ },
168
+ getClass: () => 'custom-entity',
169
+ getSoftType: () => 'custom-entity:pack',
170
+
171
+ }
172
+ },
173
+ prefix: {
174
+ vibe2flex: {
175
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
176
+ rekey: {
177
+ retailOwner: 'owner',
178
+ retailIntroDate: 'introDate'
179
+ },
180
+ getSoftType: () => 'Revisable Entity\\prefix',
181
+ getClass: () => 'LCSRevisableEntity'
182
+ },
183
+ flex2vibe: {
184
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
185
+ rekey: {
186
+ owner: 'retailOwner',
187
+ introDate: 'retailIntroDate'
188
+ },
189
+ getClass: () => 'custom-entity',
190
+ getSoftType: () => 'custom-entity:prefix',
191
+
192
+ }
193
+ },
194
+ catName: {
195
+ getIdentifierProperties: () => ['catName', 'catNumber'],
196
+ getInformationalProperties: () => ['longName'],
197
+ vibe2flex: {
198
+ transformOrder: [],
199
+ getSoftType: () => 'Last\\catName',
200
+ getClass: () => 'LCSLast'
201
+ },
202
+ flex2vibe: {
203
+ transformOrder: [],
204
+ getClass: () => 'custom-entity',
205
+ getSoftType: () => 'custom-entity:catName',
206
+
207
+ }
208
+ },
209
+ partnerOrg: {
210
+ vibe2flex: {
211
+ transformOrder: [],
212
+ getSoftType: () => 'Business Object\\partnerOrg',
213
+ getClass: () => 'LCSLifecycleManaged'
214
+ },
215
+ flex2vibe: {
216
+ transformOrder: [],
217
+ getClass: () => 'custom-entity',
218
+ getSoftType: () => 'custom-entity:partnerOrg',
219
+
220
+ }
221
+ },
222
+ catFamily: {
223
+ vibe2flex: {
224
+ transformOrder: [],
225
+ getSoftType: () => 'Revisable Entity\\catFamily',
226
+ getClass: () => 'LCSRevisableEntity'
227
+ },
228
+ flex2vibe: {
229
+ transformOrder: [],
230
+ getClass: () => 'custom-entity',
231
+ getSoftType: () => 'custom-entity:catFamily',
232
+
233
+ }
234
+ },
235
+ formName: {
236
+ vibe2flex: {
237
+ transformOrder: [],
238
+ getSoftType: () => 'Material\\form',
239
+ getClass: () => 'LCSMaterial'
240
+ },
241
+ flex2vibe: {
242
+ transformOrder: [],
243
+ getClass: () => 'custom-entity',
244
+ getSoftType: () => 'custom-entity:formName',
245
+
246
+ }
247
+ },
248
+
249
+ };
250
+ exports.mapping2 = {
251
+ typeConversion: {
252
+ vibe2flex: {
253
+ 'custom-entity': {
254
+ getMapKey: (entity) =>{
255
+ const typePath = entity['typePath'];
256
+ let mapKey = '';
257
+ switch (typePath) {
258
+ case 'custom-entity:pack':
259
+ mapKey = 'packaging';
260
+ break;
261
+ case 'custom-entity:prefix':
262
+ mapKey = 'prefix';
263
+ break;
264
+ case 'custom-entity:catName':
265
+ mapKey = 'catName';
266
+ break;
267
+ case 'custom-entity:partnerOrg':
268
+ mapKey = 'partnerOrg';
269
+ break;
270
+ case 'custom-entity:catFamily':
271
+ mapKey = 'catFamily';
272
+ break;
273
+ case 'custom-entity:formName':
274
+ mapKey = 'formName';
275
+ break;
276
+ }
277
+
278
+ return mapKey;
279
+ }
280
+ }
281
+ }
282
+ // flex2vibe: {
283
+ // LCSRevisableEntity: {
284
+ // getMapKey: (object) =>{ return object;}
285
+ // },
286
+ // LCSLast: {
287
+ // getMapKey: (object) => {return object;}
288
+ // },
289
+ // LCSMaterial: {
290
+ // getMapKey: (object) =>{ return object;}
291
+ // },
292
+ // LCSBusinessObject: {
293
+ // getMapKey: (object) => {return object;}
294
+ // }
295
+ // },
296
+ },
297
+ LCSSeason: {
298
+ getIdentifierProperties: () => ['brand', 'year', 'seasonType'],
299
+ vibe2flex: {
300
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
301
+ rekey: {
302
+ seasonName: 'flexPLMSeasonName'
303
+ },
304
+ getSoftType: () => 'Season',
305
+ getClass: () => 'LCSSeason'
306
+ },
307
+ flex2vibe: {
308
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
309
+ rekey: {
310
+ flexPLMSeasonName: 'seasonName'
311
+ }
312
+ }
313
+ },
314
+ LCSProduct: {
315
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
316
+ vibe2flex: {
317
+ getClass: () => 'LCSProduct',
318
+ getSoftType: (entity /*, dependencies*/) =>{
319
+ const prodType = entity['prodType'];
320
+ let val = '';
321
+ switch (prodType) {
322
+ case 'acc':
323
+ val = 'Product\\Accesories';
324
+ break;
325
+ case 'app':
326
+ val = 'Product\\Apparel';
327
+ break;
328
+ case 'eqp':
329
+ val = 'Product\\Equipment';
330
+ break;
331
+ case 'foot':
332
+ val = 'Product\\Footwear';
333
+ break;
334
+ }
335
+
336
+ return val;
337
+ },
338
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }, { processor: 'VALUE_TRANSFORM', functionTransformersKey: 'valueTransform' }],
339
+ rekey: {
340
+ productName: 'name',
341
+ vibeIQIdentifier: 'itemNumber'
342
+ },
343
+ valueTransform: {
344
+ transformEx: (row/*, dependencies*/) => {
345
+ return row['otherProp'] + 'xxx';
346
+ }
347
+ }
348
+
349
+ },
350
+ flex2vibe: {
351
+ getClass: () => 'item',
352
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
353
+ rekey: {
354
+ itemNumber: 'vibeIQIdentifier',
355
+ name: 'productName',
356
+ }
357
+ }
358
+ },
359
+ LCSSKU: {
360
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
361
+ getIdentifierProperties: () => ['uniqueIdentifierA', 'uniqueIdentifierB'],
362
+ vibe2flex: {
363
+ getClass: () => 'LCSSKU',
364
+ getSoftType: (entity /*, dependencies*/) =>{
365
+ const prodType = entity['prodType'];
366
+ let val = '';
367
+ switch (prodType) {
368
+ case 'acc':
369
+ val = 'Product\\Accesories';
370
+ break;
371
+ case 'app':
372
+ val = 'Product\\Apparel';
373
+ break;
374
+ case 'eqp':
375
+ val = 'Product\\Equipment';
376
+ break;
377
+ case 'foot':
378
+ val = 'Product\\Footwear';
379
+ break;
380
+ }
381
+
382
+ return val;
383
+ },
384
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
385
+ rekey: {
386
+ skuName: 'optionName',
387
+ vibeIQIdentifier: 'itemNumber'
388
+ }
389
+ },
390
+ flex2vibe: {
391
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
392
+ rekey: {
393
+ itemNumber: 'vibeIQIdentifier',
394
+ optionName: 'skuName',
395
+ }
396
+ }
397
+ },
398
+
399
+ packaging: {
400
+ vibe2flex: {
401
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
402
+ rekey: {
403
+ retailPackType: 'packType',
404
+ retailIntroDate: 'introDate'
405
+ },
406
+ getSoftType: () => 'Revisable Entity\\packaging',
407
+ getClass: () => 'LCSRevisableEntity'
408
+ },
409
+ flex2vibe: {
410
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
411
+ rekey: {
412
+ packType: 'retailPackType',
413
+ introDate: 'retailIntroDate'
414
+ },
415
+ getClass: () => 'custom-entity',
416
+ getSoftType: () => 'custom-entity:pack',
417
+
418
+ }
419
+ },
420
+ prefix: {
421
+ vibe2flex: {
422
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
423
+ rekey: {
424
+ retailOwner: 'owner',
425
+ retailIntroDate: 'introDate'
426
+ },
427
+ getSoftType: () => 'Revisable Entity\\prefix',
428
+ getClass: () => 'LCSRevisableEntity'
429
+ },
430
+ flex2vibe: {
431
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
432
+ rekey: {
433
+ owner: 'retailOwner',
434
+ introDate: 'retailIntroDate'
435
+ },
436
+ getClass: () => 'custom-entity',
437
+ getSoftType: () => 'custom-entity:prefix',
438
+
439
+ }
440
+ },
441
+ catName: {
442
+ getIdentifierProperties: () => ['catName', 'catNumber'],
443
+ getInformationalProperties: () => ['longName'],
444
+ vibe2flex: {
445
+ transformOrder: [],
446
+ getSoftType: () => 'Last\\catName',
447
+ getClass: () => 'LCSLast'
448
+ },
449
+ flex2vibe: {
450
+ transformOrder: [],
451
+ getClass: () => 'custom-entity',
452
+ getSoftType: () => 'custom-entity:catName',
453
+
454
+ }
455
+ },
456
+ partnerOrg: {
457
+ vibe2flex: {
458
+ transformOrder: [],
459
+ getSoftType: () => 'Business Object\\partnerOrg',
460
+ getClass: () => 'LCSLifecycleManaged'
461
+ },
462
+ flex2vibe: {
463
+ transformOrder: [],
464
+ getClass: () => 'custom-entity',
465
+ getSoftType: () => 'custom-entity:partnerOrg',
466
+
467
+ }
468
+ },
469
+ catFamily: {
470
+ vibe2flex: {
471
+ transformOrder: [],
472
+ getSoftType: () => 'Revisable Entity\\catFamily',
473
+ getClass: () => 'LCSRevisableEntity'
474
+ },
475
+ flex2vibe: {
476
+ transformOrder: [],
477
+ getClass: () => 'custom-entity',
478
+ getSoftType: () => 'custom-entity:catFamily',
479
+
480
+ }
481
+ },
482
+ formName: {
483
+ vibe2flex: {
484
+ transformOrder: [],
485
+ getSoftType: () => 'Material\\form',
486
+ getClass: () => 'LCSMaterial'
487
+ },
488
+ flex2vibe: {
489
+ transformOrder: [],
490
+ getClass: () => 'custom-entity',
491
+ getSoftType: () => 'custom-entity:formName',
492
+
493
+ }
494
+ },
495
+
496
+ };