1 define(['app/gbp/endpoints/sxp-mapping.service'], function () {
4 angular.module('app.gbp').service('SxpMappingListService', SxpMappingListService);
6 SxpMappingListService.$inject = ['$filter', 'Restangular', 'SxpMappingService'];
8 function SxpMappingListService($filter, Restangular, SxpMappingService) {
10 this.createList = createList;
12 function EndpointsSgtList() {
17 this.setData = setData;
19 this.clearData = clearData;
20 this.findSgtsForEndpoint = findSgtsForEndpoint;
24 * fills EndpointsSgtList object with data
27 function setData(data) {
30 data && data.forEach(function (dataElement) {
31 self.data.push(SxpMappingService.createObject(dataElement));
35 function clearData() {
41 /* jshint validthis:true */
43 var restObj = Restangular.one('restconf').one('config').one('sxp-mapper-model:sxp-mapper');
45 return restObj.get().then(function (data) {
46 self.setData(data['sxp-mapper']['endpoint-policy-template-by-sgt']);
50 function findSgtsForEndpoint(EPobject) {
52 result = self.data.map(function (ele) {
53 // properties correction
54 var condition = ele.data.conditions === undefined ? [] : ele.data.conditions,
55 epg = ele.data['endpoint-groups'] === undefined ? [] : ele.data['endpoint-groups'];
57 return condition.length==EPobject.data.condition.length && condition.every(function(v,i) { return ($.inArray(v,EPobject.data.condition) != -1)}) &&
58 epg.length==EPobject.data['endpoint-group'].length && epg.every(function(v,i) { return ($.inArray(v,EPobject.data['endpoint-group']) != -1)}) &&
59 angular.equals(ele.data.tenant, EPobject.data.tenant) ? ele.data.sgt : false;
61 return result.toString();
65 function createList() {
66 var obj = new EndpointsSgtList();
72 return SxpMappingListService;