def index(): # Get pagination parameters page = int(request.args.get('page', 1)) page_size = int(request.args.get('page_size', 5)) page = 1 if page < 1 else page page_size = 5 if page_size < 5 else 10 if page_size > 10 else page_size # Find planets on db planets_db = list( mongo.db.planets.find( {}, projection=Planet.remove_invisible_fields(ignore_id=False)).sort([ ('name', 1) ]).skip((page - 1) * page_size).limit(page_size)) return send_response(Response(True, data=planets_db))
def show(planet_id): # Build query query = None if planet_id.isdigit(): query = {'swapi_id': int(planet_id)} elif ObjectId.is_valid(planet_id): query = {'_id': ObjectId(str(planet_id))} else: query = {'name': planet_id} # Search planet on mongo planet_on_db = mongo.db.planets.find_one( query, projection=Planet.remove_invisible_fields(ignore_id=False)) if not planet_on_db: return send_response( Response(False, 'This planet is not registered in our database', data=planet_on_db)) else: return send_response(Response(True, data=planet_on_db))