diff --git a/moondb.py b/moondb.py new file mode 100755 index 0000000000000000000000000000000000000000..de3cc4e60031f56e7ac2964fa848ddd04c53fe8a --- /dev/null +++ b/moondb.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# +# Alessandro Frigeri 2019 +# +# MoonDB Python module +# https://realpython.com/api-integration-in-python/ + +import requests +import json + +def _url(path): + return "http://api.moondb.org" + path + +def get_specimen(): + pass + +def get_specimentype(): + pass + +def get_mission(): + pass + +def _check_resp(resp): + if resp.status_code != 200: + #raise ApiError('Cannot fetch all objects: {}'.format(resp.status_code)) + pass + +def _json_object_hook(d): + return namedtuple('X', d.keys())(*d.values()) + +def json2obj(data): + return json.loads(data, object_hook=_json_object_hook) + +def get_analytes(): + analytes = [] + resp = requests.get(_url('/cv/analytes/')) + _check_resp(resp) + for m_item in resp.json()['result']: + analytes.append( Analyte(m_item['name'] )) + return analytes + +def get_missions(): + missions = [] + resp = requests.get(_url('/authorities/missions/')) + _check_resp(resp) + for m_item in resp.json()['result']: + missions.append( Mission(m_item['name'] )) + print(m_item) + this_m = json.loads( "{'name': 'Apollo 11'}" ) + return missions + +def get_missions2(): + resp = requests.get(_url('/authorities/missions/')) + #m2 = json.loads(resp) + print(resp) + return resp.json()['result'] + +def get_landmark(): + pass + +def get_samplingtechnique(): + pass + + +class Filter: + def __init__(self): + self.mission = None + + +class Mission: + def __init__(self,name): + self.name = name + +class AnalysisMethos: + def __init__(self,code,name): + self.name = name + self.code = code + +class Analyte: + def __init__(self,name): + self.name = name + + + +if __name__ == "__main__": + m = get_missions() + print m