--- /dev/null
+define([], function () {
+ 'use strict';
+
+ angular.module('app.gbp').service('ContractListService', ContractListService);
+
+ ContractListService.$inject = ['Restangular', 'ContractService'];
+
+ function ContractListService(Restangular, ContractService) {
+ /* methods */
+ this.createList = createList;
+
+ function ContractList() {
+ /* properties */
+ this.data = [];
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills ContractList object with data
+ * @param data
+ */
+ function setData(data) {
+ var self = this;
+ data.forEach(function (dataElement) {
+ self.data.push(ContractService.createObject(dataElement));
+ });
+ }
+
+ function get(dataStore) {
+ /* jshint validthis:true */
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants')
+ .one('tenant').one('tenant1').one('policy');
+
+ return restObj.get().then(function (data) {
+ if (data.policy.contract) {
+ self.setData(data.policy.contract);
+ }
+ });
+ }
+ }
+
+ function createList() {
+ var obj = new ContractList();
+
+ return obj;
+ }
+ }
+
+ return ContractListService;
+});
define([
-
+ 'app/gbp/contract/contract.service',
+ 'app/gbp/contract/contract-list.service',
], function () {
'use strict';
angular.module('app.gbp').controller('ContractController', ContractController);
- ContractController.$inject = ['$scope'];
+ ContractController.$inject = ['$scope', 'TenantService', 'ContractService', 'ContractListService'];
+
+ function ContractController($scope, TenantService, ContractService, ContractListService) {
+ $scope.tenant = TenantService.createObject();
+ $scope.tenant.get('tenant1');
+ console.log('tenant from CONTRACT CTRL:', $scope.tenant);
+
+ $scope.contract = ContractService.createObject();
+ $scope.contract.get('contract1');
+ console.log('contract from CONTRACT CTRL', $scope.contract);
- function ContractController($scope) {
+ $scope.contracts = ContractListService.createList();
+ $scope.contracts.get('config');
+ console.log('contracts from CONTRACT CTRL', $scope.contracts);
}
});
--- /dev/null
+define([], function () {
+ 'use strict';
+
+ angular.module('app.gbp').service('ContractService', ContractService);
+
+ ContractService.$inject = ['Restangular'];
+
+ function ContractService(Restangular) {
+ /* methods */
+ this.createObject = createObject;
+
+ /**
+ * Contract constructor
+ * @constructor
+ */
+ function Contract() {
+ /* properties */
+ this.data = {};
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills Contract object with data
+ * @param data
+ */
+ function setData(data) {
+ this.data.id = data.id;
+ this.data.description = data.description;
+ this.data.parent = data.parent;
+
+ // TODO: use objects
+ this.data['forwarding-context'] = data['forwarding-context'];
+ this.data.target = data.target;
+ this.data.subject = data.subject;
+ this.data.clause = data.clause;
+ this.data.quality = data.quality;
+ }
+
+ /**
+ * gets one Contract object from Restconf
+ * @param id
+ * @returns {*}
+ */
+ function get(id) {
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one('config').one('policy:tenants')
+ .one('tenant').one('tenant1').one('policy').one('contract').one(this.data.id || id);
+
+ return restObj.get().then(function (data) {
+ self.setData(data.contract[0]);
+ });
+ }
+ }
+
+ /**
+ * creates Contract object and fills it with data if available
+ * @param data
+ * @returns {Contract}
+ */
+ function createObject(data) {
+ var obj = new Contract();
+
+ if (data) {
+ obj.setData(data);
+ }
+
+ return obj;
+ }
+ }
+
+ return ContractService;
+});
+<h1>Contrats of tenant: <u>tenant1</u></h1><br /><br />
+<h2><u>contract1:</u></h2><br />
+id: {{contract.data.id}}<br />
+description: {{contract.data.description}}<br />
+parent:{{contract.data.parent}}<br />
+<h2>his containers:</b></h2><br />
+<h3><u>Target object:</u></h3><br />{{contract.data.target}}
+<h3><u>Subject object:</u></h3><br />{{contract.data.subject}}
+<h3><u>Clause object:</u></h3><br />{{contract.data.clause}}
+<h3><u>Quality object:</u></h3><br />{{contract.data.quality}}
+<hr />
+<h2><u>tenant1 contracts list:</u></h2><br />
+<section ng-repeat="contractElement in contracts.data"><h5>{{contractElement.data}}</h5><br /></section>