def get(self, slug=None):
if slug:
obj = self.resource.model.query.filter(self.resource.model.id == slug)
obj = self.resource.has_read_permission(obj).first()
if obj:
return make_response(jsonify(self.resource.schema(exclude=tuple(self.resource.obj_exclude),
only=tuple(self.resource.obj_only)).dump(
obj, many=False).data), 200)
return make_response(jsonify({'error': True, 'message': 'Resource not found'}), 404)
else:
objects = self.resource.apply_filters(queryset=self.resource.model.query, **request.args)
objects = self.resource.has_read_permission(objects)
if '__order_by' in request.args:
objects = self.resource.apply_ordering(objects, request.args['__order_by'])
if '__export__' in request.args and self.resource.export is True:
objects = objects.paginate(page=self.resource.page, per_page=self.resource.max_export_limit)
return make_response_from_records(
self.resource.schema(exclude=tuple(self.resource.obj_exclude), only=tuple(self.resource.obj_only))
.dump(objects.items, many=True).data, 'csv', 200, self.resource.model.__name__)
resources = objects.paginate(page=self.resource.page, per_page=self.resource.limit)
if resources.items:
return make_response(jsonify({'success': True,
'data': self.resource.schema(exclude=tuple(self.resource.obj_exclude),
only=tuple(self.resource.obj_only))
.dump(resources.items, many=True).data, 'total': resources.total}), 200)
return make_response(jsonify({'error': True, 'message': 'No Resource Found'}), 404)
评论列表
文章目录