/*- * ============LICENSE_START======================================================= * SDC * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * 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. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ /// module Sdc.Models { 'use strict'; //this object contains keys, each key contain ArtifactModel export class ArtifactGroupModel{ constructor(artifacts?:Models.ArtifactGroupModel) { _.forEach(artifacts, (artifact:Models.ArtifactModel, key) => { this[key] = new Models.ArtifactModel(artifact); }); } public filteredByType (type:string): Models.ArtifactGroupModel { return JSON.parse(JSON.stringify(_.pick(this, (artifact)=>{ return artifact.artifactType == type}))); }; } export class ArtifactModel { artifactDisplayName:string; artifactGroupType:string; uniqueId:string; artifactName:string; artifactLabel:string; artifactType:string; artifactUUID:string; artifactVersion:string; creatorFullName:string; creationDate:number; lastUpdateDate:number; description:string; mandatory:boolean; serviceApi:boolean; payloadData:string; timeout:number; esId:string; "Content-MD5":string; artifactChecksum:string; apiUrl:string; heatParameters:Array; generatedFromId:string; //custom properties selected:boolean; originalDescription:string; constructor(artifact?:ArtifactModel) { if(artifact) { this.artifactDisplayName = artifact.artifactDisplayName; this.artifactGroupType = artifact.artifactGroupType; this.uniqueId = artifact.uniqueId; this.artifactName = artifact.artifactName; this.artifactLabel = artifact.artifactLabel; this.artifactType = artifact.artifactType; this.artifactUUID = artifact.artifactUUID; this.artifactVersion = artifact.artifactVersion; this.creatorFullName = artifact.creatorFullName; this.creationDate = artifact.creationDate; this.lastUpdateDate = artifact.lastUpdateDate; this.description = artifact.description; this.mandatory = artifact.mandatory; this.serviceApi = artifact.serviceApi; this.payloadData = artifact.payloadData; this.timeout = artifact.timeout; this.esId = artifact.esId; this["Content-MD5"] = artifact["Content-MD5"]; this.artifactChecksum = artifact.artifactChecksum; this.apiUrl = artifact.apiUrl; this.heatParameters = _.sortBy(artifact.heatParameters, 'name'); this.generatedFromId = artifact.generatedFromId; this.selected = artifact.selected ? artifact.selected : false; this.originalDescription = artifact.description; } } public isHEAT = ():boolean => { return Utils.Constants.ArtifactType.HEAT === this.artifactType.substring(0,4); }; // public isEditableInInstanceLevel = ():boolean => { // return true; // }; public isThirdParty = ():boolean => { return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, this.artifactType); }; public toJSON = ():any => { this.selected = undefined; this.originalDescription = undefined; return this; }; } }