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
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