Skip to content

Commit

Permalink
feat: get rid off URLs in config and use Environment
Browse files Browse the repository at this point in the history
  • Loading branch information
miguel-lorenzo committed Sep 4, 2023
1 parent 8090fea commit 18b36a6
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 34 deletions.
11 changes: 5 additions & 6 deletions alice/auth/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

from alice.config import Config

from ..onboarding.enums.environment import Environment
from .auth_client import AuthClient
from .auth_errors import AuthError
from .token_tools import get_token_from_response

DEFAULT_URL = "https://apis.alicebiometrics.com/onboarding"


class Auth:
@staticmethod
Expand All @@ -23,7 +22,7 @@ def from_config(config: Config) -> "Auth":
return Auth(
api_key=config.api_key, # type: ignore
session=session,
url=config.onboarding_url,
environment=config.environment,
timeout=config.timeout,
verbose=config.verbose,
)
Expand All @@ -32,14 +31,14 @@ def __init__(
self,
api_key: str,
session: Session,
url: str = DEFAULT_URL,
environment: Environment,
timeout: Union[float, None] = None,
verbose: Optional[bool] = False,
):
self._auth_client = AuthClient(
url=url, api_key=api_key, session=session, timeout=timeout
url=environment.get_url(), api_key=api_key, session=session, timeout=timeout
)
self.url = url
self.url = environment.get_url()
self.verbose = verbose

def create_user_token(
Expand Down
7 changes: 3 additions & 4 deletions alice/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@
from pydantic import BaseModel, Field
from requests import Session

from alice.onboarding.enums.environment import Environment


class Config(BaseModel):
class Config:
arbitrary_types_allowed = True

onboarding_url: str = Field(default="https://apis.alicebiometrics.com/onboarding")
sandbox_url: str = Field(
default="https://apis.alicebiometrics.com/onboarding/sandbox"
)
environment: Environment = Field(default=Environment.SANDBOX)
api_key: Union[str, None] = Field(default=None)
trial_token: Union[str, None] = Field(default=None)
timeout: Union[float, None] = Field(
Expand Down
18 changes: 12 additions & 6 deletions alice/onboarding/enums/environment.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
from enum import Enum


class DocumentType(Enum):
ID_CARD = "idcard"
DRIVER_LICENSE = "driverlicense"
RESIDENCE_PERMIT = "residencepermit"
PASSPORT = "passport"
HEALTH_INSURANCE_CARD = "healthinsurancecard"
class Environment(Enum):
SANDBOX = "sandbox"
PRODUCTION = "production"
STAGING = "staging"

def get_url(self) -> str:
if self is Environment.SANDBOX:
return "https://apis.sandbox.alicebiometrics.com/onboarding"
elif self is Environment.PRODUCTION:
return "https://apis.alicebiometrics.com/onboarding"
else:
return "https://apis.staging.alicebiometrics.com/onboarding"
15 changes: 9 additions & 6 deletions alice/onboarding/onboarding.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from alice.onboarding.enums.document_source import DocumentSource
from alice.onboarding.enums.document_type import DocumentType
from alice.onboarding.enums.duplicates_resource_type import DuplicatesResourceType
from alice.onboarding.enums.environment import Environment
from alice.onboarding.enums.match_case import MatchCase
from alice.onboarding.enums.onboarding_steps import OnboardingSteps
from alice.onboarding.enums.user_state import UserState
Expand All @@ -24,8 +25,6 @@
from alice.onboarding.onboarding_client import OnboardingClient
from alice.onboarding.onboarding_errors import OnboardingError

DEFAULT_URL = "https://apis.alicebiometrics.com/onboarding"


class Onboarding:
@staticmethod
Expand All @@ -36,7 +35,7 @@ def from_config(config: Config) -> "Onboarding":
session = Session()
return Onboarding(
auth=Auth.from_config(config),
url=config.onboarding_url,
environment=config.environment,
timeout=config.timeout,
send_agent=config.send_agent,
verbose=config.verbose,
Expand All @@ -47,15 +46,19 @@ def __init__(
self,
auth: Auth,
session: Session,
url: str = DEFAULT_URL,
environment: Environment = Environment.SANDBOX,
timeout: Union[float, None] = None,
send_agent: bool = True,
verbose: bool = False,
):
self.onboarding_client = OnboardingClient(
auth=auth, url=url, timeout=timeout, send_agent=send_agent, session=session
auth=auth,
url=environment.get_url(),
timeout=timeout,
send_agent=send_agent,
session=session,
)
self.url = url
self.url = environment.get_url()
self.verbose = verbose

@early_return
Expand Down
4 changes: 1 addition & 3 deletions alice/onboarding/onboarding_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@
from alice.onboarding.onboarding_errors import OnboardingError
from alice.onboarding.tools import print_intro, print_response, print_token, timeit

DEFAULT_URL = "https://apis.alicebiometrics.com/onboarding"


class OnboardingClient:
def __init__(
self,
auth: Auth,
session: Session,
url: str = DEFAULT_URL,
url: str,
timeout: Union[float, None] = None,
send_agent: bool = True,
):
Expand Down
11 changes: 5 additions & 6 deletions alice/webhooks/webhooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@
from alice.auth.auth import Auth
from alice.auth.auth_errors import AuthError
from alice.config import Config
from alice.onboarding.enums.environment import Environment
from alice.onboarding.onboarding_errors import OnboardingError
from alice.webhooks.webhook import Webhook
from alice.webhooks.webhooks_client import WebhooksClient

DEFAULT_URL = "https://apis.alicebiometrics.com/onboarding"


class Webhooks:
@staticmethod
Expand All @@ -22,7 +21,7 @@ def from_config(config: Config) -> "Webhooks":
session = Session()
return Webhooks(
auth=Auth.from_config(config),
url=config.onboarding_url,
environment=config.environment,
send_agent=config.send_agent,
verbose=config.verbose,
session=session,
Expand All @@ -32,14 +31,14 @@ def __init__(
self,
auth: Auth,
session: Session,
url: str = DEFAULT_URL,
environment: Environment,
send_agent: bool = True,
verbose: Optional[bool] = False,
):
self.webhooks_client = WebhooksClient(
auth=auth, url=url, send_agent=send_agent, session=session
auth=auth, url=environment.get_url(), send_agent=send_agent, session=session
)
self.url = url
self.url = environment.get_url()
self.verbose = verbose

@early_return
Expand Down
4 changes: 1 addition & 3 deletions alice/webhooks/webhooks_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,13 @@
from alice.onboarding.tools import print_intro, print_response, print_token, timeit
from alice.webhooks.webhook import Webhook

DEFAULT_URL = "https://apis.alicebiometrics.com/onboarding"


class WebhooksClient:
def __init__(
self,
auth: Auth,
session: Session,
url: str = DEFAULT_URL,
url: str,
send_agent: bool = True,
):
self.auth = auth
Expand Down

0 comments on commit 18b36a6

Please sign in to comment.