Skip to content

Commit

Permalink
added support for fetching checks
Browse files Browse the repository at this point in the history
  • Loading branch information
Iulian Masar committed Feb 19, 2025
1 parent 94f3dc0 commit 1bf5855
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 2 deletions.
31 changes: 30 additions & 1 deletion mangopay/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -2331,11 +2331,40 @@ class Meta:

url = {
InsertQuery.identifier: '/users/%(user_id)s/identity-verifications',
SelectQuery.identifier: '/identity-verifications',
SelectQuery.identifier: '/identity-verifications'
}

def create(self, user_id, idempotency_key=None, **kwargs):
path_params = {'user_id': user_id}
insert = InsertQuery(self, idempotency_key, path_params, **kwargs)
insert.insert_query = self.get_field_dict()
return insert.execute()

def get_checks(self, *args, **kwargs):
kwargs['id'] = self.id
select = SelectQuery(IdentityVerificationCheck, *args, **kwargs)
select.identifier = 'GET_CHECKS'
return select.get("", *args, **kwargs)


class IdentityVerificationCheck(BaseModel):
session_id = CharField(api_name='SessionId')
status = CharField(api_name='Status')
creation_date = DateTimeField(api_name='CreationDate')
last_update = DateTimeField(api_name='LastUpdate')
checks = ListField(api_name='Checks')

class Meta:
verbose_name = 'identity_verification_check'
verbose_name_plural = 'identity_verifications_checks'

url = {
'GET_CHECKS': '/identity-verifications/%(id)s/checks'
}

@classmethod
def get(cls, identity_verification_id, *args, **kwargs):
kwargs['id'] = identity_verification_id
select = SelectQuery(IdentityVerificationCheck, *args, **kwargs)
select.identifier = 'GET_CHECKS'
return select.get("", *args, **kwargs)
17 changes: 16 additions & 1 deletion tests/test_identity_verification.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from mangopay.resources import IdentityVerification
from mangopay.resources import IdentityVerification, IdentityVerificationCheck
from mangopay.utils import timestamp_from_datetime
from tests.test_base import BaseTestLive


Expand All @@ -21,6 +22,20 @@ def test_get_identity_verification(self):
self.assertEqual(IdentityVerificationTest._identity_verification.return_url, fetched.return_url)
self.assertEqual(IdentityVerificationTest._identity_verification.status, fetched.status)

def test_get_checks(self):
self.create_new_identity_verification()
# can be fetched in 2 ways:

# checks: IdentityVerificationCheck = IdentityVerificationCheck.get(
# IdentityVerificationTest._identity_verification.id)
checks: IdentityVerificationCheck = IdentityVerificationTest._identity_verification.get_checks()

self.assertIsNotNone(checks)
self.assertEqual(checks.status, 'PENDING')
self.assertTrue(timestamp_from_datetime(checks.creation_date) > 0)
self.assertTrue(timestamp_from_datetime(checks.last_update) > 0)
self.assertIsNotNone(checks.checks)

@staticmethod
def create_new_identity_verification():
if IdentityVerificationTest._identity_verification is None:
Expand Down

0 comments on commit 1bf5855

Please sign in to comment.