Catalog alignment
[sdc.git] / catalog-ui / src / app / models / component-metadata.ts
index 0f0a30d..8a4b257 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * ============LICENSE_END=========================================================
  */
 
-import {IMainCategory} from "./category";
+import { CapabilitiesGroup, RequirementsGroup } from 'app/models';
+import { ComponentType } from 'app/utils';
+import { IMainCategory } from './category';
 /**
  * Created by obarda on 4/18/2017.
  */
-export class ComponentMetadata {
-
-    public abstract:string;
-    public uniqueId:string;
-    public uuid:string;
-    public invariantUUID:string;
-    public name:string;
-    public version:string;
-    public creationDate:number;
-    public lastUpdateDate:number;
-    public description:string;
-    public lifecycleState:string;
-    public tags:Array<string>;
-    public icon:string;
-    public contactId:string;
-    public allVersions:any;
-    public creatorUserId:string;
-    public creatorFullName:string;
-    public lastUpdaterUserId:string;
-    public lastUpdaterFullName:string;
-    public componentType:string;
-    public categories:Array<IMainCategory>;
-    public highestVersion:boolean;
-    public normalizedName:string;
-    public systemName:string;
-    public archived:boolean;
+export interface IComponentMetadata {
+
+    abstract: string;
+    uniqueId: string;
+    uuid: string;
+    invariantUUID: string;
+    name: string;
+    version: string;
+    creationDate: number;
+    lastUpdateDate: number;
+    description: string;
+    lifecycleState: string;
+    tags: string[];
+    icon: string;
+    contactId: string;
+    allVersions: any;
+    creatorUserId: string;
+    creatorFullName: string;
+    lastUpdaterUserId: string;
+    lastUpdaterFullName: string;
+    componentType: string;
+    categories: IMainCategory[];
+    highestVersion: boolean;
+    normalizedName: string;
+    systemName: string;
+    archived: boolean;
+    vspArchived: boolean;
+    selectedCategory: string;
+    filterTerm: string;
+
+    // Resource only
+    resourceType: string;
+    csarUUID: string;
+    csarVersion: string;
+    derivedList: string[];
+    vendorName: string;
+    vendorRelease: string;
+    derivedFrom: string[];
+    resourceVendorModelNumber: string;
+    csarPackageType: string;
+    packageId: string;
+    iconSprite: string;
+
+    // Service only
+    serviceFunction: string;
+    distributionStatus: string;
+    ecompGeneratedNaming: boolean;
+    namingPolicy: string;
+    serviceType: string;
+    serviceRole: string;
+    environmentContext: string;
+    instantiationType: string;
+
+    // backend lifecycleState
+    state: string;
+
+    capabilities: CapabilitiesGroup;
+    requirements: RequirementsGroup;
+
+}
+
+export class ComponentMetadata implements IComponentMetadata {
+
+    public abstract: string;
+    public uniqueId: string;
+    public uuid: string;
+    public invariantUUID: string;
+    public name: string;
+    public version: string;
+    public creationDate: number;
+    public lastUpdateDate: number;
+    public description: string;
+    public lifecycleState: string;
+    public tags: string[];
+    public icon: string;
+    public contactId: string;
+    public allVersions: any;
+    public creatorUserId: string;
+    public creatorFullName: string;
+    public lastUpdaterUserId: string;
+    public lastUpdaterFullName: string;
+    public componentType: string;
+    public categories: IMainCategory[];
+    public highestVersion: boolean;
+    public normalizedName: string;
+    public systemName: string;
+    public archived: boolean;
     public vspArchived: boolean;
     public toscaResourceName: string;
+    public selectedCategory: string;
+    public filterTerm: string;
 
-    //Resource only
+    // Resource only
     public resourceType: string;
-    public csarUUID:string;
-    public csarVersion:string;
+    public csarUUID: string;
+    public csarVersion: string;
     public derivedList: string[];
-    public vendorName:string;
-    public vendorRelease:string;
-    public derivedFrom: Array<string>;
-    public resourceVendorModelNumber:string;
-
-    //Service only
-    public projectCode:string;
-    public distributionStatus:string;
+    public vendorName: string;
+    public vendorRelease: string;
+    public derivedFrom: string[];
+    public resourceVendorModelNumber: string;
+    public csarPackageType: string;
+    public packageId: string;
+    public iconSprite: string;
+
+    // Service only
+    public serviceFunction: string;
+    public distributionStatus: string;
     public ecompGeneratedNaming: boolean;
     public namingPolicy: string;
-    public serviceType:string;
-    public serviceRole:string;
-    public environmentContext:string;
-    public instantiationType:string;
-
+    public serviceType: string;
+    public serviceRole: string;
+    public environmentContext: string;
+    public instantiationType: string;
 
+    // backend lifecycleState
+    public state: string;
 
-        //backend lifecycleState
-    public state:string;
+    // requirements
+    public capabilities;
+    public requirements;
 
-    deserialize (response): ComponentMetadata {
+    deserialize(response): ComponentMetadata {
         this.abstract = response.abstract;
         this.uniqueId = response.uniqueId;
         this.uuid = response.uuid;
@@ -104,7 +174,7 @@ export class ComponentMetadata {
         this.derivedList = response.derivedList;
         this.normalizedName = response.normalizedName;
         this.systemName = response.systemName;
-        this.projectCode = response.projectCode;
+        this.serviceFunction = response.serviceFunction;
         this.resourceType = response.resourceType;
         this.csarUUID = response.csarUUID;
         this.csarVersion = response.csarVersion;
@@ -120,7 +190,16 @@ export class ComponentMetadata {
         this.instantiationType = response.instantiationType;
         this.vspArchived = response.vspArchived;
         this.toscaResourceName = response.toscaResourceName;
+        this.capabilities = response.capabilities;
+        this.requirements = response.requirements;
         return this;
     }
 
+    public isService = (): boolean => {
+        return this.componentType === ComponentType.SERVICE;
+    }
+
+    public getTypeUrl(): string {
+        return this.componentType === ComponentType.RESOURCE ? 'resources/' : 'services/';
+    }
 }