SmartIT_Extensions/BMC/smart-it-full/scripts/app/asset/ci-explorer-cache.js

130 lines
5.2 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('assetModule')
.factory('ciExplorerCache', ['$log',
function ($log) {
function generateData(count, result) {
for (var i = 0; i < count; i++) {
result.push({
realObject: {
name: i + 1,
isChild: true
},
instanceId: "ACC" + i,
assetType: "Software"
});
}
}
var largeData1 = {
totalCount: 198,
relatedCis: []
};
generateData(100, largeData1.relatedCis);
largeData1.relatedCis[0] = {
"relationshipClassId": "BMC_BaseRelationship",
"type": "asset",
"parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM",
"relationshipType": "allrelated",
"realObject": {
"reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M",
"name": "Dell Latitude E6430 with a display, hard-drive, floppy disk, vintage cd-rom drive, and non-laser mouse",
"classId": "BMC_COMPUTERSYSTEM",
"status": {
"value": "In Repair Very Often"
},
"hasImpact": true,
"isParent": true,
"isChild": false,
"instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K",
"assetType": "Computer System",
"manufacturer": "Dell Group Incorporated",
"model": "E6430 XC1 BN234 77 XL",
"assetId": "GCS000000000002"
},
"id": "REHAA5V0GQBORANBA2B584OBL2G6PO"
};
largeData1.relatedCis[1] = {
"relationshipClassId": "BMC_BaseRelationship",
"type": "asset",
"parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM",
"relationshipType": "component",
"realObject": {
"reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M",
"name": "Dell Latitude E6430",
"classId": "BMC_COMPUTERSYSTEM",
"status": {
"value": "In Repair"
},
"hasImpact": false,
"isParent": false,
"isChild": true,
"instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K",
"assetType": "Computer System",
"manufacturer": "Dell",
"model": "E6430",
"assetId": "GCS000000000002"
},
"id": "REHAA5V0GQBORANBA2B584OBL2G6PO"
};
largeData1.relatedCis[2] = {
"relationshipClassId": "BMC_BaseRelationship",
"type": "asset",
"parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM",
"relationshipType": "dependency",
"realObject": {
"reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M",
"name": "Dell Latitude E6430 with a display, hard-drive, floppy disk, vintage cd-rom drive, and non-laser mouse",
"classId": "BMC_COMPUTERSYSTEM",
"status": {
"value": "In Repair Very Often"
},
"hasImpact": false,
"isParent": false,
"isChild": false,
"instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K",
"assetType": "Computer System",
"manufacturer": "Dell Group Incorporated",
"model": "E6430 XC1 BN234 77 XL",
"assetId": "GCS000000000002"
},
"id": "REHAA5V0GQBORANBA2B584OBL2G6PO"
};
var largeData2 = {
totalCount: 198,
relatedCis: []
};
generateData(98, largeData2.relatedCis);
var mediumData = {
totalCount: 105,
relatedCis: []
};
generateData(mediumData.totalCount, mediumData.relatedCis);
var smallData = {
totalCount: 10,
relatedCis: []
};
generateData(smallData.totalCount, smallData.relatedCis);
var data = {};
function getHashCode(criteria) {
return JSON.stringify(criteria);
}
function reset() {
//todo: test data should be explicitly enabled on dev machine if needed
//data = _.cloneDeep(initialData);
}
reset();
return {
get: function (criteria) {
$log.log(getHashCode(criteria));
return _.cloneDeep(data[getHashCode(criteria)]);
},
put: function (criteria, entry) {
data[getHashCode(criteria)] = _.cloneDeep(entry);
},
reset: reset
};
}
]);
}());