aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/models/artifacts.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/models/artifacts.ts')
-rw-r--r--catalog-ui/src/app/models/artifacts.ts101
1 files changed, 101 insertions, 0 deletions
diff --git a/catalog-ui/src/app/models/artifacts.ts b/catalog-ui/src/app/models/artifacts.ts
new file mode 100644
index 0000000000..63e4b594f1
--- /dev/null
+++ b/catalog-ui/src/app/models/artifacts.ts
@@ -0,0 +1,101 @@
+'use strict';
+
+import {ArtifactType} from './../utils';
+import {HeatParameterModel} from "./heat-parameters";
+
+//this object contains keys, each key contain ArtifactModel
+export class ArtifactGroupModel {
+
+ constructor(artifacts?:ArtifactGroupModel) {
+ _.forEach(artifacts, (artifact:ArtifactModel, key) => {
+ this[key] = new ArtifactModel(artifact);
+ });
+ }
+
+ public filteredByType(type:string):ArtifactGroupModel {
+ let tmpArtifactGroupModel = new ArtifactGroupModel();
+ _.each(Object.keys(this), (key)=>{
+ if (this[key].artifactType === type) {
+ tmpArtifactGroupModel[key] = this[key];
+ }
+ });
+ return tmpArtifactGroupModel;
+ };
+}
+
+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<HeatParameterModel>;
+ generatedFromId:string;
+
+ //custom properties
+ selected:boolean;
+ originalDescription:string;
+ envArtifact:ArtifactModel;
+
+ 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 ArtifactType.HEAT === this.artifactType || ArtifactType.HEAT_VOL === this.artifactType || ArtifactType.HEAT_NET === this.artifactType;
+ };
+
+ public isThirdParty = ():boolean => {
+ return _.has(ArtifactType.THIRD_PARTY_RESERVED_TYPES, this.artifactType);
+ };
+
+ public toJSON = ():any => {
+ this.selected = undefined;
+ this.originalDescription = undefined;
+ this.envArtifact = undefined;
+ return this;
+ };
+}
+
+