aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/requests/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygithub3/requests/base.py')
-rw-r--r--pygithub3/requests/base.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/pygithub3/requests/base.py b/pygithub3/requests/base.py
index 03b0f8a..582a73f 100644
--- a/pygithub3/requests/base.py
+++ b/pygithub3/requests/base.py
@@ -17,10 +17,11 @@ ABS_IMPORT_PREFIX = 'pygithub3.requests'
class Body(object):
- def __init__(self, content, schema, required):
+ def __init__(self, content, valid_body, validate_body=None):
self.content = content
- self.schema = schema
- self.required = required
+ self.schema = valid_body['schema']
+ self.required = valid_body['required']
+ self.validate_body = validate_body or (lambda x: None)
def dumps(self):
if not self.schema:
@@ -33,6 +34,7 @@ class Body(object):
% self.__class__.__name__)
parsed = dict([(key, self.content[key]) for key in self.schema
if key in self.content])
+ self.validate_body(parsed)
for attr_required in self.required:
if attr_required not in parsed:
raise ValidationError("'%s' attribute is required" %
@@ -58,7 +60,8 @@ class Request(object):
def clean(self):
self.uri = self.clean_uri() or self.uri
- self.body = Body(self.clean_body(), **self.clean_valid_body())
+ self.body = Body(self.clean_body(), self.clean_valid_body(),
+ self.validate_body)
def clean_body(self):
return self.body
@@ -94,6 +97,9 @@ class Request(object):
def get_body(self):
return self.body.dumps()
+ def validate_body(self, *args):
+ pass
+
class Factory(object):
""" Request builder """