in services/ui_backend_service/api/utils.py [0:0]
def format_response_list(request: web.BaseRequest, db_response: DBResponse, pagination: DBPagination, page: int, page_count: int = None) -> Tuple[int, Dict]:
query = {}
for key in request.query:
query[key] = request.query.get(key)
if not pagination:
nextPage = None
else:
nextPage = page + 1 if (pagination.count or 0) >= pagination.limit else None
prevPage = max(page - 1, 1)
baseurl = format_baseurl(request)
response_object = {
"data": db_response.body,
"status": db_response.response_code,
"links": {
"self": "{}{}".format(baseurl, format_qs(query)),
"first": "{}{}".format(baseurl, format_qs(query, {"_page": 1})),
"prev": "{}{}".format(baseurl, format_qs(query, {"_page": prevPage})),
"next": "{}{}".format(baseurl, format_qs(query, {"_page": nextPage})) if nextPage else None,
"last": "{}{}".format(baseurl, format_qs(query, {"_page": page_count})) if page_count else None
},
"pages": {
"self": page,
"first": 1,
"prev": prevPage,
"next": nextPage,
"last": page_count
},
"query": query,
}
return db_response.response_code, response_object