def __handle_field(self, resource, field): ''' Handler for each field ''' if is_tuple( field ): return self.__handle_tuple_field( resource, field ) return self.__handle_string_field( resource, field )
def __init__(self): self.__attributes = self.__class__.__dict__ if hasattr(self, '__logic__'): if is_tuple( self.__logic__ ): self.__set_names( self.__logic__ ) elif isinstance(self.__logic__, Parameter): self.__logic__ = (self.__logic__,) self.__set_names( self.__logic__ ) else: self.__logic__ = [p for n,p in self.__attributes.items() if n not in ('__module__', '__doc__')] self.__set_names( self.__logic__ )
def __init__(self, parameters): def set_names(params): #Sets name attribute for all parameters in __logic__ for param in params: param.set_name( attrs ) attrs = parameters.__dict__ is_param = lambda x: isinstance(x, Parameter) self.params = [param for name,param in attrs.items() if is_param(param)] if '__logic__' in attrs: self.logic = attrs['__logic__'] if is_tuple( self.logic ): set_names( self.logic ) elif isinstance(self.logic, Parameter): self.logic = (self.logic,) set_names( self.logic ) else: self.logic = self.params set_names( self.logic )
def handle_response(self, request, response, fields, parameters): ''' Proccess response into a JSON serializable object ''' current_fields = fields(kwargs) if callable(fields) else fields status = DEFAULT_STATUS_CODE if is_tuple(response): status, response = response if is_valuesset(response): response = self.handle_list_response( request, list(response), current_fields, parameters) elif is_queryset(response): response = self.select_related(response, current_fields) response = self.handle_queryset_response( request, response, current_fields, parameters) elif is_modelinstance(response): response = self.handle_model_response(response, current_fields) elif is_generator(response) or is_list(response): response = self.handle_list_response( request, response, current_fields, parameters) response = self.uglify_json(response) if self.uglify else response return to_http(request, response, status)