Version: en
Add Game
note
This tutorial assumes you already have a server.py file with Python Flask and PyMongo set up. If you haven't already, read the Overview before reading this section.
When a user adds a game to their library or wishlist, we update their data with the following steps:
- The request passes the user's email and array (i.e. games or wishlist) that is to be updated as queries.
- If the list query is neither "games" nor "wishlist", return 400 error.
- Else, get the game properties needed to push to the array from the request body. Initialize its rating as None.
- Use MongoDB's find_one_and_updateto find the user by email and push the game to the list specified.
The code will be as follows:
@app.route('/game', methods=["PATCH"])
def add_game():
    email = request.args.get('email') #user email
    add_to_list = request.args.get('list')
    if add_to_list != 'games' and add_to_list != 'wishlist':
        print("no such list")
        abort(400)
    req_body = request.get_json()
    post_data = {
        'game_id': req_body['game_id'],
        'title': req_body['title'],
        'rating': None
    }
    user = User.find_one_and_update({'email': email}, {'$push': {add_to_list: post_data}})
    if not user:
        print("no user")
        abort(404)
    return jsonify({'user': user})