Extract subscriber-name only when it is not defined 45/99145/2
authorAlexey Sandler <alexey.sandler@intl.att.com>
Wed, 4 Dec 2019 14:10:34 +0000 (16:10 +0200)
committerAlexey Sandler <alexey.sandler@intl.att.com>
Wed, 4 Dec 2019 14:16:25 +0000 (16:16 +0200)
This solves the Recreate issue when subscriber-name is already
provided by the template, but Redux is not populated with
`service.subscribers`.

Issue-ID: VID-724

Signed-off-by: Alexey Sandler <alexey.sandler@intl.att.com>
Change-Id: Id3bfd705015270352aef674d2119fc77838a3ddb
Signed-off-by: Alexey Sandler <alexey.sandler@intl.att.com>
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/instantiationTemplates/templates__instance_template.json
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts

index 7923313..8228f95 100644 (file)
@@ -180,7 +180,7 @@ export class DrawingBoardHeader {
     }
   }
 
-  extractOwningEntityNameAccordingtoId(id:String): string {
+  extractOwningEntityNameAccordingToId(id:String): string {
     let owningEntityName;
     _.forEach(this.store.getState().service.categoryParameters.owningEntityList,(owningEntity: OwningEntity) => {
       if (owningEntity.id === id) {
@@ -190,12 +190,20 @@ export class DrawingBoardHeader {
     return owningEntityName;
   }
 
+  private extractSubscriberNameByGlobalSubscriberId(globalSubscriberId: string) {
+    return this.store.getState().service.subscribers.find(sub => sub.id === globalSubscriberId).name;
+  }
+
   extractServiceFields(): any {
     let instanceFields : ServiceInstance;
     instanceFields = this.store.getState().service.serviceInstance[this.serviceModelId];
     if (instanceFields.action === ServiceInstanceActions.Create) {
-      instanceFields.subscriberName = this.store.getState().service.subscribers.find(sub => sub.id === instanceFields.globalSubscriberId).name;
-      instanceFields.owningEntityName = this.extractOwningEntityNameAccordingtoId(instanceFields.owningEntityId);
+      if(_.isNil(instanceFields.subscriberName)) {
+        instanceFields.subscriberName = this.extractSubscriberNameByGlobalSubscriberId(instanceFields.globalSubscriberId);
+      }
+      if (_.isNil(instanceFields.owningEntityName)) {
+        instanceFields.owningEntityName = this.extractOwningEntityNameAccordingToId(instanceFields.owningEntityId);
+      }
     }
     return _.omit(instanceFields,['optionalGroupMembersMap', 'upgradedVFMSonsCounter', 'isUpgraded', 'latestAvailableVersion']);
   }