diff options
Diffstat (limited to 'python/markit_parse.py')
| -rw-r--r-- | python/markit_parse.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/python/markit_parse.py b/python/markit_parse.py new file mode 100644 index 00000000..70ca27ec --- /dev/null +++ b/python/markit_parse.py @@ -0,0 +1,44 @@ +from serenitas.utils.misc import get_credential_path +import json +import posixpath +from urllib.parse import urljoin +from typing import ClassVar +import requests + + +class MarkitAPI: + api_key: ClassVar = None + base_url: ClassVar = None + + @classmethod + def set_api(cls): + creds = cls.get_creds() + r = requests.post( + urljoin(creds["url"], "apikey"), + data={"username": creds["username"], "password": creds["password"]}, + ) + cls.api_key = r.text + cls.base_url = creds["url"] + + @classmethod + def get_data(cls, asset_class, service="latest"): + _asset_class_to_markit = {"sn_cds": "CD"} + params = { + "format": "json", + "assetClass": _asset_class_to_markit[asset_class], + "apikey": cls.api_key, + "limit": 1000, + } + + path = posixpath.join("parsing", "Quote", service) + breakpoint() + url = urljoin(cls.base_url, path) + r = requests.get(url, params) + # print(r.status_code, r.text[:100]) + return json.loads(r.text) + + @classmethod + def get_creds(cls): + cred_path = get_credential_path("markit_api") + creds = json.load(cred_path.open()) + return creds |
