Exemple #1
0
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))
Exemple #2
0
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))