Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions checkout_sdk/checkout_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
from checkout_sdk.identities.amlscreening.amlscreening_client import AmlScreeningClient
from checkout_sdk.identities.faceauthentication.faceauthentication_client import FaceAuthenticationClient
from checkout_sdk.identities.iddocumentverification.iddocumentverification_client import IdDocumentVerificationClient
from checkout_sdk.identities.addressdocumentverification.addressdocumentverification_client import \
AddressDocumentVerificationClient
from checkout_sdk.identities.applicants.applicants_client import ApplicantsClient
from checkout_sdk.identities.identityverification.identityverification_client import IdentityVerificationClient
from checkout_sdk.networktokens.network_tokens_client import NetworkTokensClient
Expand Down Expand Up @@ -111,6 +113,8 @@ def __init__(self, configuration: CheckoutConfiguration):
self.face_authentication = FaceAuthenticationClient(api_client=identity_api_client, configuration=configuration)
self.id_document_verification = IdDocumentVerificationClient(api_client=identity_api_client,
configuration=configuration)
self.address_document_verification = AddressDocumentVerificationClient(api_client=identity_api_client,
configuration=configuration)
self.applicants = ApplicantsClient(api_client=identity_api_client, configuration=configuration)
self.identity_verification = IdentityVerificationClient(api_client=identity_api_client,
configuration=configuration)
Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from __future__ import absolute_import


class DeclaredData:
name: str


class AddressDocumentVerificationRequest:
applicant_id: str
user_journey_id: str
declared_data: DeclaredData


class AddressDocumentVerificationAttemptRequest:
document: str
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
from __future__ import absolute_import

from checkout_sdk.api_client import ApiClient
from checkout_sdk.authorization_type import AuthorizationType
from checkout_sdk.checkout_configuration import CheckoutConfiguration
from checkout_sdk.client import Client
from checkout_sdk.identities.addressdocumentverification.addressdocumentverification import (
AddressDocumentVerificationRequest, AddressDocumentVerificationAttemptRequest
)


class AddressDocumentVerificationClient(Client):
__ADDRESS_DOCUMENT_VERIFICATIONS_PATH = 'address-document-verifications'
__ANONYMIZE_PATH = 'anonymize'
__ATTEMPTS_PATH = 'attempts'
__PDF_REPORT_PATH = 'pdf-report'

def __init__(self, api_client: ApiClient, configuration: CheckoutConfiguration):
super().__init__(api_client=api_client,
configuration=configuration,
authorization_type=AuthorizationType.SECRET_KEY_OR_OAUTH)

def create_address_document_verification(self, request: AddressDocumentVerificationRequest):
return self._api_client.post(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH,
self._sdk_authorization(),
request)

def get_address_document_verification(self, address_document_verification_id: str):
return self._api_client.get(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id),
self._sdk_authorization())

def anonymize_address_document_verification(self, address_document_verification_id: str):
return self._api_client.post(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id,
self.__ANONYMIZE_PATH),
self._sdk_authorization())

def create_address_document_verification_attempt(self, address_document_verification_id: str,
request: AddressDocumentVerificationAttemptRequest):
return self._api_client.post(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id,
self.__ATTEMPTS_PATH),
self._sdk_authorization(),
request)

def get_address_document_verification_attempts(self, address_document_verification_id: str):
return self._api_client.get(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id,
self.__ATTEMPTS_PATH),
self._sdk_authorization())

def get_address_document_verification_attempt(self, address_document_verification_id: str, attempt_id: str):
return self._api_client.get(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id,
self.__ATTEMPTS_PATH, attempt_id),
self._sdk_authorization())

def get_address_document_verification_report(self, address_document_verification_id: str):
return self._api_client.get(
self.build_path(self.__ADDRESS_DOCUMENT_VERIFICATIONS_PATH, address_document_verification_id,
self.__PDF_REPORT_PATH),
self._sdk_authorization())
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import pytest

from tests._assertions import assert_api_call
from checkout_sdk.identities.addressdocumentverification.addressdocumentverification import (
AddressDocumentVerificationRequest, AddressDocumentVerificationAttemptRequest
)
from checkout_sdk.identities.addressdocumentverification.addressdocumentverification_client import \
AddressDocumentVerificationClient


@pytest.fixture(scope='class')
def client(mock_sdk_configuration, mock_api_client):
return AddressDocumentVerificationClient(api_client=mock_api_client, configuration=mock_sdk_configuration)


class TestAddressDocumentVerificationClient:

def test_should_create_address_document_verification(self, mocker, client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.post', return_value='response')
body = AddressDocumentVerificationRequest()

assert client.create_address_document_verification(body) == 'response'
assert_api_call(mock, 'address-document-verifications', body)

def test_should_get_address_document_verification(self, mocker, client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.get', return_value='response')

assert client.get_address_document_verification('adv_12345') == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345')

def test_should_anonymize_address_document_verification(self, mocker, client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.post', return_value='response')

assert client.anonymize_address_document_verification('adv_12345') == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345/anonymize')

def test_should_create_address_document_verification_attempt(self, mocker,
client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.post', return_value='response')
body = AddressDocumentVerificationAttemptRequest()

assert client.create_address_document_verification_attempt('adv_12345', body) == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345/attempts', body)

def test_should_get_address_document_verification_attempts(self, mocker,
client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.get', return_value='response')

assert client.get_address_document_verification_attempts('adv_12345') == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345/attempts')

def test_should_get_address_document_verification_attempt(self, mocker,
client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.get', return_value='response')

assert client.get_address_document_verification_attempt('adv_12345', 'adva_67890') == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345/attempts/adva_67890')

def test_should_get_address_document_verification_report(self, mocker,
client: AddressDocumentVerificationClient):
mock = mocker.patch('checkout_sdk.api_client.ApiClient.get', return_value='response')

assert client.get_address_document_verification_report('adv_12345') == 'response'
assert_api_call(mock, 'address-document-verifications/adv_12345/pdf-report')
Loading