validation.py
729 Bytes
class BaseError(Exception):
pass
class HeaderRequiredError(BaseError):
pass
class FieldRequiredError(BaseError):
pass
def field_validation(d: dict, ref: dict):
r = dict()
for field, ref_value in ref.items():
if field not in d:
msg = f'Field {field} wajib ada'
raise FieldRequiredError(msg)
client_value = d[field]
if isinstance(ref_value, dict):
client_value = field_validation(client_value, ref_value)
r[field] = client_value
return r
def header_validation(headers: dict, ref: list):
for field in ref:
if field not in headers:
msg = f'Header {field} wajib ada'
raise HeaderRequiredError(msg)