@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.
- package/lib/publish/base-process-publish-assortment.d.ts +1 -1
- package/lib/publish/base-process-publish-assortment.js +11 -6
- package/lib/publish/base-process-publish-assortment.spec.js +6 -6
- package/package.json +1 -1
- package/src/publish/base-process-publish-assortment.spec.ts +9 -9
- package/src/publish/base-process-publish-assortment.ts +13 -7
|
@@ -79,7 +79,7 @@ export declare class BaseProcessPublishAssortment {
|
|
|
79
79
|
private sendToFlexPLM;
|
|
80
80
|
private saveToLocalFile;
|
|
81
81
|
private handleVibeIQFile;
|
|
82
|
-
sendPublishPayloadEvent
|
|
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 [
|
|
579
|
+
const [sendResult] = await Promise.allSettled([
|
|
580
580
|
flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
|
|
581
581
|
this.sendPublishPayloadEvent(outboundPublishEvent)
|
|
582
582
|
]);
|
|
583
|
-
result
|
|
584
|
-
|
|
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 [
|
|
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(
|
|
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
|
-
|
|
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
|
|
1783
|
-
await bppa.sendPublishPayloadEvent(
|
|
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
|
-
|
|
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
|
|
1798
|
-
await bppa.sendPublishPayloadEvent(
|
|
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
|
-
|
|
1804
|
+
outboundPublishEvent,
|
|
1805
1805
|
initialEvent: {}
|
|
1806
1806
|
}
|
|
1807
1807
|
});
|
package/package.json
CHANGED
|
@@ -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
|
|
2122
|
+
const outboundPublishEvent = { foo: 'bar' };
|
|
2123
2123
|
|
|
2124
|
-
await bppa.sendPublishPayloadEvent(
|
|
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
|
-
|
|
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
|
|
2140
|
+
const outboundPublishEvent = { hello: 'world' };
|
|
2141
2141
|
|
|
2142
|
-
await bppa.sendPublishPayloadEvent(
|
|
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
|
-
|
|
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 [
|
|
696
|
+
const [sendResult] = await Promise.allSettled([
|
|
697
697
|
flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
|
|
698
698
|
this.sendPublishPayloadEvent(outboundPublishEvent)
|
|
699
699
|
]);
|
|
700
|
-
result
|
|
701
|
-
|
|
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 [
|
|
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
|
-
|
|
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
|
-
|
|
786
|
+
outboundPublishEvent,
|
|
781
787
|
initialEvent
|
|
782
788
|
};
|
|
783
789
|
|