-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
from urllib import parse | ||
Check warning on line 1 in pdap_api_client/PDAPClient.py
|
||
from enum import Enum | ||
from typing import Optional | ||
|
||
import requests | ||
from requests.models import PreparedRequest | ||
|
||
API_URL = "https://data-sources-v2.pdap.dev/api" | ||
|
||
class Namespaces(Enum): | ||
AUTH = "auth" | ||
|
||
|
||
class RequestManager: | ||
""" | ||
Handles making requests and managing the responses | ||
""" | ||
|
||
|
||
|
||
|
||
class URLBuilder: | ||
Check warning on line 22 in pdap_api_client/PDAPClient.py
|
||
|
||
def __init__(self): | ||
self.base_url = API_URL | ||
|
||
def build_url( | ||
self, | ||
namespace: Namespaces, | ||
subdomains: Optional[list[str]] = None, | ||
query_parameters: Optional[dict] = None | ||
): | ||
url = f"{self.base_url}/{namespace.value}" | ||
if subdomains is not None: | ||
url = f"{url}/{'/'.join(subdomains)}" | ||
if query_parameters is None: | ||
return url | ||
req = PreparedRequest() | ||
req.prepare_url(url, params=query_parameters) | ||
return req.url | ||
|
||
|
||
|
||
class AccessManager: | ||
""" | ||
Manages login, api key, access and refresh tokens | ||
""" | ||
def __init__(self, email: str, password: str): | ||
Check warning on line 48 in pdap_api_client/PDAPClient.py
|
||
self.url_builder = URLBuilder() | ||
|
||
def login(self, email: str, password: str): | ||
url = self.url_builder.build_url( | ||
namespace=Namespaces.AUTH, | ||
subdomains=["login"] | ||
) | ||
response = requests.post( | ||
url=url, | ||
json={ | ||
"email": email, | ||
"password": password | ||
} | ||
) | ||
response.raise_for_status() | ||
# TODO: Finish | ||
|
||
|
||
class PDAPClient: | ||
|
||
def __init__(self): | ||
pass | ||
|
||
def match_agency(self): | ||
pass | ||
|
||
def check_for_unique_source_url(self, url: str): | ||
Check warning on line 75 in pdap_api_client/PDAPClient.py
|
||
pass | ||