diff --git a/myems-api/README.md b/myems-api/README.md index 61f54ef2..fac40e9a 100644 --- a/myems-api/README.md +++ b/myems-api/README.md @@ -1089,6 +1089,7 @@ Result | energy_item | Object | Energy Item Object | | master_meter | Object | Master Meter Object | | description | string | Meter description | +| qrcode | string | Meter QRCode String | * GET All Meters ```bash diff --git a/myems-api/core/meter.py b/myems-api/core/meter.py index c821afee..a57ce560 100644 --- a/myems-api/core/meter.py +++ b/myems-api/core/meter.py @@ -1,11 +1,9 @@ import falcon import simplejson as json import mysql.connector -import config import uuid - from core.useractivity import user_logger, access_control -from core.utilities import qrcode_to_base64 +import config class MeterCollection: @@ -82,7 +80,6 @@ class MeterCollection: result = list() if rows_meters is not None and len(rows_meters) > 0: for row in rows_meters: - meter_qrcode = qrcode_to_base64(data="meter" + row['uuid']) energy_category = energy_category_dict.get(row['energy_category_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None) energy_item = energy_item_dict.get(row['energy_item_id'], None) @@ -98,7 +95,7 @@ class MeterCollection: "energy_item": energy_item, "master_meter": master_meter, "description": row['description'], - "qrcode": meter_qrcode} + "qrcode": "meter:" + row['uuid']} result.append(meta_result) cursor.close() @@ -357,7 +354,6 @@ class MeterItem: raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', description='API.METER_NOT_FOUND') else: - meter_qrcode = qrcode_to_base64(data="meter"+row['uuid']) energy_category = energy_category_dict.get(row['energy_category_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None) energy_item = energy_item_dict.get(row['energy_item_id'], None) @@ -373,7 +369,7 @@ class MeterItem: "energy_item": energy_item, "master_meter": master_meter, "description": row['description'], - "qrcode": meter_qrcode} + "qrcode": "meter:"+row['uuid']} resp.text = json.dumps(meta_result) diff --git a/myems-api/core/utilities.py b/myems-api/core/utilities.py index df129ac4..933fd671 100644 --- a/myems-api/core/utilities.py +++ b/myems-api/core/utilities.py @@ -1,15 +1,9 @@ -import base64 -import calendar -import io from datetime import datetime, timedelta import mysql.connector import collections from decimal import Decimal -import qrcode.image.svg -import qrcode - -import config import statistics +import config ######################################################################################################################## @@ -253,7 +247,7 @@ def get_energy_category_tariffs(cost_center_id, energy_category_id, start_dateti query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, price " " FROM tbl_tariffs_timeofuses " " WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")" - " ORDER BY tariff_id, start_time_of_day ") + " ORDER BY tariff_id, start_time_of_day ") cursor.execute(query_timeofuse_tariffs, ) rows_timeofuse_tariffs = cursor.fetchall() except Exception as e: @@ -357,7 +351,7 @@ def get_energy_category_peak_types(cost_center_id, energy_category_id, start_dat query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, peak_type " " FROM tbl_tariffs_timeofuses " " WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")" - " ORDER BY tariff_id, start_time_of_day ") + " ORDER BY tariff_id, start_time_of_day ") cursor.execute(query_timeofuse_tariffs, ) rows_timeofuse_tariffs = cursor.fetchall() except Exception as e: @@ -1006,23 +1000,3 @@ def statistics_hourly_data_by_period(rows_hourly, start_datetime_utc, end_dateti variance = statistics.variance(sample_data) return result_rows_yearly, mean, median, minimum, maximum, stdev, variance - - -def qrcode_to_base64(version=1, error_correction=qrcode.ERROR_CORRECT_L, box_size=10, border=4, - factory=qrcode.image.svg.SvgImage, data=None): - if version < 1 or version > 40 or \ - box_size < 0 or border < 0 or \ - error_correction not in \ - (qrcode.ERROR_CORRECT_L, qrcode.ERROR_CORRECT_M, qrcode.ERROR_CORRECT_H, qrcode.ERROR_CORRECT_Q): - return " " - qr = qrcode.QRCode( - version=1, - error_correction=qrcode.ERROR_CORRECT_L, - box_size=10, - border=4, - ) - qr.add_data(data) - img = qr.make_image(image_factory=factory) - f = io.BytesIO() - img.save(f) - return base64.b64encode(f.getvalue())