Переглянути джерело

Se crea el Resource de energía

Oscar Alfredo Leiva Salomón 6 роки тому
батько
коміт
e6fc998992
2 змінених файлів з 57 додано та 1 видалено
  1. 4 1
      app/__init__.py
  2. 53 0
      app/main/resources/energy.py

+ 4 - 1
app/__init__.py

@@ -2,9 +2,12 @@ from flask_restful import Api
 from flask import Blueprint
 
 from app.main.resources.schedules import SchedulesApi, ScheduleApi
+from app.main.resources.energy import TotalEnergyByDayApi, HourlyEnergyApi
 
 api_bp = Blueprint('api', __name__)
 api = Api(api_bp)
 
 api.add_resource(SchedulesApi, '/schedules')
-api.add_resource(ScheduleApi, '/schedule/<job_id>')
+api.add_resource(ScheduleApi, '/schedule/<job_id>')
+api.add_resource(TotalEnergyByDayApi, '/energy/byDay')
+api.add_resource(HourlyEnergyApi, '/energy/hourly')

+ 53 - 0
app/main/resources/energy.py

@@ -0,0 +1,53 @@
+from flask_restful import Resource, reqparse
+from app.main.service.energy_service import (
+    get_hourly_wh_by_day, get_total_wh_by_day)
+
+from app.main.common.decorators import standardize_api_response
+
+
+class TotalEnergyByDayApi(Resource):
+
+    @standardize_api_response
+    def get(self):
+
+        parser = reqparse.RequestParser(bundle_errors=True)
+        parser.add_argument(
+            'serial_number', help='Numero serie del medidor', required=True)
+        parser.add_argument('log_number', help='Número de Log', required=True)
+        parser.add_argument(
+            'start_date', help='Fecha de inicio la consulta', required=True)
+        parser.add_argument('end_date', help='Fecha de fin de la consulta')
+        args = parser.parse_args()
+        if not args:
+            return {'no-data': ''}
+        serial_number = args['serial_number']
+        log_number = args['log_number']
+        start_date = args['start_date']
+        end_date = args['end_date']
+
+        return get_total_wh_by_day(
+            serial_number, log_number, start_date, end_date)
+
+
+class HourlyEnergyApi(Resource):
+
+    @standardize_api_response
+    def get(self):
+
+        parser = reqparse.RequestParser(bundle_errors=True)
+        parser.add_argument(
+            'serial_number', help='Numero serie del medidor', required=True)
+        parser.add_argument('log_number', help='Número de Log', required=True)
+        parser.add_argument(
+            'start_date', help='Fecha de inicio la consulta', required=True)
+        parser.add_argument('end_date', help='Fecha de fin de la consulta')
+        args = parser.parse_args()
+        if not args:
+            return {'no-data': ''}
+        serial_number = args['serial_number']
+        log_number = args['log_number']
+        start_date = args['start_date']
+        end_date = args['end_date']
+
+        return get_hourly_wh_by_day(
+            serial_number, log_number, start_date, end_date)