from app.main.model.meters import Meter def get_meters(serialNumber=None): query = {} if not serialNumber else {'serialNumber': serialNumber} meters = Meter.objects(**query).all() if not meters: return {'no-data': ''} return {'success': [meter.to_json() for meter in meters]} def create_or_update_meters(serialNumber, name, brand, model, phases, active, address, gpsLat, gpsLong, installedDate, meter_id=None): try: query = {'id': 'meter_id'} if meter_id else { 'serialNumber': serialNumber} result = Meter.objects(**query).modify( upsert=True, set__serialNumber=serialNumber, set__name=name, set__model=model, set__phases=phases, set__active=active, set__address=address, set__gpsLat=gpsLat, set__gpsLong=gpsLong, set__installedDate=installedDate ) except Exception as e: return {'error': 'Error during the operation: {}'.format(e)} print(result) if result is None: return {'created': 'Created the meter {!r}.'.format(serialNumber)} return {'updated': 'Updated the meter {!r}.'.format(serialNumber)} def delete_meter(meter_id): meter = Meter.objects(id=meter_id).first() if not meter: return {'error': 'Invalid meter id.'} meter.delete() return {'deleted': 'Meter deleted.'}