def _created_response(resource): """Return an HTTP 201 "Created" response.""" content_type = _get_acceptable_response_type() if content_type == JSON: response = jsonify(resource) response.status_code = 201 else: assert content_type == HTML return render_template('resource.html', resource=resource)
def _single_resource(self, resource): content_type = _get_acceptable_response_type() if content_type == JSON: response = jsonify(resource) response.status_code = 200 else: assert content_type == HTML return render_template('resource.html', resource=resource, tablename=self.__model__.__name__, primary_key=self.primarky_key())
def _single_resource(self, resource): content_type = _get_acceptable_response_type() if content_type == JSON: response = jsonify(resource) response.status_code = 200 else: assert content_type == HTML return render_template( 'resource.html', resource=resource, tablename=self.__model__.__name__, primary_key=self.primarky_key())
def handle_exception(error): """Return a response with the appropriate status code, message, and content type when an ``InvalidAPIUsage`` exception is raised.""" try: if _get_acceptable_response_type() == JSON: response = jsonify(error.to_dict()) response.status_code = error.code return response else: return error.abort() except InvalidAPIUsage as _: # In addition to the original exception, we don't support the content # type in the request's 'Accept' header, which is a more important # error, so return that instead of what was originally raised. response = jsonify(error.to_dict()) response.status_code = 415 return response
def _all_resources(self): """Return all resources of this type as a JSON list.""" query_arguments = request.args filters = [] order = [] resources = None if query_arguments: for key, value in query_arguments.items(): if key == 'page': continue if value.startswith('%'): filters.append(getattr(self.__model__, key).like( str(value), escape='/')) elif key == 'sort': order.append(getattr(self.__model__, value)) elif key: filters.append(getattr(self.__model__, key) == value) if filters: print filters resources = _get_session().query( # pylint: disable=star-args self.__model__).filter(*filters) else: resources = _get_session().query(self.__model__) if order: resources = resources.order_by( # pylint: disable=star-args *order) if 'page' in query_arguments: resources = resources.limit(20).offset( 20 * int(request.args['page'])) resources = resources.all() content_type = _get_acceptable_response_type() if content_type == JSON: response = jsonify(collection_as_dict(resources, self)) response.status_code = 200 return response else: resources = collection_as_dict(resources, self) assert content_type == HTML return render_template( 'collection.html', resources=resources)
def _all_resources(self): """Return all resources of this type as a JSON list.""" query_arguments = request.args filters = [] order = [] resources = None if query_arguments: for key, value in query_arguments.items(): if key == 'page': continue if value.startswith('%'): filters.append( getattr(self.__model__, key).like(str(value), escape='/')) elif key == 'sort': order.append(getattr(self.__model__, value)) elif key: filters.append(getattr(self.__model__, key) == value) if filters: print filters resources = _get_session().query( # pylint: disable=star-args self.__model__).filter(*filters) else: resources = _get_session().query(self.__model__) if order: resources = resources.order_by( # pylint: disable=star-args *order) if 'page' in query_arguments: resources = resources.limit(20).offset(20 * int(request.args['page'])) resources = resources.all() content_type = _get_acceptable_response_type() if content_type == JSON: response = jsonify(collection_as_dict(resources, self)) response.status_code = 200 return response else: resources = collection_as_dict(resources, self) assert content_type == HTML return render_template('collection.html', resources=resources)