Skip to content

Commit a08f78f

Browse files
authored
Liveness (#120)
* adding from_dict liveness * fix * from dict * test * fixed * complete * fix * corrected version
1 parent ffca913 commit a08f78f

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

mati/resources/verifications.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,13 @@ class Verification(Resource):
3131

3232
def __post_init__(self):
3333
docs = []
34-
self.steps = [
35-
Liveness(**step) for step in self.steps if step['id'] == 'liveness'
36-
]
34+
self.steps = [Liveness._from_dict(step) for step in self.steps]
3735
for doc in self.documents:
3836
doc['steps'] = [
3937
VerificationDocumentStep._from_dict(step)
4038
for step in doc['steps']
4139
]
42-
docs.append(VerificationDocument(**doc))
40+
docs.append(VerificationDocument._from_dict(doc))
4341
self.documents = docs
4442

4543
@classmethod

mati/types/enums.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@ class PageType(SerializableEnum):
1313
back = 'back'
1414

1515

16+
@dataclass
17+
class BaseModel:
18+
def __init__(self, **_) -> None: # pragma: no cover
19+
...
20+
21+
@classmethod
22+
def _filter_excess_fields(cls, obj_dict: Dict) -> None:
23+
excess = set(obj_dict.keys()) - {f.name for f in fields(cls)}
24+
for f in excess:
25+
del obj_dict[f]
26+
27+
@classmethod
28+
def _from_dict(cls, obj_dict: Dict[str, Any]) -> 'BaseModel':
29+
cls._filter_excess_fields(obj_dict)
30+
return cls(**obj_dict)
31+
32+
1633
class ValidationInputType(SerializableEnum):
1734
document_photo = 'document-photo'
1835
selfie_photo = 'selfie-photo'
@@ -28,25 +45,12 @@ class ValidationType(SerializableEnum):
2845

2946

3047
@dataclass
31-
class VerificationDocumentStep:
48+
class VerificationDocumentStep(BaseModel):
3249
id: str
3350
status: int
3451
error: Optional[Dict] = None
3552
data: Optional[Dict] = field(default_factory=dict)
3653

37-
@classmethod
38-
def _filter_excess_fields(cls, obj_dict: Dict) -> None:
39-
excess = set(obj_dict.keys()) - {f.name for f in fields(cls)}
40-
for f in excess:
41-
del obj_dict[f]
42-
43-
@classmethod
44-
def _from_dict(
45-
cls, obj_dict: Dict[str, Any]
46-
) -> 'VerificationDocumentStep':
47-
cls._filter_excess_fields(obj_dict)
48-
return cls(**obj_dict)
49-
5054

5155
@dataclass
5256
class Errors:
@@ -57,7 +61,7 @@ class Errors:
5761

5862

5963
@dataclass
60-
class VerificationDocument:
64+
class VerificationDocument(BaseModel):
6165
country: str
6266
region: str
6367
photos: List[str]
@@ -189,7 +193,7 @@ class LivenessMedia:
189193

190194

191195
@dataclass
192-
class Liveness:
196+
class Liveness(BaseModel):
193197
status: int
194198
id: str
195199
data: Optional[LivenessMedia] = None

mati/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.5'
1+
__version__ = '2.0.6'

0 commit comments

Comments
 (0)