|
@@ 1260-1338 (lines=79) @@
|
| 1257 |
|
description='API.EQUIPMENT_PARAMETER_NAME_IS_ALREADY_IN_USE') |
| 1258 |
|
|
| 1259 |
|
# validate by parameter type |
| 1260 |
|
if parameter_type == 'point': |
| 1261 |
|
if point_id is None: |
| 1262 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1263 |
|
description='API.INVALID_POINT_ID') |
| 1264 |
|
|
| 1265 |
|
query = (" SELECT id, name " |
| 1266 |
|
" FROM tbl_points " |
| 1267 |
|
" WHERE id = %s ") |
| 1268 |
|
cursor.execute(query, (point_id, )) |
| 1269 |
|
row = cursor.fetchone() |
| 1270 |
|
if row is None: |
| 1271 |
|
cursor.close() |
| 1272 |
|
cnx.close() |
| 1273 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1274 |
|
description='API.POINT_NOT_FOUND') |
| 1275 |
|
|
| 1276 |
|
elif parameter_type == 'constant': |
| 1277 |
|
if constant is None: |
| 1278 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1279 |
|
description='API.INVALID_CONSTANT_VALUE') |
| 1280 |
|
|
| 1281 |
|
elif parameter_type == 'fraction': |
| 1282 |
|
|
| 1283 |
|
query = (" SELECT id, name, uuid " |
| 1284 |
|
" FROM tbl_meters ") |
| 1285 |
|
cursor.execute(query) |
| 1286 |
|
rows_meters = cursor.fetchall() |
| 1287 |
|
|
| 1288 |
|
meter_dict = dict() |
| 1289 |
|
if rows_meters is not None and len(rows_meters) > 0: |
| 1290 |
|
for row in rows_meters: |
| 1291 |
|
meter_dict[row[2]] = {"type": 'meter', |
| 1292 |
|
"id": row[0], |
| 1293 |
|
"name": row[1], |
| 1294 |
|
"uuid": row[2]} |
| 1295 |
|
|
| 1296 |
|
query = (" SELECT id, name, uuid " |
| 1297 |
|
" FROM tbl_offline_meters ") |
| 1298 |
|
cursor.execute(query) |
| 1299 |
|
rows_offline_meters = cursor.fetchall() |
| 1300 |
|
|
| 1301 |
|
offline_meter_dict = dict() |
| 1302 |
|
if rows_offline_meters is not None and len(rows_offline_meters) > 0: |
| 1303 |
|
for row in rows_offline_meters: |
| 1304 |
|
offline_meter_dict[row[2]] = {"type": 'offline_meter', |
| 1305 |
|
"id": row[0], |
| 1306 |
|
"name": row[1], |
| 1307 |
|
"uuid": row[2]} |
| 1308 |
|
|
| 1309 |
|
query = (" SELECT id, name, uuid " |
| 1310 |
|
" FROM tbl_virtual_meters ") |
| 1311 |
|
cursor.execute(query) |
| 1312 |
|
rows_virtual_meters = cursor.fetchall() |
| 1313 |
|
|
| 1314 |
|
virtual_meter_dict = dict() |
| 1315 |
|
if rows_virtual_meters is not None and len(rows_virtual_meters) > 0: |
| 1316 |
|
for row in rows_virtual_meters: |
| 1317 |
|
virtual_meter_dict[row[2]] = {"type": 'virtual_meter', |
| 1318 |
|
"id": row[0], |
| 1319 |
|
"name": row[1], |
| 1320 |
|
"uuid": row[2]} |
| 1321 |
|
|
| 1322 |
|
# validate numerator meter uuid |
| 1323 |
|
if meter_dict.get(numerator_meter_uuid) is None and \ |
| 1324 |
|
virtual_meter_dict.get(numerator_meter_uuid) is None and \ |
| 1325 |
|
offline_meter_dict.get(numerator_meter_uuid) is None: |
| 1326 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1327 |
|
description='API.INVALID_NUMERATOR_METER_UUID') |
| 1328 |
|
|
| 1329 |
|
# validate denominator meter uuid |
| 1330 |
|
if denominator_meter_uuid == numerator_meter_uuid: |
| 1331 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1332 |
|
description='API.INVALID_DENOMINATOR_METER_UUID') |
| 1333 |
|
|
| 1334 |
|
if denominator_meter_uuid not in meter_dict and \ |
| 1335 |
|
denominator_meter_uuid not in virtual_meter_dict and \ |
| 1336 |
|
denominator_meter_uuid not in offline_meter_dict: |
| 1337 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 1338 |
|
description='API.INVALID_DENOMINATOR_METER_UUID') |
| 1339 |
|
|
| 1340 |
|
add_values = (" UPDATE tbl_equipments_parameters " |
| 1341 |
|
" SET name = %s , parameter_type = %s, constant = %s, " |
|
@@ 875-949 (lines=75) @@
|
| 872 |
|
description='API.EQUIPMENT_PARAMETER_NAME_IS_ALREADY_IN_USE') |
| 873 |
|
|
| 874 |
|
# validate by parameter type |
| 875 |
|
if parameter_type == 'point': |
| 876 |
|
if point_id is None: |
| 877 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 878 |
|
description='API.INVALID_POINT_ID') |
| 879 |
|
query = (" SELECT id, name " |
| 880 |
|
" FROM tbl_points " |
| 881 |
|
" WHERE id = %s ") |
| 882 |
|
cursor.execute(query, (point_id, )) |
| 883 |
|
if cursor.fetchone() is None: |
| 884 |
|
cursor.close() |
| 885 |
|
cnx.close() |
| 886 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 887 |
|
description='API.POINT_NOT_FOUND') |
| 888 |
|
|
| 889 |
|
elif parameter_type == 'constant': |
| 890 |
|
if constant is None: |
| 891 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 892 |
|
description='API.INVALID_CONSTANT_VALUE') |
| 893 |
|
|
| 894 |
|
elif parameter_type == 'fraction': |
| 895 |
|
query = (" SELECT id, name, uuid " |
| 896 |
|
" FROM tbl_meters ") |
| 897 |
|
cursor.execute(query) |
| 898 |
|
rows_meters = cursor.fetchall() |
| 899 |
|
meter_dict = dict() |
| 900 |
|
if rows_meters is not None and len(rows_meters) > 0: |
| 901 |
|
for row in rows_meters: |
| 902 |
|
meter_dict[row[2]] = {"type": 'meter', |
| 903 |
|
"id": row[0], |
| 904 |
|
"name": row[1], |
| 905 |
|
"uuid": row[2]} |
| 906 |
|
|
| 907 |
|
query = (" SELECT id, name, uuid " |
| 908 |
|
" FROM tbl_offline_meters ") |
| 909 |
|
cursor.execute(query) |
| 910 |
|
rows_offline_meters = cursor.fetchall() |
| 911 |
|
|
| 912 |
|
offline_meter_dict = dict() |
| 913 |
|
if rows_offline_meters is not None and len(rows_offline_meters) > 0: |
| 914 |
|
for row in rows_offline_meters: |
| 915 |
|
offline_meter_dict[row[2]] = {"type": 'offline_meter', |
| 916 |
|
"id": row[0], |
| 917 |
|
"name": row[1], |
| 918 |
|
"uuid": row[2]} |
| 919 |
|
|
| 920 |
|
query = (" SELECT id, name, uuid " |
| 921 |
|
" FROM tbl_virtual_meters ") |
| 922 |
|
cursor.execute(query) |
| 923 |
|
rows_virtual_meters = cursor.fetchall() |
| 924 |
|
|
| 925 |
|
virtual_meter_dict = dict() |
| 926 |
|
if rows_virtual_meters is not None and len(rows_virtual_meters) > 0: |
| 927 |
|
for row in rows_virtual_meters: |
| 928 |
|
virtual_meter_dict[row[2]] = {"type": 'virtual_meter', |
| 929 |
|
"id": row[0], |
| 930 |
|
"name": row[1], |
| 931 |
|
"uuid": row[2]} |
| 932 |
|
|
| 933 |
|
# validate numerator meter uuid |
| 934 |
|
if meter_dict.get(numerator_meter_uuid) is None and \ |
| 935 |
|
virtual_meter_dict.get(numerator_meter_uuid) is None and \ |
| 936 |
|
offline_meter_dict.get(numerator_meter_uuid) is None: |
| 937 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 938 |
|
description='API.INVALID_NUMERATOR_METER_UUID') |
| 939 |
|
|
| 940 |
|
# validate denominator meter uuid |
| 941 |
|
if denominator_meter_uuid == numerator_meter_uuid: |
| 942 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 943 |
|
description='API.INVALID_DENOMINATOR_METER_UUID') |
| 944 |
|
|
| 945 |
|
if denominator_meter_uuid not in meter_dict and \ |
| 946 |
|
denominator_meter_uuid not in virtual_meter_dict and \ |
| 947 |
|
denominator_meter_uuid not in offline_meter_dict: |
| 948 |
|
raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', |
| 949 |
|
description='API.INVALID_DENOMINATOR_METER_UUID') |
| 950 |
|
|
| 951 |
|
add_values = (" INSERT INTO tbl_equipments_parameters " |
| 952 |
|
" (equipment_id, name, parameter_type, constant, " |