Skip to content
This repository has been archived by the owner on Sep 28, 2022. It is now read-only.

Commit

Permalink
Merge pull request #18 from postatum/93200788_fix_indexing
Browse files Browse the repository at this point in the history
Accept `encoder` argument in JHTTPCreated
  • Loading branch information
jstoiko committed Apr 27, 2015
2 parents 3b63195 + d180644 commit d4fa03e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
8 changes: 6 additions & 2 deletions nefertari/json_httpexceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def add_stack():
def create_json_response(obj, request=None, log_it=False, show_stack=False,
**extra):
body = dict()
encoder = extra.pop('encoder', None)
for attr in BASE_ATTRS:
body[attr] = extra.pop(attr, None) or getattr(obj, attr, None)

Expand All @@ -41,7 +42,7 @@ def create_json_response(obj, request=None, log_it=False, show_stack=False,

body.update(extra)

obj.body = json_dumps(body)
obj.body = json_dumps(body, encoder=encoder)
show_stack = log_it or show_stack
status = obj.status_int

Expand Down Expand Up @@ -90,9 +91,12 @@ def httperrors(context, request):
class JHTTPCreated(http_exc.HTTPCreated):
def __init__(self, *args, **kwargs):
resource = kwargs.pop('resource', None)
encoder = kwargs.pop('encoder', None)
super(JHTTPCreated, self).__init__(*args, **kwargs)

if resource and 'location' in kwargs:
resource['self'] = kwargs['location']

create_json_response(self, **dict(data=resource))
create_json_response(
self, data=resource,
encoder=encoder)
6 changes: 4 additions & 2 deletions nefertari/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
log = logging.getLogger(__name__)


def json_dumps(body):
return json.dumps(body, cls=_JSONEncoder)
def json_dumps(body, encoder=None):
if encoder is None:
encoder = _JSONEncoder
return json.dumps(body, cls=encoder)


def split_strip(_str, on=','):
Expand Down

0 comments on commit d4fa03e

Please sign in to comment.