@contrail/flexplm 1.1.17 → 1.1.19
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/entity-processor/base-entity-processor.d.ts +1 -0
- package/lib/entity-processor/base-entity-processor.js +10 -0
- package/lib/util/type-conversion-utils-spec-mockData.js +1 -0
- package/lib/util/type-conversion-utils.d.ts +1 -0
- package/lib/util/type-conversion-utils.js +11 -0
- package/lib/util/type-conversion-utils.spec.js +37 -0
- package/package.json +1 -1
- package/src/entity-processor/base-entity-processor.ts +12 -0
- package/src/util/type-conversion-utils-spec-mockData.ts +1 -0
- package/src/util/type-conversion-utils.spec.ts +43 -0
- package/src/util/type-conversion-utils.ts +15 -0
|
@@ -21,6 +21,7 @@ export declare abstract class BaseEntityProcessor {
|
|
|
21
21
|
getTransformedData(event: any): Promise<any>;
|
|
22
22
|
getUpdatesForEntity(entity: any, inboundData: any): Promise<object>;
|
|
23
23
|
getVibeOwningKeys(entity: any): Promise<any[]>;
|
|
24
|
+
getVibeOwningKeysFromInbound(entity: any): Promise<any[]>;
|
|
24
25
|
createEntity(entityName: any, changes: any): Promise<any>;
|
|
25
26
|
updateEntity(entityName: any, entity: any, diffs: any): Promise<any>;
|
|
26
27
|
protected abstract getIncomingEntity(event: any, inboundData: any): Promise<IncomingEntityResponse>;
|
|
@@ -95,6 +95,16 @@ class BaseEntityProcessor {
|
|
|
95
95
|
console.debug('vibeOwningKeys: ' + vibeOwningKeys);
|
|
96
96
|
return vibeOwningKeys;
|
|
97
97
|
}
|
|
98
|
+
async getVibeOwningKeysFromInbound(entity) {
|
|
99
|
+
let vibeOwningKeys = [];
|
|
100
|
+
if (this.transformMapFile && entity) {
|
|
101
|
+
const mapKey = await type_conversion_utils_1.TypeConversionUtils.getMapKeyFromObject(this.transformMapFile, this.mapFileUtil, entity, type_conversion_utils_1.TypeConversionUtils.FLEX2VIBE_DIRECTION);
|
|
102
|
+
const mapSection = await map_utils_1.MapUtil.getFullMapSection(this.transformMapFile, this.mapFileUtil, mapKey);
|
|
103
|
+
vibeOwningKeys = mapSection?.vibeOwningKeys || [];
|
|
104
|
+
}
|
|
105
|
+
console.debug('vibeOwningKeys: ' + vibeOwningKeys);
|
|
106
|
+
return vibeOwningKeys;
|
|
107
|
+
}
|
|
98
108
|
async createEntity(entityName, changes) {
|
|
99
109
|
const options = {
|
|
100
110
|
entityName: entityName,
|
|
@@ -15,5 +15,6 @@ export declare class TypeConversionUtils {
|
|
|
15
15
|
static getIdentifierPropertiesFromObject(fileId: any, mapFileUtil: MapFileUtil, object: any): Promise<string[]>;
|
|
16
16
|
static getInformationalPropertiesFromObject(fileId: any, mapFileUtil: MapFileUtil, object: any): Promise<string[]>;
|
|
17
17
|
static getMapKeyFromObject(fileId: any, mapFileUtil: MapFileUtil, object: any, direction: string): Promise<string>;
|
|
18
|
+
static isInboundCreatableFromObject(fileId: string, mapFileUtil: MapFileUtil, object: any): Promise<boolean>;
|
|
18
19
|
static getObjectType(object: any): any;
|
|
19
20
|
}
|
|
@@ -180,6 +180,17 @@ class TypeConversionUtils {
|
|
|
180
180
|
return type;
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
+
static async isInboundCreatableFromObject(fileId, mapFileUtil, object) {
|
|
184
|
+
let isInboundCreatable = false;
|
|
185
|
+
if (fileId) {
|
|
186
|
+
const mapKey = await this.getMapKeyFromObject(fileId, mapFileUtil, object, TypeConversionUtils.FLEX2VIBE_DIRECTION);
|
|
187
|
+
const mapData = await map_utils_1.MapUtil.getFullMapSection(fileId, mapFileUtil, mapKey);
|
|
188
|
+
if (mapData && mapData['isInboundCreatable']) {
|
|
189
|
+
isInboundCreatable = await mapData['isInboundCreatable'](object);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return isInboundCreatable;
|
|
193
|
+
}
|
|
183
194
|
static getObjectType(object) {
|
|
184
195
|
let objectType = object['flexPLMObjectClass'];
|
|
185
196
|
return objectType;
|
|
@@ -544,4 +544,41 @@ describe('conversion-utils', () => {
|
|
|
544
544
|
}
|
|
545
545
|
});
|
|
546
546
|
});
|
|
547
|
+
describe('isInboundCreatableFromObject', () => {
|
|
548
|
+
const mapFileUtil = new transform_data_1.MapFileUtil(new sdk_1.Entities());
|
|
549
|
+
it('Revisable Entity\\packaging', async () => {
|
|
550
|
+
const spy = jest.spyOn(mapFileUtil, 'getMapFile')
|
|
551
|
+
.mockImplementation(async () => {
|
|
552
|
+
return mapping;
|
|
553
|
+
});
|
|
554
|
+
const object = {
|
|
555
|
+
flexPLMObjectClass: 'LCSRevisableEntity',
|
|
556
|
+
flexPLMTypePath: 'Revisable Entity\\packaging'
|
|
557
|
+
};
|
|
558
|
+
try {
|
|
559
|
+
const results = await type_conversion_utils_1.TypeConversionUtils.isInboundCreatableFromObject(TRANSFORM_MAP_FILE, mapFileUtil, object);
|
|
560
|
+
expect(results).toBeFalsy();
|
|
561
|
+
}
|
|
562
|
+
finally {
|
|
563
|
+
spy.mockRestore();
|
|
564
|
+
}
|
|
565
|
+
});
|
|
566
|
+
it('Revisable Entity\\prefix', async () => {
|
|
567
|
+
const spy = jest.spyOn(mapFileUtil, 'getMapFile')
|
|
568
|
+
.mockImplementation(async () => {
|
|
569
|
+
return mapping;
|
|
570
|
+
});
|
|
571
|
+
const object = {
|
|
572
|
+
flexPLMObjectClass: 'LCSRevisableEntity',
|
|
573
|
+
flexPLMTypePath: 'Revisable Entity\\prefix'
|
|
574
|
+
};
|
|
575
|
+
try {
|
|
576
|
+
const results = await type_conversion_utils_1.TypeConversionUtils.isInboundCreatableFromObject(TRANSFORM_MAP_FILE, mapFileUtil, object);
|
|
577
|
+
expect(results).toBeTruthy();
|
|
578
|
+
}
|
|
579
|
+
finally {
|
|
580
|
+
spy.mockRestore();
|
|
581
|
+
}
|
|
582
|
+
});
|
|
583
|
+
});
|
|
547
584
|
});
|
package/package.json
CHANGED
|
@@ -125,6 +125,18 @@ export abstract class BaseEntityProcessor {
|
|
|
125
125
|
return vibeOwningKeys;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
async getVibeOwningKeysFromInbound(entity) {
|
|
129
|
+
let vibeOwningKeys = [];
|
|
130
|
+
if (this.transformMapFile && entity) {
|
|
131
|
+
const mapKey = await TypeConversionUtils.getMapKeyFromObject(this.transformMapFile, this.mapFileUtil, entity, TypeConversionUtils.FLEX2VIBE_DIRECTION);
|
|
132
|
+
|
|
133
|
+
const mapSection = await MapUtil.getFullMapSection(this.transformMapFile, this.mapFileUtil, mapKey);
|
|
134
|
+
vibeOwningKeys = mapSection?.vibeOwningKeys || [];
|
|
135
|
+
}
|
|
136
|
+
console.debug('vibeOwningKeys: ' + vibeOwningKeys);
|
|
137
|
+
return vibeOwningKeys;
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
async createEntity(entityName, changes) {
|
|
129
141
|
const options = {
|
|
130
142
|
entityName: entityName,
|
|
@@ -598,4 +598,47 @@ describe('conversion-utils', () => {
|
|
|
598
598
|
});
|
|
599
599
|
});
|
|
600
600
|
|
|
601
|
+
|
|
602
|
+
describe('isInboundCreatableFromObject', () =>{
|
|
603
|
+
const mapFileUtil = new MapFileUtil(new Entities());
|
|
604
|
+
|
|
605
|
+
it('Revisable Entity\\packaging', async () =>{
|
|
606
|
+
const spy = jest.spyOn(mapFileUtil, 'getMapFile')
|
|
607
|
+
.mockImplementation(async () =>{
|
|
608
|
+
return mapping;
|
|
609
|
+
});
|
|
610
|
+
const object = {
|
|
611
|
+
flexPLMObjectClass: 'LCSRevisableEntity',
|
|
612
|
+
flexPLMTypePath: 'Revisable Entity\\packaging'
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
try{
|
|
616
|
+
const results = await TypeConversionUtils.isInboundCreatableFromObject(TRANSFORM_MAP_FILE, mapFileUtil, object);
|
|
617
|
+
expect(results).toBeFalsy();
|
|
618
|
+
|
|
619
|
+
} finally {
|
|
620
|
+
spy.mockRestore();
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
|
|
624
|
+
it('Revisable Entity\\prefix', async () =>{
|
|
625
|
+
const spy = jest.spyOn(mapFileUtil, 'getMapFile')
|
|
626
|
+
.mockImplementation(async () =>{
|
|
627
|
+
return mapping;
|
|
628
|
+
});
|
|
629
|
+
const object = {
|
|
630
|
+
flexPLMObjectClass: 'LCSRevisableEntity',
|
|
631
|
+
flexPLMTypePath: 'Revisable Entity\\prefix'
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
try{
|
|
635
|
+
const results = await TypeConversionUtils.isInboundCreatableFromObject(TRANSFORM_MAP_FILE, mapFileUtil, object);
|
|
636
|
+
expect(results).toBeTruthy();
|
|
637
|
+
|
|
638
|
+
} finally {
|
|
639
|
+
spy.mockRestore();
|
|
640
|
+
}
|
|
641
|
+
});
|
|
642
|
+
|
|
643
|
+
});
|
|
601
644
|
});
|
|
@@ -336,6 +336,21 @@ export class TypeConversionUtils {
|
|
|
336
336
|
//TODO use TypeDefaults?
|
|
337
337
|
}
|
|
338
338
|
|
|
339
|
+
static async isInboundCreatableFromObject(fileId: string, mapFileUtil: MapFileUtil, object: any): Promise<boolean> {
|
|
340
|
+
|
|
341
|
+
let isInboundCreatable = false;
|
|
342
|
+
if(fileId){
|
|
343
|
+
const mapKey = await this.getMapKeyFromObject(fileId, mapFileUtil, object, TypeConversionUtils.FLEX2VIBE_DIRECTION);
|
|
344
|
+
|
|
345
|
+
const mapData = await MapUtil.getFullMapSection(fileId, mapFileUtil, mapKey);
|
|
346
|
+
if(mapData && mapData['isInboundCreatable']){
|
|
347
|
+
isInboundCreatable = await mapData['isInboundCreatable'](object);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
return isInboundCreatable;
|
|
352
|
+
}
|
|
353
|
+
|
|
339
354
|
static getObjectType(object:any) {
|
|
340
355
|
let objectType = object['flexPLMObjectClass'];
|
|
341
356
|
return objectType;
|