added access control to meter in api and admin

pull/82/MERGE
13621160019@163.com 2021-11-27 21:15:43 +08:00
parent d937acd1bb
commit 3b0d4a13f5
17 changed files with 201 additions and 52 deletions

View File

@ -1,6 +1,19 @@
'use strict'; 'use strict';
app.controller('CombinedEquipmentParameterController', function ($scope, $uibModal, $translate, MeterService, VirtualMeterService, OfflineMeterService, CombinedEquipmentParameterService, CombinedEquipmentService, PointService, toaster, SweetAlert) { app.controller('CombinedEquipmentParameterController', function (
$scope,
$window,
$uibModal,
$translate,
MeterService,
VirtualMeterService,
OfflineMeterService,
CombinedEquipmentParameterService,
CombinedEquipmentService,
PointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentCombinedEquipment = { selected: undefined }; $scope.currentCombinedEquipment = { selected: undefined };
$scope.is_show_add_parameter = false; $scope.is_show_add_parameter = false;
$scope.combinedequipments = []; $scope.combinedequipments = [];
@ -36,7 +49,6 @@ app.controller('CombinedEquipmentParameterController', function ($scope, $uibMod
}; };
$scope.addCombinedEquipmentParameter = function () { $scope.addCombinedEquipmentParameter = function () {
var modalInstance = $uibModal.open({ var modalInstance = $uibModal.open({
templateUrl: 'views/settings/combinedequipment/combinedequipmentparameter.model.html', templateUrl: 'views/settings/combinedequipment/combinedequipmentparameter.model.html',
controller: 'ModalAddCombinedEquipmentParameterCtrl', controller: 'ModalAddCombinedEquipmentParameterCtrl',
@ -250,7 +262,8 @@ app.controller('CombinedEquipmentParameterController', function ($scope, $uibMod
}; };
$scope.getAllPoints = function () { $scope.getAllPoints = function () {
PointService.getAllPoints(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getAllPoints(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
app.controller('DataSourceController', function($scope, app.controller('DataSourceController', function(
$scope,
$window, $window,
$uibModal, $uibModal,
$translate, $translate,

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
app.controller('PointController', function($scope, app.controller('PointController', function(
$scope,
$window, $window,
$uibModal, $uibModal,
$translate, $translate,

View File

@ -1,9 +1,21 @@
'use strict'; 'use strict';
app.controller('DistributionCircuitPointController', function ($scope, $timeout, $translate, DistributionCircuitService, DataSourceService, PointService, DistributionCircuitPointService, toaster, SweetAlert) { app.controller('DistributionCircuitPointController', function (
$scope,
$window,
$timeout,
$translate,
DistributionCircuitService,
DataSourceService,
PointService,
DistributionCircuitPointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentDistributionCircuit = {selected:undefined}; $scope.currentDistributionCircuit = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -17,7 +29,8 @@ app.controller('DistributionCircuitPointController', function ($scope, $timeout,
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,6 +1,18 @@
'use strict'; 'use strict';
app.controller('EquipmentParameterController', function($scope, $uibModal, $translate, MeterService, VirtualMeterService, OfflineMeterService, EquipmentParameterService, EquipmentService, PointService, toaster,SweetAlert) { app.controller('EquipmentParameterController', function(
$scope,
$window,
$uibModal,
$translate,
MeterService,
VirtualMeterService,
OfflineMeterService,
EquipmentParameterService,
EquipmentService,
PointService,
toaster,SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentEquipment = {selected:undefined}; $scope.currentEquipment = {selected:undefined};
$scope.is_show_add_parameter = false; $scope.is_show_add_parameter = false;
$scope.equipments = []; $scope.equipments = [];
@ -251,7 +263,8 @@ app.controller('EquipmentParameterController', function($scope, $uibModal, $tran
}; };
$scope.getAllPoints = function() { $scope.getAllPoints = function() {
PointService.getAllPoints(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getAllPoints(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,7 +1,16 @@
'use strict'; 'use strict';
app.controller('MeterController', function($scope, $translate, $uibModal, MeterService, CategoryService, CostCenterService, EnergyItemService,toaster, SweetAlert) { app.controller('MeterController', function($scope,
$window,
$translate,
$uibModal,
MeterService,
CategoryService,
CostCenterService,
EnergyItemService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllCostCenters = function() { $scope.getAllCostCenters = function() {
CostCenterService.getAllCostCenters(function (response) { CostCenterService.getAllCostCenters(function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {

View File

@ -1,14 +1,20 @@
'use strict'; 'use strict';
app.controller('MeterPointController', function ($scope, $timeout, $translate, app.controller('MeterPointController', function (
MeterService, $scope,
DataSourceService, $window,
PointService, $timeout,
MeterPointService, $translate,
toaster) { MeterService,
DataSourceService,
PointService,
MeterPointService,
toaster) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentMeter = {selected:undefined}; $scope.currentMeter = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -22,7 +28,8 @@ app.controller('MeterPointController', function ($scope, $timeout, $translate,
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {
@ -69,7 +76,8 @@ app.controller('MeterPointController', function ($scope, $timeout, $translate,
$scope.pairPoint = function (dragEl, dropEl) { $scope.pairPoint = function (dragEl, dropEl) {
var pointid = angular.element('#' + dragEl).scope().point.id; var pointid = angular.element('#' + dragEl).scope().point.id;
var meterid = $scope.currentMeter.id; var meterid = $scope.currentMeter.id;
MeterPointService.addPair(meterid, pointid, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
MeterPointService.addPair(meterid, pointid, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) { if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -95,7 +103,8 @@ app.controller('MeterPointController', function ($scope, $timeout, $translate,
} }
var meterpointid = angular.element('#' + dragEl).scope().meterpoint.id; var meterpointid = angular.element('#' + dragEl).scope().meterpoint.id;
var meterid = $scope.currentMeter.id; var meterid = $scope.currentMeter.id;
MeterPointService.deletePair(meterid, meterpointid, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
MeterPointService.deletePair(meterid, meterpointid, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) { if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({ toaster.pop({
type: "success", type: "success",

View File

@ -1,9 +1,21 @@
'use strict'; 'use strict';
app.controller('SensorPointController', function ($scope, $timeout, $translate, SensorService, DataSourceService, PointService, SensorPointService, toaster, SweetAlert) { app.controller('SensorPointController', function (
$scope,
$window,
$timeout,
$translate,
SensorService,
DataSourceService,
PointService,
SensorPointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentSensor = {selected:undefined}; $scope.currentSensor = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -18,7 +30,8 @@ app.controller('SensorPointController', function ($scope, $timeout, $translate,
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,9 +1,20 @@
'use strict'; 'use strict';
app.controller('ShopfloorPointController', function ($scope, $translate, ShopfloorService, DataSourceService, PointService, ShopfloorPointService, toaster, SweetAlert) { app.controller('ShopfloorPointController', function (
$scope,
$window,
$translate,
ShopfloorService,
DataSourceService,
PointService,
ShopfloorPointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentShopfloor = {selected:undefined}; $scope.currentShopfloor = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -17,7 +28,8 @@ app.controller('ShopfloorPointController', function ($scope, $translate, Shopflo
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,6 +1,16 @@
'use strict'; 'use strict';
app.controller('SpacePointController', function ($scope, $translate, SpaceService, DataSourceService, PointService, SpacePointService, toaster, SweetAlert) { app.controller('SpacePointController', function (
$scope,
$window,
$translate,
SpaceService,
DataSourceService,
PointService,
SpacePointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.spaces = []; $scope.spaces = [];
$scope.currentSpaceID = 1; $scope.currentSpaceID = 1;
$scope.spacepoints = []; $scope.spacepoints = [];
@ -42,7 +52,8 @@ app.controller('SpacePointController', function ($scope, $translate, SpaceServic
}; };
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -56,7 +67,8 @@ app.controller('SpacePointController', function ($scope, $translate, SpaceServic
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,9 +1,20 @@
'use strict'; 'use strict';
app.controller('StorePointController', function ($scope, $translate, StoreService, DataSourceService, PointService, StorePointService, toaster, SweetAlert) { app.controller('StorePointController', function (
$window,
$scope,
$translate,
StoreService,
DataSourceService,
PointService,
StorePointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentStore = {selected:undefined}; $scope.currentStore = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -17,7 +28,8 @@ app.controller('StorePointController', function ($scope, $translate, StoreServic
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -1,9 +1,20 @@
'use strict'; 'use strict';
app.controller('TenantPointController', function ($scope, $translate, TenantService, DataSourceService, PointService, TenantPointService, toaster, SweetAlert) { app.controller('TenantPointController', function (
$scope,
$window,
$translate,
TenantService,
DataSourceService,
PointService,
TenantPointService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.currentTenant = {selected:undefined}; $scope.currentTenant = {selected:undefined};
$scope.getAllDataSources = function () { $scope.getAllDataSources = function () {
DataSourceService.getAllDataSources(function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
DataSourceService.getAllDataSources(headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.datasources = response.data; $scope.datasources = response.data;
if ($scope.datasources.length > 0) { if ($scope.datasources.length > 0) {
@ -17,7 +28,8 @@ app.controller('TenantPointController', function ($scope, $translate, TenantServ
}; };
$scope.getPointsByDataSourceID = function (id) { $scope.getPointsByDataSourceID = function (id) {
PointService.getPointsByDataSourceID(id, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
PointService.getPointsByDataSourceID(id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
$scope.points = response.data; $scope.points = response.data;
} else { } else {

View File

@ -2,7 +2,7 @@
app.factory('DataSourceService', function($http) { app.factory('DataSourceService', function($http) {
return { return {
getAllDataSources:function(headers, callback){ getAllDataSources:function(headers, callback){
$http.get(getAPI()+'datasources', {headers}) $http.get(getAPI() + 'datasources', {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {

View File

@ -1,8 +1,8 @@
'use strict'; 'use strict';
app.factory('MeterPointService', function($http) { app.factory('MeterPointService', function($http) {
return { return {
addPair: function(meterID,pointID,callback) { addPair: function(meterID, pointID, headers, callback) {
$http.post(getAPI()+'meters/'+meterID+'/points',{data:{'point_id':pointID}}) $http.post(getAPI() + 'meters/' + meterID + '/points', {data:{'point_id':pointID}}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
@ -10,8 +10,8 @@ app.factory('MeterPointService', function($http) {
}); });
}, },
deletePair: function(meterID,pointID, callback) { deletePair: function(meterID,pointID, headers, callback) {
$http.delete(getAPI()+'meters/'+meterID+'/points/'+pointID) $http.delete(getAPI() + 'meters/' + meterID + '/points/' + pointID, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
@ -19,7 +19,7 @@ app.factory('MeterPointService', function($http) {
}); });
}, },
getPointsByMeterID: function(id, callback) { getPointsByMeterID: function(id, callback) {
$http.get(getAPI()+'meters/'+id+'/points') $http.get(getAPI() + 'meters/' + id + '/points')
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {

View File

@ -3432,7 +3432,20 @@
"name": "POST Meter Point Relation", "name": "POST Meter Point Relation",
"request": { "request": {
"method": "POST", "method": "POST",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4 ",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "ee46c3c7ca148dcb76af23fd2431fd925d20d570c363dc8d478a3afa74a9c8743886cdaf8d37b94faa49210d9003a916313790c7818c2ab7e87647489aaabfb7",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"point_id\":\"3\"}}" "raw": "{\"data\":{\"point_id\":\"3\"}}"
@ -3474,7 +3487,20 @@
"name": "DELETE Meter Point Relation", "name": "DELETE Meter Point Relation",
"request": { "request": {
"method": "DELETE", "method": "DELETE",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4 ",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "ee46c3c7ca148dcb76af23fd2431fd925d20d570c363dc8d478a3afa74a9c8743886cdaf8d37b94faa49210d9003a916313790c7818c2ab7e87647489aaabfb7",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": { "url": {
"raw": "{{base_url}}/meters/1/points/3", "raw": "{{base_url}}/meters/1/points/3",
"host": [ "host": [

View File

@ -574,15 +574,15 @@ curl -i -X GET {{base_url}}/energycategories
``` ```
* DELETE an Energy Category by ID * DELETE an Energy Category by ID
```bash ```bash
curl -i -X DELETE {{base_url}}/energycategories/{id} curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X DELETE {{base_url}}/energycategories/{id}
``` ```
* POST Create an Energy Category * POST Create an Energy Category
```bash ```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"name":"电","unit_of_measure":"kWh", "kgce":0.1229 , "kgco2e":0.8825}}' {{base_url}}/energycategories curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -H "Content-Type: application/json" -X POST -d '{"data":{"name":"电","unit_of_measure":"kWh", "kgce":0.1229 , "kgco2e":0.8825}}' {{base_url}}/energycategories
``` ```
* PUT Update an Energy Category * PUT Update an Energy Category
```bash ```bash
curl -i -H "Content-Type: application/json" -X PUT -d '{"data":{"name":"电","unit_of_measure":"kWh", "kgce":0.1329 , "kgco2e":0.9825}}' {{base_url}}/energycategories/{id} curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -H "Content-Type: application/json" -X PUT -d '{"data":{"name":"电","unit_of_measure":"kWh", "kgce":0.1329 , "kgco2e":0.9825}}' {{base_url}}/energycategories/{id}
``` ```
### Energy Flow Diagram ### Energy Flow Diagram
@ -1053,11 +1053,11 @@ curl -i -X DELETE {{base_url}}/meters/{id}
``` ```
* POST Create a Meter * POST Create a Meter
```bash ```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"name":"PM20", "energy_category_id":1, "hourly_low_limit":0.000, "hourly_high_limit":999.999, "is_counted":true, "cost_center_id":1, "energy_item_id":1, "master_meter_id":1, "description":"空调用电"}}' {{base_url}}/meters curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: 073b43c05dadd89b833c0595b81c49cb9c1a54ca52b024b301a001720e52c5bf3b95951d5c54766de1028d20301cbd2bb6ec3fb62f9e14d9658cbf3811fe6c93" -X POST -d '{"data":{"name":"PM20", "energy_category_id":1, "hourly_low_limit":0.000, "hourly_high_limit":999.999, "is_counted":true, "cost_center_id":1, "energy_item_id":1, "master_meter_id":1, "description":"空调用电"}}' {{base_url}}/meters
``` ```
* PUT Update a Meter * PUT Update a Meter
```bash ```bash
curl -i -H "Content-Type: application/json" -X PUT -d '{"data":{"name":"PM20", "energy_category_id":1, "hourly_low_limit":0.000, "hourly_high_limit":999.999, "is_counted":true, "cost_center_id":1, "energy_item_id":1, "master_meter_id":1, "description":"空调用电"}}' {{base_url}}/meters/{id} curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: 073b43c05dadd89b833c0595b81c49cb9c1a54ca52b024b301a001720e52c5bf3b95951d5c54766de1028d20301cbd2bb6ec3fb62f9e14d9658cbf3811fe6c93" -X PUT -d '{"data":{"name":"PM20", "energy_category_id":1, "hourly_low_limit":0.000, "hourly_high_limit":999.999, "is_counted":true, "cost_center_id":1, "energy_item_id":1, "master_meter_id":1, "description":"空调用电"}}' {{base_url}}/meters/{id}
``` ```
* GET All Submeters of Meter by ID * GET All Submeters of Meter by ID
```bash ```bash
@ -1069,11 +1069,11 @@ curl -i -X GET {{base_url}}/meters/{id}/points
``` ```
* POST Meter Point Relation * POST Meter Point Relation
```bash ```bash
curl -i -H "Content-Type: application/json" -X POST -d '{"data":{"point_id":"3"}}' {{base_url}}/meters/{id}/points curl -i -H "Content-Type: application/json" -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: 073b43c05dadd89b833c0595b81c49cb9c1a54ca52b024b301a001720e52c5bf3b95951d5c54766de1028d20301cbd2bb6ec3fb62f9e14d9658cbf3811fe6c93" -X POST -d '{"data":{"point_id":"3"}}' {{base_url}}/meters/{id}/points
``` ```
* DELETE Meter Point Relation * DELETE Meter Point Relation
```bash ```bash
curl -i -X DELETE {{base_url}}/meters/{id}/points/{pid} curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: 073b43c05dadd89b833c0595b81c49cb9c1a54ca52b024b301a001720e52c5bf3b95951d5c54766de1028d20301cbd2bb6ec3fb62f9e14d9658cbf3811fe6c93" -X DELETE {{base_url}}/meters/{id}/points/{pid}
``` ```
### Notification ### Notification

View File

@ -900,6 +900,7 @@ class MeterPointCollection:
@user_logger @user_logger
def on_post(req, resp, id_): def on_post(req, resp, id_):
"""Handles POST requests""" """Handles POST requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
except Exception as ex: except Exception as ex:
@ -967,6 +968,8 @@ class MeterPointItem:
@staticmethod @staticmethod
@user_logger @user_logger
def on_delete(req, resp, id_, pid): def on_delete(req, resp, id_, pid):
"""Handles DELETE requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_METER_ID') description='API.INVALID_METER_ID')