def render(self, data, accepted_media_type=None, renderer_context=None): view = renderer_context.get('view') resource_name = get_resource_name(view) if resource_name == False: return super(JSONRenderer, self).render( data, accepted_media_type, renderer_context) data = format_keys(data, 'camelize') try: content = data.pop('results') resource_name = format_resource_name(content, resource_name) data = {resource_name : content, "meta" : data} except (TypeError, KeyError, AttributeError) as e: # Default behavior if not resource_name == 'data': format_keys(data, 'camelize') resource_name = format_resource_name(data, resource_name) data = {resource_name : data} return super(JSONRenderer, self).render( data, accepted_media_type, renderer_context)
def render(self, data, accepted_media_type=None, renderer_context=None): view = renderer_context.get('view') resource_name = get_resource_name(view) if isinstance(data, dict): for key, value in data.items(): data[inflection.camelize(key, False)] = data.pop(key) elif isinstance(data, (list, tuple)): for obj in data: if hasattr(obj, 'items'): for key, value in obj.items(): obj[inflection.camelize(key, False)] = obj.pop(key) resource_name = inflection.pluralize(resource_name) if resource_name == False: return super(JSONRenderer, self).render( data, accepted_media_type, renderer_context) try: data_copy = copy.copy(data) content = data_copy.pop('results') data = {resource_name : content, "meta" : data_copy} except (TypeError, KeyError, AttributeError) as e: data = {resource_name : data} return super(JSONRenderer, self).render( data, accepted_media_type, renderer_context)
def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ result = super(EmberJSONParser, self).parse(stream, media_type=None, parser_context=None) resource = result.get(get_resource_name(parser_context.get('view', None))) return format_keys(resource, 'underscore')
def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ result = super(JSONParser, self).parse(stream, media_type=media_type, parser_context=parser_context) resource = result.get(get_resource_name(parser_context.get('view', None))) return format_keys(resource, 'underscore')
def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ result = super(EmberJSONParser, self).parse(stream, media_type=None, parser_context=None) resource_name = get_resource_name(parser_context.get('view', None)) return result.get(resource_name)
def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ result = super(EmberJSONParser, self).parse(stream, media_type=None, parser_context=None) resource_name = get_resource_name(parser_context.get('view', None)) data = result.get(camelize(resource_name)) return recursive_key_map(underscore, data)
def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ result = super(EmberJSONParser, self).parse( stream, media_type=None, parser_context=None) resource_name = get_resource_name(parser_context.get('view', None)) data = result.get(resource_name) for item in data: data[inflection.underscore(item)] = data.pop(item) return data
def render(self, data, accepted_media_type=None, renderer_context=None): view = renderer_context.get('view') resource_name = get_resource_name(view) try: data_copy = copy.copy(data) content = data_copy.pop('results') data = {resource_name : content, "meta" : data_copy} except (TypeError, KeyError, AttributeError) as e: data = {resource_name : data} return super(JSONRenderer, self).render( data, accepted_media_type, renderer_context)
def render(self, data, accepted_media_type=None, renderer_context=None): view = renderer_context.get('view') resource_name = get_resource_name(view) if resource_name == False: return super(JSONRenderer, self).render(data, accepted_media_type, renderer_context) try: data_copy = copy.copy(data) content = data_copy.pop('results') data = {resource_name: content, "meta": data_copy} except (TypeError, KeyError, AttributeError) as e: data = {resource_name: data} return super(JSONRenderer, self).render(data, accepted_media_type, renderer_context)
def parse(self, stream, media_type=None, parser_context=None): # parse the stream result = super(JSONParser, self).parse( stream=stream, media_type=media_type, parser_context=parser_context) # get the resource name expected by the view resource_name = utils.get_resource_name( parser_context.get('view', None)) # look for that resource name in the parsed result for key, value in result.items(): if key.split('/')[-1] == resource_name: resource = result.get(key) break else: resource = None # underscoralize the resource keys and return return utils.format_keys(resource, 'underscore')