@contrail/flexplm 1.5.1-alpha.14abddb → 1.5.1-alpha.64caad7

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.
@@ -79,7 +79,7 @@ export declare class BaseProcessPublishAssortment {
79
79
  private sendToFlexPLM;
80
80
  private saveToLocalFile;
81
81
  private handleVibeIQFile;
82
- sendPublishPayloadEvent(outboundEvent: any): Promise<void>;
82
+ private sendPublishPayloadEvent;
83
83
  private getCurrentDateString;
84
84
  getItemFamilyChanges(pcd: PublishChangeData, changeDetail: any, assortmentItemFullChangeMap: Map<string, any>, assortmentItemDeleteMap: Map<string, any>): Map<string, ItemFamilyChanges>;
85
85
  getEventsForPublishChangeData(publishChangeData: PublishChangeData): Promise<SeasonalPayload[]>;
@@ -576,12 +576,16 @@ class BaseProcessPublishAssortment {
576
576
  events
577
577
  };
578
578
  const flexPLMConnect = new flexplm_connect_1.FlexPLMConnect(this.config);
579
- const [result] = await Promise.all([
579
+ const [sendResult] = await Promise.allSettled([
580
580
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
581
581
  this.sendPublishPayloadEvent(outboundPublishEvent)
582
582
  ]);
583
- result['outboundPublishEvent'] = outboundPublishEvent;
584
- return result;
583
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
584
+ const isResultObject = typeof result === 'object' && result !== null;
585
+ const resultWithOutboundPublishEvent = isResultObject
586
+ ? { ...result, outboundPublishEvent }
587
+ : { result, outboundPublishEvent };
588
+ return resultWithOutboundPublishEvent;
585
589
  }
586
590
  async saveToLocalFile(events, eventType) {
587
591
  let results = {};
@@ -628,10 +632,11 @@ class BaseProcessPublishAssortment {
628
632
  };
629
633
  if (sendMode === 'vibeiqfile') {
630
634
  const flexPLMConnect = new flexplm_connect_1.FlexPLMConnect(this.config);
631
- const [result] = await Promise.all([
635
+ const [sendResult] = await Promise.allSettled([
632
636
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
633
637
  this.sendPublishPayloadEvent(outboundPublishEvent)
634
638
  ]);
639
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
635
640
  return { ...result, outboundPublishEvent };
636
641
  }
637
642
  else {
@@ -642,7 +647,7 @@ class BaseProcessPublishAssortment {
642
647
  };
643
648
  }
644
649
  }
645
- async sendPublishPayloadEvent(outboundEvent) {
650
+ async sendPublishPayloadEvent(outboundPublishEvent) {
646
651
  console.info('sendPublishPayloadEvent()');
647
652
  let initialEvent = {};
648
653
  if (this.config?.event) {
@@ -653,7 +658,7 @@ class BaseProcessPublishAssortment {
653
658
  const eventBody = {
654
659
  originSystemType: 'VibeIQ',
655
660
  objectClass: 'AssortmentPublishedToFlexPLM',
656
- outboundEvent,
661
+ outboundPublishEvent,
657
662
  initialEvent
658
663
  };
659
664
  await new sdk_1.Entities().create({
@@ -1779,14 +1779,14 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1779
1779
  });
1780
1780
  it('sendPublishPayloadEvent creates an external-event with initialEvent parsed from config', async () => {
1781
1781
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(config, dc, mapFileUtil);
1782
- const outboundEvent = { foo: 'bar' };
1783
- await bppa.sendPublishPayloadEvent(outboundEvent);
1782
+ const outboundPublishEvent = { foo: 'bar' };
1783
+ await bppa.sendPublishPayloadEvent(outboundPublishEvent);
1784
1784
  expect(createCallArg).toEqual({
1785
1785
  entityName: 'external-event',
1786
1786
  object: {
1787
1787
  originSystemType: 'VibeIQ',
1788
1788
  objectClass: 'AssortmentPublishedToFlexPLM',
1789
- outboundEvent,
1789
+ outboundPublishEvent,
1790
1790
  initialEvent: { sourceEventId: 'src-1' }
1791
1791
  }
1792
1792
  });
@@ -1794,14 +1794,14 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1794
1794
  it('sendPublishPayloadEvent defaults initialEvent to {} when config has no event', async () => {
1795
1795
  const bareConfig = { taskId: 'task-x' };
1796
1796
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(bareConfig, dc, mapFileUtil);
1797
- const outboundEvent = { hello: 'world' };
1798
- await bppa.sendPublishPayloadEvent(outboundEvent);
1797
+ const outboundPublishEvent = { hello: 'world' };
1798
+ await bppa.sendPublishPayloadEvent(outboundPublishEvent);
1799
1799
  expect(createCallArg).toEqual({
1800
1800
  entityName: 'external-event',
1801
1801
  object: {
1802
1802
  originSystemType: 'VibeIQ',
1803
1803
  objectClass: 'AssortmentPublishedToFlexPLM',
1804
- outboundEvent,
1804
+ outboundPublishEvent,
1805
1805
  initialEvent: {}
1806
1806
  }
1807
1807
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/flexplm",
3
- "version": "1.5.1-alpha.14abddb",
3
+ "version": "1.5.1-alpha.64caad7",
4
4
  "description": "Library used for integration with flexplm.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -2045,7 +2045,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2045
2045
  flexResolved = true;
2046
2046
  return flexResponse as any;
2047
2047
  });
2048
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2048
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2049
2049
  .mockImplementation(async () => {
2050
2050
  await new Promise(r => setTimeout(r, 5));
2051
2051
  eventResolved = true;
@@ -2073,7 +2073,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2073
2073
 
2074
2074
  const spyFlex = jest.spyOn(FlexPLMConnect.prototype, 'sendToFlexPLM')
2075
2075
  .mockResolvedValue(flexResponse as any);
2076
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2076
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2077
2077
  .mockResolvedValue(undefined as any);
2078
2078
 
2079
2079
  const result = await (bppa as any).handleVibeIQFile(events, eventType, 'vibeiqfile');
@@ -2101,7 +2101,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2101
2101
 
2102
2102
  const spyFlex = jest.spyOn(FlexPLMConnect.prototype, 'sendToFlexPLM')
2103
2103
  .mockResolvedValue({} as any);
2104
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2104
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2105
2105
  .mockResolvedValue(undefined as any);
2106
2106
 
2107
2107
  const result = await (bppa as any).handleVibeIQFile(events, eventType, 'vibeiqfile-dontsendtoflexplm');
@@ -2119,16 +2119,16 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2119
2119
 
2120
2120
  it('sendPublishPayloadEvent creates an external-event with initialEvent parsed from config', async () => {
2121
2121
  const bppa = new BaseProcessPublishAssortment(config, dc, mapFileUtil);
2122
- const outboundEvent = { foo: 'bar' };
2122
+ const outboundPublishEvent = { foo: 'bar' };
2123
2123
 
2124
- await bppa.sendPublishPayloadEvent(outboundEvent);
2124
+ await (bppa as any).sendPublishPayloadEvent(outboundPublishEvent);
2125
2125
 
2126
2126
  expect(createCallArg).toEqual({
2127
2127
  entityName: 'external-event',
2128
2128
  object: {
2129
2129
  originSystemType: 'VibeIQ',
2130
2130
  objectClass: 'AssortmentPublishedToFlexPLM',
2131
- outboundEvent,
2131
+ outboundPublishEvent,
2132
2132
  initialEvent: { sourceEventId: 'src-1' }
2133
2133
  }
2134
2134
  });
@@ -2137,16 +2137,16 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2137
2137
  it('sendPublishPayloadEvent defaults initialEvent to {} when config has no event', async () => {
2138
2138
  const bareConfig = { taskId: 'task-x' } as unknown as FCConfig;
2139
2139
  const bppa = new BaseProcessPublishAssortment(bareConfig, dc, mapFileUtil);
2140
- const outboundEvent = { hello: 'world' };
2140
+ const outboundPublishEvent = { hello: 'world' };
2141
2141
 
2142
- await bppa.sendPublishPayloadEvent(outboundEvent);
2142
+ await (bppa as any).sendPublishPayloadEvent(outboundPublishEvent);
2143
2143
 
2144
2144
  expect(createCallArg).toEqual({
2145
2145
  entityName: 'external-event',
2146
2146
  object: {
2147
2147
  originSystemType: 'VibeIQ',
2148
2148
  objectClass: 'AssortmentPublishedToFlexPLM',
2149
- outboundEvent,
2149
+ outboundPublishEvent,
2150
2150
  initialEvent: {}
2151
2151
  }
2152
2152
  });
@@ -693,12 +693,17 @@ export class BaseProcessPublishAssortment {
693
693
  };
694
694
 
695
695
  const flexPLMConnect = new FlexPLMConnect(this.config);
696
- const [result] = await Promise.all([
696
+ const [sendResult] = await Promise.allSettled([
697
697
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
698
698
  this.sendPublishPayloadEvent(outboundPublishEvent)
699
699
  ]);
700
- result['outboundPublishEvent'] = outboundPublishEvent;
701
- return result;
700
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
701
+ const isResultObject = typeof result === 'object' && result !== null;
702
+ const resultWithOutboundPublishEvent = isResultObject
703
+ ? { ...result, outboundPublishEvent }
704
+ : { result, outboundPublishEvent };
705
+
706
+ return resultWithOutboundPublishEvent;
702
707
  }
703
708
 
704
709
  private async saveToLocalFile(events: SeasonalPayload[], eventType: string) {
@@ -752,10 +757,11 @@ export class BaseProcessPublishAssortment {
752
757
 
753
758
  if (sendMode === 'vibeiqfile') {
754
759
  const flexPLMConnect = new FlexPLMConnect(this.config);
755
- const [result] = await Promise.all([
760
+ const [sendResult] = await Promise.allSettled([
756
761
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
757
762
  this.sendPublishPayloadEvent(outboundPublishEvent)
758
763
  ]);
764
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
759
765
  return { ...result, outboundPublishEvent };
760
766
  } else {
761
767
  await this.sendPublishPayloadEvent(outboundPublishEvent);
@@ -766,10 +772,10 @@ export class BaseProcessPublishAssortment {
766
772
  }
767
773
  }
768
774
 
769
- public async sendPublishPayloadEvent(outboundEvent: any){
775
+ private async sendPublishPayloadEvent(outboundPublishEvent: any){
770
776
  console.info('sendPublishPayloadEvent()');
771
777
  let initialEvent = {};
772
- if(this.config?.event){
778
+ if (this.config?.event){
773
779
  initialEvent = (typeof this.config?.event === 'string')
774
780
  ? JSON.parse(this.config?.event)
775
781
  : this.config?.event;
@@ -777,7 +783,7 @@ export class BaseProcessPublishAssortment {
777
783
  const eventBody = {
778
784
  originSystemType: 'VibeIQ',
779
785
  objectClass: 'AssortmentPublishedToFlexPLM',
780
- outboundEvent,
786
+ outboundPublishEvent,
781
787
  initialEvent
782
788
  };
783
789