|
|
|
|
@ -88,28 +88,20 @@ class WorkspaceListApi(Resource):
|
|
|
|
|
parser.add_argument("limit", type=inputs.int_range(1, 100), required=False, default=20, location="args")
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
|
|
tenants = Tenant.query.order_by(Tenant.created_at.desc()).paginate(page=args["page"], per_page=args["limit"])
|
|
|
|
|
|
|
|
|
|
tenants = Tenant.query.order_by(Tenant.created_at.desc()).paginate(
|
|
|
|
|
page=args["page"], per_page=args["limit"], error_out=False
|
|
|
|
|
)
|
|
|
|
|
has_more = False
|
|
|
|
|
if len(tenants.items) == args["limit"]:
|
|
|
|
|
current_page_first_tenant = tenants[-1]
|
|
|
|
|
rest_count = (
|
|
|
|
|
db.session.query(Tenant)
|
|
|
|
|
.filter(
|
|
|
|
|
Tenant.created_at < current_page_first_tenant.created_at, Tenant.id != current_page_first_tenant.id
|
|
|
|
|
)
|
|
|
|
|
.count()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if rest_count > 0:
|
|
|
|
|
has_more = True
|
|
|
|
|
total = db.session.query(Tenant).count()
|
|
|
|
|
if tenants.has_next:
|
|
|
|
|
has_more = True
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
"data": marshal(tenants.items, workspace_fields),
|
|
|
|
|
"has_more": has_more,
|
|
|
|
|
"limit": args["limit"],
|
|
|
|
|
"page": args["page"],
|
|
|
|
|
"total": total,
|
|
|
|
|
"total": tenants.total,
|
|
|
|
|
}, 200
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|