130 lines
5.2 KiB
JavaScript
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
|
|
};
|
|
}
|
|
]);
|
|
}());
|