| @@ 319-373 (lines=55) @@ | ||
| 316 | resp.status = falcon.HTTP_200 |
|
| 317 | ||
| 318 | ||
| 319 | class DataSourcePointCollection: |
|
| 320 | @staticmethod |
|
| 321 | def __init__(): |
|
| 322 | pass |
|
| 323 | ||
| 324 | @staticmethod |
|
| 325 | def on_options(req, resp): |
|
| 326 | resp.status = falcon.HTTP_200 |
|
| 327 | ||
| 328 | @staticmethod |
|
| 329 | def on_get(req, resp, id_): |
|
| 330 | if not id_.isdigit() or int(id_) <= 0: |
|
| 331 | raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', |
|
| 332 | description='API.INVALID_DATA_SOURCE_ID') |
|
| 333 | ||
| 334 | cnx = mysql.connector.connect(**config.myems_system_db) |
|
| 335 | cursor = cnx.cursor() |
|
| 336 | ||
| 337 | cursor.execute(" SELECT name " |
|
| 338 | " FROM tbl_data_sources " |
|
| 339 | " WHERE id = %s ", (id_,)) |
|
| 340 | if cursor.fetchone() is None: |
|
| 341 | cursor.close() |
|
| 342 | cnx.disconnect() |
|
| 343 | raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', |
|
| 344 | description='API.DATA_SOURCE_NOT_FOUND') |
|
| 345 | ||
| 346 | result = list() |
|
| 347 | # Get points of the data source |
|
| 348 | # NOTE: there is no uuid in tbl_points |
|
| 349 | query_point = (" SELECT id, name, object_type, " |
|
| 350 | " units, high_limit, low_limit, ratio, is_trend, address, description " |
|
| 351 | " FROM tbl_points " |
|
| 352 | " WHERE data_source_id = %s " |
|
| 353 | " ORDER BY name ") |
|
| 354 | cursor.execute(query_point, (id_,)) |
|
| 355 | rows_point = cursor.fetchall() |
|
| 356 | ||
| 357 | if rows_point is not None and len(rows_point) > 0: |
|
| 358 | for row in rows_point: |
|
| 359 | meta_result = {"id": row[0], |
|
| 360 | "name": row[1], |
|
| 361 | "object_type": row[2], |
|
| 362 | "units": row[3], |
|
| 363 | "high_limit": row[4], |
|
| 364 | "low_limit": row[5], |
|
| 365 | "ratio": float(row[6]), |
|
| 366 | "is_trend": True if row[7] else False, |
|
| 367 | "address": row[8], |
|
| 368 | "description": row[9]} |
|
| 369 | result.append(meta_result) |
|
| 370 | ||
| 371 | cursor.close() |
|
| 372 | cnx.disconnect() |
|
| 373 | resp.body = json.dumps(result) |
|
| 374 | ||
| @@ 242-286 (lines=45) @@ | ||
| 239 | resp.status = falcon.HTTP_200 |
|
| 240 | ||
| 241 | ||
| 242 | class DistributionSystemDistributionCircuitCollection: |
|
| 243 | @staticmethod |
|
| 244 | def __init__(): |
|
| 245 | pass |
|
| 246 | ||
| 247 | @staticmethod |
|
| 248 | def on_options(req, resp, id_): |
|
| 249 | resp.status = falcon.HTTP_200 |
|
| 250 | ||
| 251 | @staticmethod |
|
| 252 | def on_get(req, resp, id_): |
|
| 253 | if not id_.isdigit() or int(id_) <= 0: |
|
| 254 | raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', |
|
| 255 | description='API.INVALID_DISTRIBUTION_SYSTEM_ID') |
|
| 256 | ||
| 257 | cnx = mysql.connector.connect(**config.myems_system_db) |
|
| 258 | cursor = cnx.cursor(dictionary=True) |
|
| 259 | ||
| 260 | cursor.execute(" SELECT name " |
|
| 261 | " FROM tbl_distribution_systems " |
|
| 262 | " WHERE id = %s ", (id_,)) |
|
| 263 | if cursor.fetchone() is None: |
|
| 264 | cursor.close() |
|
| 265 | cnx.disconnect() |
|
| 266 | raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', |
|
| 267 | description='API.DISTRIBUTION_SYSTEM_NOT_FOUND') |
|
| 268 | ||
| 269 | query = (" SELECT id, name, uuid, " |
|
| 270 | " distribution_room, switchgear, peak_load, peak_current, customers, meters " |
|
| 271 | " FROM tbl_distribution_circuits " |
|
| 272 | " WHERE distribution_system_id = %s " |
|
| 273 | " ORDER BY name ") |
|
| 274 | cursor.execute(query, (id_,)) |
|
| 275 | rows = cursor.fetchall() |
|
| 276 | ||
| 277 | result = list() |
|
| 278 | if rows is not None and len(rows) > 0: |
|
| 279 | for row in rows: |
|
| 280 | meta_result = {"id": row['id'], "name": row['name'], "uuid": row['uuid'], |
|
| 281 | "distribution_room": row['distribution_room'], "switchgear": row['switchgear'], |
|
| 282 | "peak_load": row['peak_load'], "peak_current": row['peak_current'], |
|
| 283 | "customers": row['customers'], "meters": row['meters']} |
|
| 284 | result.append(meta_result) |
|
| 285 | ||
| 286 | resp.body = json.dumps(result) |
|
| 287 | ||