meters_service.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from app.main.model.meters import Meter
  2. def get_meters(serialNumber=None):
  3. query = {} if not serialNumber else {'serialNumber': serialNumber}
  4. meters = Meter.objects(**query).all()
  5. if not meters:
  6. return {'no-data': ''}
  7. return {'success': [meter.to_json() for meter in meters]}
  8. def create_or_update_meters(serialNumber, name, brand, model, phases, active,
  9. address, gpsLat, gpsLong, installedDate,
  10. meter_id=None):
  11. try:
  12. query = {'id': 'meter_id'} if meter_id else {
  13. 'serialNumber': serialNumber}
  14. result = Meter.objects(**query).modify(
  15. upsert=True,
  16. set__serialNumber=serialNumber,
  17. set__name=name,
  18. set__model=model,
  19. set__phases=phases,
  20. set__active=active,
  21. set__address=address,
  22. set__gpsLat=gpsLat,
  23. set__gpsLong=gpsLong,
  24. set__installedDate=installedDate
  25. )
  26. except Exception as e:
  27. return {'error': 'Error during the operation: {}'.format(e)}
  28. print(result)
  29. if result is None:
  30. return {'created': 'Created the meter {!r}.'.format(serialNumber)}
  31. return {'updated': 'Updated the meter {!r}.'.format(serialNumber)}
  32. def delete_meter(meter_id):
  33. meter = Meter.objects(id=meter_id).first()
  34. if not meter:
  35. return {'error': 'Invalid meter id.'}
  36. meter.delete()
  37. return {'deleted': 'Meter deleted.'}