|
@@ -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
|
|
|
|
|
|
|