Begin implementation of OwlBoard API Class
This commit is contained in:
parent
11ec1329a5
commit
c8dbcd9b25
@ -77,11 +77,6 @@ def main():
|
|||||||
out.write(json.dumps(schedule_cards, indent=4, default=str))
|
out.write(json.dumps(schedule_cards, indent=4, default=str))
|
||||||
out.close()
|
out.close()
|
||||||
|
|
||||||
## For each file in list, run get_schedule_card_data(filepath)
|
|
||||||
## if returned value is not None, append to a list. Once
|
|
||||||
## complete, pass to a validation function, then into Git handling
|
|
||||||
## function.
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
37
src/owlboard.py
Normal file
37
src/owlboard.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import requests
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
|
class APIConnectionError(Exception):
|
||||||
|
# API Connection has failed
|
||||||
|
pass
|
||||||
|
|
||||||
|
## CONTANTS
|
||||||
|
|
||||||
|
API_TEST_PATH = ""
|
||||||
|
API_HEADCODE_PATH = ""
|
||||||
|
API_TRAIN_UID_PATH = ""
|
||||||
|
|
||||||
|
class OwlBoard_API_Connection:
|
||||||
|
|
||||||
|
def __init__(self, api_key, base_url):
|
||||||
|
self.api_key = api_key
|
||||||
|
self.base_url = base_url
|
||||||
|
|
||||||
|
self.request_headers = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'uuid': self.api_key
|
||||||
|
}
|
||||||
|
|
||||||
|
if not self.test_connection():
|
||||||
|
raise APIConnectionError(f"failed to connect to API at {self.base_url} with supplied API key")
|
||||||
|
|
||||||
|
|
||||||
|
def test_connection(self):
|
||||||
|
try:
|
||||||
|
request_url = urljoin(self.base_url, API_TEST_PATH)
|
||||||
|
response = requests.get(request_url, headers=self.request_headers)
|
||||||
|
response.raise_for_status()
|
||||||
|
return True
|
||||||
|
except requests.RequestException as e:
|
||||||
|
print(f"Connection rest failed: {e}")
|
||||||
|
return False
|
Loading…
Reference in New Issue
Block a user