labkeyDatabaseBrowser.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import labkeyInterface
  2. import json
  3. import chardet
  4. class labkeyDB:
  5. def __init__(self,net):
  6. self.net=net
  7. def selectRows(self,project,schemaName, queryName,qfilter):
  8. debug=False
  9. url=self.net.GetLabkeyUrl()+'/'+project
  10. url+='/query-selectRows.api?schemaName='+schemaName+\
  11. '&query.queryName='+queryName
  12. for f in qfilter:
  13. url+="&query."+f['variable']+"~"+f['oper']+"="+f['value']
  14. if debug:
  15. print("Sending {}").format(url)
  16. response=self.net.get(url)
  17. encoding=chardet.detect(response.data)["encoding"]
  18. return json.loads(response.data.decode(encoding))
  19. def modifyRows(self,mode, project,schemaName, queryName, rows):
  20. #mode can be insert/update/delete
  21. debug=True
  22. data={}
  23. data['schemaName']=schemaName
  24. data['queryName']=queryName
  25. data['rows']=rows
  26. url=self.net.GetLabkeyUrl()+'/'+project
  27. url+='/query-'+mode+'Rows.api?'
  28. response=self.net.post(url,json.dumps(data))
  29. return response.data