Example #1
0
def add_meeting():
    """
    This functin accepted meeting details from post request
    and saves them in the db.
    """
    output = dict()
    status = 422

    data = json.loads(request.data.decode('utf-8'))
    if not data:
        return jsonify({"error": "Missing data to save"}), status
    try:
        user_id = data['user_id']
        name = data['name']
        event_type = data['event_type']
        description = data['description']
        duration = data['duration']

        newMeeting = Meeting(user_id, name, event_type, description, duration)
        result = Meeting.save(newMeeting)
        if result:
            output["success"] = f"meeting {data} saved"
            status = 200
        else:
            output["error"] = "Could not save"
        return jsonify(output), status
    except Exception as e:
        output['error'] = f'{e}'
        status = 500
        return jsonify(output), status
Example #2
0
    def authorize():
        error = request.args.get('error', default="", type=str)
        if error != "":
            return make_response(
                redirect(f"http://localhost:3000/after-login?error={error}!"))
        google = gauth.create_client('google')
        token = google.authorize_access_token()
        resp = google.get('userinfo')
        user_info = resp.json()
        g_user = gauth.google.userinfo()
        session["access_token"] = token["access_token"]
        """
        If user exists in DB then db_user will be dict.
        But if we are saving brand new user object
        Then db_user would be object containing
        property inserted_id
        """
        my_user = User(g_user)
        db_user = my_user.save("users")
        session['profile'] = user_info
        # User exists then db_user is dict
        if type(db_user) is dict:
            user_id = db_user["_id"]
            query = {"_id": ObjectId(db_user["_id"])}
            resonse = make_response(
                redirect("http://localhost:3000/dashboard?access_token=" +
                         token["access_token"] + "&user_id=" + str(user_id) +
                         "&email=" + g_user.email + "&jwt_token=" +
                         token["id_token"]))
        else:
            user_id = db_user.inserted_id
            query = {"_id": db_user.inserted_id}
            meeting = Meeting(user_id, "First meeting", "one-to-one",
                              "my meeting", 60)
            saveMeeting = meeting.save("meeting")
            if saveMeeting.inserted_id:
                my_user.add_meeting_id(saveMeeting.inserted_id)
            resonse = make_response(
                redirect(
                    "http://localhost:3000/profile_settings?access_token=" +
                    token["access_token"] + "&user_id=" + str(user_id) +
                    "&email=" + g_user.email + "&jwt_token=" +
                    token["id_token"]))

        newValues = {"$set": {"access_token": token["access_token"]}}
        result = User.update(query, newValues)
        session.permanent = True
        return resonse