Merge branch 'develop'

pull/92/MERGE
13621160019@163.com 2021-12-03 13:52:02 +08:00
commit 468b2e4320
10 changed files with 250 additions and 175 deletions

View File

@ -1,7 +1,14 @@
'use strict';
app.controller('EnergyFlowDiagramController', function($scope, $translate, $uibModal, EnergyFlowDiagramService, toaster,SweetAlert) {
app.controller('EnergyFlowDiagramController', function(
$scope,
$window,
$translate,
$uibModal,
EnergyFlowDiagramService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllEnergyFlowDiagrams = function() {
EnergyFlowDiagramService.getAllEnergyFlowDiagrams(function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
@ -19,7 +26,8 @@ app.controller('EnergyFlowDiagramController', function($scope, $translate, $uibM
windowClass: "animated fadeIn",
});
modalInstance.result.then(function(energyflowdiagram) {
EnergyFlowDiagramService.addEnergyFlowDiagram(energyflowdiagram, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramService.addEnergyFlowDiagram(energyflowdiagram, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({
type: "success",
@ -58,7 +66,8 @@ app.controller('EnergyFlowDiagramController', function($scope, $translate, $uibM
});
modalInstance.result.then(function(modifiedEnergyFlowDiagram) {
EnergyFlowDiagramService.editEnergyFlowDiagram(modifiedEnergyFlowDiagram, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramService.editEnergyFlowDiagram(modifiedEnergyFlowDiagram, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
toaster.pop({
type: "success",
@ -95,7 +104,8 @@ app.controller('EnergyFlowDiagramController', function($scope, $translate, $uibM
closeOnCancel: true },
function (isConfirm) {
if (isConfirm) {
EnergyFlowDiagramService.deleteEnergyFlowDiagram(energyflowdiagram, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramService.deleteEnergyFlowDiagram(energyflowdiagram, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({
type: "success",

View File

@ -1,6 +1,18 @@
'use strict';
app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $translate, MeterService, VirtualMeterService, OfflineMeterService, EnergyFlowDiagramLinkService, EnergyFlowDiagramService, EnergyFlowDiagramNodeService, toaster,SweetAlert) {
app.controller('EnergyFlowDiagramLinkController', function(
$scope,
$window,
$uibModal,
$translate,
MeterService,
VirtualMeterService,
OfflineMeterService,
EnergyFlowDiagramLinkService,
EnergyFlowDiagramService,
EnergyFlowDiagramNodeService,
toaster,
SweetAlert) {
$scope.currentEnergyFlowDiagram = {selected:undefined};
$scope.is_show_add_link = false;
$scope.energyflowdiagrams = [];
@ -10,7 +22,7 @@ app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $tr
$scope.offlinemeters = [];
$scope.virtualmeters = [];
$scope.mergedMeters = [];
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllEnergyFlowDiagrams = function() {
EnergyFlowDiagramService.getAllEnergyFlowDiagrams(function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
@ -77,8 +89,8 @@ app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $tr
if (energyflowdiagramlink.meter != null) {
energyflowdiagramlink.meter_uuid = energyflowdiagramlink.meter.uuid;
}
EnergyFlowDiagramLinkService.addEnergyFlowDiagramLink(energyflowdiagramid, energyflowdiagramlink, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramLinkService.addEnergyFlowDiagramLink(energyflowdiagramid, energyflowdiagramlink, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({
type: "success",
@ -128,7 +140,8 @@ app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $tr
if (modifiedEnergyFlowDiagramLink.meter != null) {
modifiedEnergyFlowDiagramLink.meter_uuid = modifiedEnergyFlowDiagramLink.meter.uuid;
}
EnergyFlowDiagramLinkService.editEnergyFlowDiagramLink($scope.currentEnergyFlowDiagram.id, modifiedEnergyFlowDiagramLink, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramLinkService.editEnergyFlowDiagramLink($scope.currentEnergyFlowDiagram.id, modifiedEnergyFlowDiagramLink, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
toaster.pop({
type: "success",
@ -166,7 +179,8 @@ app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $tr
},
function(isConfirm) {
if (isConfirm) {
EnergyFlowDiagramLinkService.deleteEnergyFlowDiagramLink($scope.currentEnergyFlowDiagram.id, energyflowdiagramlink.id, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramLinkService.deleteEnergyFlowDiagramLink($scope.currentEnergyFlowDiagram.id, energyflowdiagramlink.id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({
type: "success",
@ -265,15 +279,14 @@ app.controller('EnergyFlowDiagramLinkController', function($scope,$uibModal, $tr
app.controller('ModalAddEnergyFlowDiagramLinkCtrl', function($scope, $uibModalInstance, params) {
$scope.operation = "ENERGY_FLOW_DIAGRAM.ADD_LINK";
$scope.energyflowdiagramlink = {
source_node: {id: null, name: null},
target_node: {id: null, name: null},
meter: {id: null, uuid: null, name: null, type: null},
};
$scope.energyflowdiagramnodes = params.energyflowdiagramnodes;
$scope.mergedmeters = params.mergedmeters;
$scope.energyflowdiagramlink = {
source_node: {id: null, name: null},
target_node: {id: null, name: null},
meter: {id: null, uuid: null, name: null, type: null},
};
$scope.energyflowdiagramnodes = params.energyflowdiagramnodes;
$scope.mergedmeters = params.mergedmeters;
$scope.ok = function() {
$uibModalInstance.close($scope.energyflowdiagramlink);
};
@ -285,8 +298,8 @@ app.controller('ModalAddEnergyFlowDiagramLinkCtrl', function($scope, $uibModalIn
app.controller('ModalEditEnergyFlowDiagramLinkCtrl', function($scope, $uibModalInstance, params) {
$scope.operation = "ENERGY_FLOW_DIAGRAM.EDIT_LINK";
$scope.energyflowdiagramlink = params.energyflowdiagramlink;
$scope.energyflowdiagramnodes = params.energyflowdiagramnodes;
$scope.mergedmeters = params.mergedmeters;
$scope.energyflowdiagramnodes = params.energyflowdiagramnodes;
$scope.mergedmeters = params.mergedmeters;
$scope.ok = function() {
$uibModalInstance.close($scope.energyflowdiagramlink);
};

View File

@ -1,10 +1,18 @@
'use strict';
app.controller('EnergyFlowDiagramNodeController', function($scope, $translate, $uibModal, EnergyFlowDiagramService, EnergyFlowDiagramNodeService, toaster,SweetAlert) {
app.controller('EnergyFlowDiagramNodeController', function(
$scope,
$window,
$translate,
$uibModal,
EnergyFlowDiagramService,
EnergyFlowDiagramNodeService,
toaster,
SweetAlert) {
$scope.energyflowdiagrams = [];
$scope.energyflowdiagramnodes = [];
$scope.currentEnergyFlowDiagram = null;
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllEnergyFlowDiagrams = function() {
EnergyFlowDiagramService.getAllEnergyFlowDiagrams(function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
@ -48,8 +56,8 @@ app.controller('EnergyFlowDiagramNodeController', function($scope, $translate, $
});
modalInstance.result.then(function(energyflowdiagramnode) {
var energyflowdiagramid = $scope.currentEnergyFlowDiagram.id;
EnergyFlowDiagramNodeService.addEnergyFlowDiagramNode(energyflowdiagramid, energyflowdiagramnode, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramNodeService.addEnergyFlowDiagramNode(energyflowdiagramid, energyflowdiagramnode, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({
type: "success",
@ -88,7 +96,8 @@ app.controller('EnergyFlowDiagramNodeController', function($scope, $translate, $
});
modalInstance.result.then(function(modifiedEnergyFlowDiagramNode) {
EnergyFlowDiagramNodeService.editEnergyFlowDiagramNode($scope.currentEnergyFlowDiagram.id, modifiedEnergyFlowDiagramNode, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramNodeService.editEnergyFlowDiagramNode($scope.currentEnergyFlowDiagram.id, modifiedEnergyFlowDiagramNode, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
toaster.pop({
type: "success",
@ -126,7 +135,8 @@ app.controller('EnergyFlowDiagramNodeController', function($scope, $translate, $
},
function(isConfirm) {
if (isConfirm) {
EnergyFlowDiagramNodeService.deleteEnergyFlowDiagramNode($scope.currentEnergyFlowDiagram.id, energyflowdiagramnode.id, function (response) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EnergyFlowDiagramNodeService.deleteEnergyFlowDiagramNode($scope.currentEnergyFlowDiagram.id, energyflowdiagramnode.id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({
type: "success",

View File

@ -17,24 +17,24 @@ app.factory('EnergyFlowDiagramService', function($http) {
callback(response);
});
},
addEnergyFlowDiagram: function(energyflowdiagram, callback) {
$http.post(getAPI()+'energyflowdiagrams',{data:energyflowdiagram})
addEnergyFlowDiagram: function(energyflowdiagram, headers, callback) {
$http.post(getAPI()+'energyflowdiagrams',{data:energyflowdiagram}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
editEnergyFlowDiagram: function(energyflowdiagram, callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagram.id,{data:energyflowdiagram})
editEnergyFlowDiagram: function(energyflowdiagram, headers, callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagram.id,{data:energyflowdiagram}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
deleteEnergyFlowDiagram: function(energyflowdiagram, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagram.id)
deleteEnergyFlowDiagram: function(energyflowdiagram, headers, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagram.id, {headers})
.then(function (response) {
callback(response);
}, function (response) {

View File

@ -10,16 +10,16 @@ app.factory('EnergyFlowDiagramLinkService', function($http) {
callback(response);
});
},
addEnergyFlowDiagramLink: function(energyflowdiagramID, energyflowdiagramlink, callback) {
$http.post(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links',{data:energyflowdiagramlink})
addEnergyFlowDiagramLink: function(energyflowdiagramID, energyflowdiagramlink, headers, callback) {
$http.post(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links',{data:energyflowdiagramlink}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
editEnergyFlowDiagramLink: function(energyflowdiagramID,energyflowdiagramlink,callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links/'+energyflowdiagramlink.id,{data:energyflowdiagramlink})
editEnergyFlowDiagramLink: function(energyflowdiagramID, energyflowdiagramlink, headers, callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links/'+energyflowdiagramlink.id,{data:energyflowdiagramlink}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
@ -27,8 +27,8 @@ app.factory('EnergyFlowDiagramLinkService', function($http) {
});
},
deleteEnergyFlowDiagramLink: function(energyflowdiagramID, linkID, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links/'+linkID)
deleteEnergyFlowDiagramLink: function(energyflowdiagramID, linkID, headers, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/links/'+linkID, {headers})
.then(function (response) {
callback(response);
}, function (response) {

View File

@ -9,16 +9,16 @@ app.factory('EnergyFlowDiagramNodeService', function($http) {
callback(response);
});
},
addEnergyFlowDiagramNode: function(energyflowdiagramID, energyflowdiagramnode,callback) {
$http.post(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes',{data:energyflowdiagramnode})
addEnergyFlowDiagramNode: function(energyflowdiagramID, energyflowdiagramnode, headers, callback) {
$http.post(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes',{data:energyflowdiagramnode}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
editEnergyFlowDiagramNode: function(energyflowdiagramID,energyflowdiagramnode,callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes/'+energyflowdiagramnode.id,{data:energyflowdiagramnode})
editEnergyFlowDiagramNode: function(energyflowdiagramID, energyflowdiagramnode, headers, callback) {
$http.put(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes/'+energyflowdiagramnode.id,{data:energyflowdiagramnode}, {headers})
.then(function (response) {
callback(response);
}, function (response) {
@ -26,8 +26,8 @@ app.factory('EnergyFlowDiagramNodeService', function($http) {
});
},
deleteEnergyFlowDiagramNode: function(energyflowdiagramID, nodeID, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes/'+nodeID)
deleteEnergyFlowDiagramNode: function(energyflowdiagramID, nodeID, headers, callback) {
$http.delete(getAPI()+'energyflowdiagrams/'+energyflowdiagramID+'/nodes/'+nodeID, {headers})
.then(function (response) {
callback(response);
}, function (response) {

View File

@ -1,84 +0,0 @@
<div class="inmodal">
<div class="modal-header">
<h4 class="modal-title">{{operation | translate}}</h4>
</div>
<div class="modal-body">
<form role="form" name="form_equipmentparameter" novalidate class="form-horizontal">
<div class="form-group">
<label class="col-sm-4 control-label">{{'EQUIPMENT.PARAMETER_NAME' | translate}}</label>
<div class="col-sm-8"><input ng-model="equipmentparameter.name" type="text" name="equipmentparametername" class="form-control" required="">
<div class="m-t-xs" ng-show="form_equipmentparameter.equipmentparametername.$invalid && form_equipmentparameter.equipmentparametername.$dirty">
<small class="text-danger" ng-show="form_equipmentparameter.equipmentparametername.$error.required">{{'EQUIPMENT.INPUT_PARAMETER_NAME' | translate}}</small>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-4 control-label">{{'EQUIPMENT.PARAMETER_TYPE' | translate}}</label>
<div class="col-sm-8">
<select ng-disabled="is_disabled" name="equipment_parameter_type" ng-model="equipmentparameter.parameter_type" class="form-control m-b">
<option value="constant">{{'EQUIPMENT.CONSTANT' | translate}}</option>
<option value="point">{{'EQUIPMENT.POINT' | translate}}</option>
<option value="fraction">{{'EQUIPMENT.FRACTION' | translate}}</option>
</select>
<div class="m-t-xs" ng-show="form_equipmentparameter.equipmentparameter.parameter_type.$invalid && form_equipmentparameter.equipmentparameter.parameter_type.$dirty">
<small class="text-danger" ng-show="form_equipmentparameter.equipmentparameter.parameter_type.$error.required">{{'EQUIPMENT.SELECT_PARAMETER_TYPE' | translate}}</small>
</div>
</div>
</div>
<div class="hr-line-dashed" ng-show=" equipmentparameter.parameter_type=='constant' "></div>
<div class="form-group" ng-show=" equipmentparameter.parameter_type=='constant' ">
<label class="col-sm-4 control-label">{{'EQUIPMENT.CONSTANT' | translate}}</label>
<div class="col-sm-8">
<input ng-model="equipmentparameter.constant" type="text" name="equipmentparameterconstant" class="form-control" >
<div class="m-t-xs" ng-show="form_equipmentparameter.equipmentparameterconstant.$invalid && form_equipmentparameter.equipmentparameterconstant.$dirty">
<small class="text-danger" ng-show="form_equipmentparameter.equipmentparameterconstant.$error.required">{{'EQUIPMENT.INPUT_CONSTANT' | translate}}</small>
</div>
</div>
</div>
<div class="hr-line-dashed" ng-show=" equipmentparameter.parameter_type=='point' "></div>
<div class="form-group" ng-show=" equipmentparameter.parameter_type=='point' " >
<label class="col-sm-4 control-label">{{'EQUIPMENT.POINT' | translate}}</label>
<div class="col-sm-8">
<ui-select ng-model="equipmentparameter.point.id" name="equipmentparameter.point_id" theme="bootstrap">
<ui-select-match allow-clear="false" placeholder="{{'COMMON.PLACEHOLDER' | translate}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="point.id as point in points | filter: $select.search">
<div ng-bind-html="point.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
<div class="m-t-xs" ng-show="form_equipmentparameter.point_id.$invalid && form_equipmentparameter.point_id.$dirty">
<small class="text-danger" ng-show="form_equipmentparameter.point_id.$error.required">{{'EQUIPMENT.SELECT_POINT' | translate}}</small>
</div>
</div>
</div>
<div class="hr-line-dashed" ng-show=" equipmentparameter.parameter_type=='fraction' "></div>
<div class="form-group" ng-show=" equipmentparameter.parameter_type=='fraction' ">
<label class="col-sm-4 control-label">{{'EQUIPMENT.PARAMETER_NUMERATOR_METER' | translate}}</label>
<div class="col-sm-8">
<ui-select ng-model="equipmentparameter.numerator_meter.uuid" name="equipmentparameter.numerator_meter_uuid" theme="bootstrap" required>
<ui-select-match allow-clear="false" placeholder="{{'COMMON.PLACEHOLDER' | translate}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="meter.uuid as meter in mergedmeters | filter: $select.search">
<div ng-bind-html="meter.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</div>
</div>
<div class="hr-line-dashed" ng-show=" equipmentparameter.parameter_type=='fraction' "></div>
<div class="form-group" ng-show=" equipmentparameter.parameter_type=='fraction' ">
<label class="col-sm-4 control-label">{{'EQUIPMENT.PARAMETER_DENOMINATOR_METER' | translate}}</label>
<div class="col-sm-8">
<ui-select ng-model="equipmentparameter.denominator_meter.uuid" name="equipmentparameter.denominator_meter_uuid" theme="bootstrap" required>
<ui-select-match allow-clear="false" placeholder="{{'COMMON.PLACEHOLDER' | translate}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="meter.uuid as meter in mergedmeters | filter: $select.search">
<div ng-bind-html="meter.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-white" ng-click="cancel()">{{'SETTING.CANCEL' | translate}}</button>
<button type="button" ng-disabled="form_meter.$invalid" class="btn btn-primary" ng-click="ok()">{{'SETTING.SAVE' | translate}}</button>
</div>
</div>

View File

@ -1,6 +1,6 @@
{
"info": {
"_postman_id": "98580f5c-106c-4b86-8262-ec3c918608e1",
"_postman_id": "275f5f12-078c-421a-a050-f054e344dc2b",
"name": "MyEMS",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
@ -2030,7 +2030,20 @@
"name": "POST Create an Energy Flow Diagram",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"description": "Any admin users' UUID",
"type": "text"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"description": "Login to get a valid token",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"MyEMS Energy Flow\"}}"
@ -2051,19 +2064,32 @@
"name": "PUT Update an Energy Flow Diagram",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"description": "Any admin users' UUID",
"type": "text"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"description": "Login to get a valid token",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"MyEMS Energy Flow Diagram\"}}"
},
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1",
"raw": "{{base_url}}/energyflowdiagrams/2000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1"
"2000000"
]
}
},
@ -2073,15 +2099,28 @@
"name": "DELETE an Energy Flow Diagram",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"description": "Any admin users' UUID",
"type": "text"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"description": "Login to get a valid token",
"type": "text"
}
],
"url": {
"raw": "{{base_url}}/energyflowdiagrams/2",
"raw": "{{base_url}}/energyflowdiagrams/2000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"2"
"2000000"
]
}
},
@ -2093,13 +2132,13 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/nodes",
"raw": "{{base_url}}/energyflowdiagrams/1000000/nodes",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"nodes"
]
}
@ -2110,19 +2149,32 @@
"name": "POST Create new Node of an Energy Flow Diagram",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"10KV#3\"}}"
},
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/nodes",
"raw": "{{base_url}}/energyflowdiagrams/1000000/nodes",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"nodes"
]
}
@ -2133,21 +2185,34 @@
"name": "PUT Update an Node of an Energy Flow Diagram",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"10KV Input #1\"}}"
},
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/nodes/1",
"raw": "{{base_url}}/energyflowdiagrams/1000000/nodes/3000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"nodes",
"1"
"3000000"
]
}
},
@ -2157,17 +2222,30 @@
"name": "DELETE an Node of an Energy Flow Diagram",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/nodes/3",
"raw": "{{base_url}}/energyflowdiagrams/1000000/nodes/3000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"nodes",
"3"
"3000000"
]
}
},
@ -2179,13 +2257,13 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/links",
"raw": "{{base_url}}/energyflowdiagrams/1000000/links",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"links"
]
}
@ -2196,19 +2274,32 @@
"name": "POST Create new Link of an Energy Flow Diagram",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"source_node_id\":1, \"target_node_id\":2, \"meter_uuid\":\"493cd112-6295-43c6-98aa-e7f801e7b7ba\"}}"
"raw": "{\"data\":{\"source_node_id\":1000000, \"target_node_id\":1000008, \"meter_uuid\":\"eb78f7f9-f26f-463b-92fa-d9daf5b3651c\"}}"
},
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/links",
"raw": "{{base_url}}/energyflowdiagrams/1000000/links",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"links"
]
}
@ -2219,21 +2310,34 @@
"name": "PUT Update a Link of an Energy Flow Diagram",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"source_node_id\":1, \"target_node_id\":4, \"meter_uuid\":\"493cd112-6295-43c6-98aa-e7f801e7b7ba\"}}"
"raw": "{\"data\":{\"source_node_id\":1000000, \"target_node_id\":1000009, \"meter_uuid\":\"eb78f7f9-f26f-463b-92fa-d9daf5b3651c\"}}"
},
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/links/1",
"raw": "{{base_url}}/energyflowdiagrams/1000000/links/3000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"links",
"1"
"3000000"
]
}
},
@ -2243,17 +2347,30 @@
"name": "DELETE a Link of an Energy Flow Diagram",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "bd16461ce31dca5c026ee17b1e6e10167d7558230fc6387b4149819a1a2b0d19b87b72687fa488ee41b358b7d229ab44f1011968308c0cf3e9d379e6ae6b2565",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/energyflowdiagrams/1/links/2",
"raw": "{{base_url}}/energyflowdiagrams/1000000/links/3000000",
"host": [
"{{base_url}}"
],
"path": [
"energyflowdiagrams",
"1",
"1000000",
"links",
"2"
"3000000"
]
}
},

View File

@ -604,15 +604,15 @@ curl -i -X GET {{base_url}}/energyflowdiagrams
```
* DELETE an Energy Flow Diagram by ID
```bash
curl -i -X DELETE {{base_url}}/energyflowdiagrams/{id}
curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X DELETE {{base_url}}/energyflowdiagrams/{id}
```
* POST Create an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"name":"MyEMS Energy Flow"}}' {{base_url}}/energyflowdiagrams
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X POST -d '{"data":{"name":"MyEMS Energy Flow"}}' {{base_url}}/energyflowdiagrams
```
* PUT Update an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X PUT -d '{"data":{"name":"MyEMS Energy Flow Diagram"}}' {{base_url}}/energyflowdiagrams/{id}
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X PUT -d '{"data":{"name":"MyEMS Energy Flow Diagram"}}' {{base_url}}/energyflowdiagrams/{id}
```
* GET All Nodes of an Energy Flow Diagram by ID
```bash
@ -620,15 +620,15 @@ curl -i -X GET {{base_url}}/energyflowdiagrams/{id}/nodes
```
* POST Create a Node of an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"name":"10KV#1"}}' {{base_url}}/energyflowdiagrams/{id}/nodes
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X POST -d '{"data":{"name":"10KV#1"}}' {{base_url}}/energyflowdiagrams/{id}/nodes
```
* PUT Update a Node of an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"name":"10KV#2"}}' {{base_url}}/energyflowdiagrams/{id}/nodes/{nid}
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X POST -d '{"data":{"name":"10KV#2"}}' {{base_url}}/energyflowdiagrams/{id}/nodes/{nid}
```
* DELETE a Node of an Energy Flow Diagram
```bash
curl -i -X DELETE {{base_url}}/energyflowdiagrams/{id}/nodes/{nid}
curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X DELETE {{base_url}}/energyflowdiagrams/{id}/nodes/{nid}
```
* GET All Links of an Energy Flow Diagram by ID
```bash
@ -636,15 +636,15 @@ curl -i -X GET {{base_url}}/energyflowdiagrams/{id}/links
```
* POST Create a Link of an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"source_node_id":1, "target_node_id":3, "meter_uuid":"d806a78d-a31e-4833-b5c8-81261cfeb1f2"}}' {{base_url}}/energyflowdiagrams/{id}/links
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X POST -d '{"data":{"source_node_id":1, "target_node_id":3, "meter_uuid":"d806a78d-a31e-4833-b5c8-81261cfeb1f2"}}' {{base_url}}/energyflowdiagrams/{id}/links
```
* PUT Update a Link of an Energy Flow Diagram
```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"source_node_id":1, "target_node_id":4, "meter_uuid":"d806a78d-a31e-4833-b5c8-81261cfeb1f2"}}' {{base_url}}/energyflowdiagrams/{id}/links/{lid}
curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X POST -d '{"data":{"source_node_id":1, "target_node_id":4, "meter_uuid":"d806a78d-a31e-4833-b5c8-81261cfeb1f2"}}' {{base_url}}/energyflowdiagrams/{id}/links/{lid}
```
* DELETE a Link of an Energy Flow Diagram
```bash
curl -i -X DELETE {{base_url}}/energyflowdiagrams/{id}/links/{lid}
curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X DELETE {{base_url}}/energyflowdiagrams/{id}/links/{lid}
```
### Energy Item

View File

@ -3,7 +3,7 @@ import simplejson as json
import mysql.connector
import config
import uuid
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class EnergyFlowDiagramCollection:
@ -124,6 +124,7 @@ class EnergyFlowDiagramCollection:
@user_logger
def on_post(req, resp):
"""Handles POST requests"""
access_control(req)
try:
raw_json = req.stream.read().decode('utf-8')
except Exception as ex:
@ -285,6 +286,7 @@ class EnergyFlowDiagramItem:
@staticmethod
@user_logger
def on_delete(req, resp, id_):
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -315,6 +317,7 @@ class EnergyFlowDiagramItem:
@user_logger
def on_put(req, resp, id_):
"""Handles PUT requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -477,6 +480,7 @@ class EnergyFlowDiagramLinkCollection:
@user_logger
def on_post(req, resp, id_):
"""Handles POST requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -720,6 +724,7 @@ class EnergyFlowDiagramLinkItem:
@staticmethod
@user_logger
def on_delete(req, resp, id_, lid):
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -768,6 +773,7 @@ class EnergyFlowDiagramLinkItem:
@user_logger
def on_put(req, resp, id_, lid):
"""Handles PUT requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -974,6 +980,7 @@ class EnergyFlowDiagramNodeCollection:
@user_logger
def on_post(req, resp, id_):
"""Handles POST requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -1069,6 +1076,7 @@ class EnergyFlowDiagramNodeItem:
@staticmethod
@user_logger
def on_delete(req, resp, id_, nid):
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')
@ -1117,6 +1125,7 @@ class EnergyFlowDiagramNodeItem:
@user_logger
def on_put(req, resp, id_, nid):
"""Handles PUT requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_ENERGY_FLOW_DIAGRAM_ID')