| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from flask_restful import Resource, reqparse
- from app.main.service.meters_service import (
- get_meters, create_or_update_meters, delete_meter)
- from app.main.common.decorators import standardize_api_response
- from app.main.common.utils import is_a_valid_object_id
- def post_put_parser():
- """Request parser for HTTP POST or PUT.
- :returns: flask.ext.restful.reqparse.RequestParser object
- """
- parse = reqparse.RequestParser()
- parse.add_argument(
- 'serialNumber', type=str, location='json', required=True)
- parse.add_argument(
- 'name', type=str, location='json', required=True)
- parse.add_argument(
- 'brand', type=str, location='json', required=True)
- parse.add_argument(
- 'model', type=str, location='json', required=True)
- parse.add_argument(
- 'phases', type=int, location='json')
- parse.add_argument(
- 'active', type=bool, location='json')
- parse.add_argument(
- 'address', type=str, location='json')
- parse.add_argument(
- 'gpsLat', type=float, location='json')
- parse.add_argument(
- 'gpsLong', type=float, location='json')
- parse.add_argument(
- 'installedDate', type=str, location='json')
- return parse
- class MetersApi(Resource):
- @standardize_api_response
- def get(self):
- return get_meters()
- @standardize_api_response
- def post(self):
- parse = post_put_parser()
- args = parse.parse_args()
- serialNumber = args['serialNumber']
- name = args['name']
- brand = args['brand']
- model = args['model']
- phases = args['phases']
- active = args['active']
- address = args['address']
- gpsLat = args['gpsLat']
- gpsLong = args['gpsLong']
- installedDate = args['installedDate']
- return create_or_update_meters(
- serialNumber, name, brand, model, phases,
- active, address, gpsLat, gpsLong, installedDate)
- class MeterApi(Resource):
- @standardize_api_response
- def put(self):
- parse = post_put_parser()
- args = parse.parse_args()
- serialNumber = args['serialNumber']
- name = args['name']
- brand = args['brand']
- model = args['model']
- phases = args['phases']
- active = args['active']
- address = args['address']
- gpsLat = args['gpsLat']
- gpsLong = args['gpsLong']
- installedDate = args['installedDate']
- return create_or_update_meters(
- serialNumber, name, brand, model, phases,
- active, address, gpsLat, gpsLong, installedDate)
- @standardize_api_response
- def delete(self, meter_id):
- if not is_a_valid_object_id(meter_id):
- return {'error': 'Invalid meter id.'}
- return delete_meter(meter_id)
|