Fix for Penetration test _ Session and cookie management
[vid.git] / vid-webpack-master / src / app / shared / components / genericFormPopup / genericFormServices / basic.popup.service.ts
1 import {Injectable} from "@angular/core";
2 import {Subscriber} from "../../../models/subscriber";
3 import {NetworkModel} from "../../../models/networkModel";
4 import {AppState} from "../../../store/reducers";
5 import {NgRedux} from "@angular-redux/store";
6 import {FormControlModel} from "../../../models/formControlModels/formControl.model";
7 import {DefaultDataGeneratorService} from "../../../services/defaultDataServiceGenerator/default.data.generator.service";
8 import {ControlGeneratorUtil} from "../../genericForm/formControlsServices/control.generator.util.service";
9 import * as _ from 'lodash';
10 import {VfModule} from "../../../models/vfModule";
11 import {VNFModel} from "../../../models/vnfModel";
12 import {VnfGroupModel} from "../../../models/vnfGroupModel";
13 import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
14 import {ModelInformationItem} from "../../model-information/model-information.component";
15 import {Constants} from "../../../utils/constants";
16 import {PNFModel} from "../../../models/pnfModel";
17
18 @Injectable()
19 export class BasicPopupService {
20   constructor(private _store: NgRedux<AppState>,
21               private _defaultDataGeneratorService : DefaultDataGeneratorService,
22               private _basicControlGenerator : ControlGeneratorUtil){}
23
24   extractSubscriberNameBySubscriberId(subsriberId: string) {
25     let result: string = null;
26     let filteredArray: any = _.filter(this._store.getState().service.subscribers, function (o: Subscriber) {
27       return o.id === subsriberId
28     });
29     if (filteredArray.length > 0) {
30       result = filteredArray[0].name;
31     }
32     return result;
33   }
34
35   getModelFromResponse(result: any, modelType: string, modelName: string) {
36     let flags = FeatureFlagsService.getAllFlags(this._store);
37     let rawModel = result[modelType][modelName];
38     if (!rawModel) return;
39     switch (modelType){
40       case 'vnfs' : {
41         return new VNFModel(rawModel, flags);
42       }
43       case 'pnfs' : {
44         return new PNFModel(rawModel);
45       }
46       case 'vfModules' : {
47         return new VfModule(rawModel, flags);
48       }
49       case 'networks' : {
50         return new NetworkModel(rawModel, flags);
51       }
52       case 'vnfGroups' : {
53         return new VnfGroupModel(rawModel);
54       }
55     }
56   }
57
58   getDynamicInputs(serviceId : string, modelName : string, storeKey : string, type : string) : FormControlModel[]{
59     let dynamic = this._defaultDataGeneratorService.getArbitraryInputs(this._store.getState().service.serviceHierarchy[serviceId][type][modelName].inputs);
60       return this._basicControlGenerator.getDynamicInputsByType(dynamic, serviceId, storeKey, type );
61   }
62
63   createMaximumToInstantiateModelInformationItem(model): ModelInformationItem {
64     return new ModelInformationItem(
65       "Maximum to instantiate",
66       "max",
67       [!_.isNil(model.max) ? model.max.toString() : Constants.ModelInfo.UNLIMITED_DEFAULT],
68       "",
69       true
70     );
71   }
72 }