aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.service.ts
blob: e3cdaef8594baa78cb2a2085b41ffbfebe6644c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import {Injectable} from "@angular/core";
import {IframeService} from "../../utils/iframe.service";
import {NgRedux} from "@angular-redux/store";
import {AppState} from "../../store/reducers";
import {ServicePopupService} from "./genericFormServices/service/service.popup.service";
import {ActivatedRoute} from "@angular/router";
import {AaiService} from "../../services/aaiService/aai.service";
import {ITreeNode} from "angular-tree-component/dist/defs/api";
import {UUIDData} from "./generic-form-popup.component";
import {FormPopupDetails} from "../../models/formControlModels/formPopupDetails.model";
import {Subject} from "rxjs";
import {deleteAllServiceInstances} from "../../storeUtil/utils/service/service.actions";
import {FeatureFlagsService, Features} from "../../services/featureFlag/feature-flags.service";

@Injectable()
export class GenericFormPopupService {
  constructor(private _iframeService : IframeService,
              private _store: NgRedux<AppState>,
              private _servicePopupService : ServicePopupService,
              public _activatedRoute : ActivatedRoute,
              private _featureFlagsService : FeatureFlagsService,
              private _aaiService : AaiService){

  }
  getGenericFormDetails(uuidData : UUIDData, node : ITreeNode, isUpdateMode : boolean) : FormPopupDetails {
    switch (uuidData.type){
      case 'VL' : {
        return uuidData.popupService.getGenericFormPopupDetails(
          uuidData['serviceId'],
          uuidData['networkId'],
          uuidData['networkStoreKey'],
          node,
          uuidData,
          isUpdateMode
        );
      }
      case 'VFmodule' : {
        return uuidData.popupService.getGenericFormPopupDetails(
          uuidData['serviceId'],
          uuidData['vnfStoreKey'],
          uuidData['vFModuleStoreKey'],
          node,
          uuidData,
          isUpdateMode
        );
      }
      case 'VF' : {
        return uuidData.popupService.getGenericFormPopupDetails(
          uuidData['serviceId'],
          uuidData['modelName'],
          uuidData['vnfStoreKey'],
          node,
          uuidData,
          isUpdateMode
        );
      }
      case 'VnfGroup' : {
        return uuidData.popupService.getGenericFormPopupDetails(
          uuidData['serviceId'],
          uuidData['modelName'],
          uuidData['vnfGroupStoreKey'],
          node,
          uuidData,
          isUpdateMode
        );
      }
      case 'service' : {
        uuidData['bulkSize'] = this._store.getState().service.serviceInstance[uuidData['serviceId']].bulkSize || 1;
        return uuidData.popupService.getGenericFormPopupDetails(
          uuidData['serviceId'],
          null,
          null,
          node,
          uuidData,
          isUpdateMode
        );
      }
    }
  }

  initReduxOnCreateNewService() : Promise<string> {
    return new Promise((resolve, reject) => {
      this._activatedRoute
        .queryParams
        .subscribe(params => {
          this._store.dispatch(deleteAllServiceInstances());
          this._aaiService.getServiceModelById(params.serviceModelId).subscribe(()=>{
            resolve(params.serviceModelId);
          });
      });
    });
  }

  refreshModalCheckForGeneralErrorTrigger : Subject<boolean> = new Subject<boolean>();



  shouldShowTemplateBtn = (isInstantiationTemplateExists: boolean) : boolean => {
    const instantiationTemplateFlag =  this._featureFlagsService.getFlagState(Features.FLAG_2004_INSTANTIATION_TEMPLATES_POPUP);
    if(instantiationTemplateFlag){
      return isInstantiationTemplateExists;
    }
    return false;
  }
}