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 create_meeting(meetingData: MeetingType): """ Create a new meeting. """ try: meeting = Meeting() meeting.validate(meetingData) meeting = Meeting.create(**dump_schema(meetingData)) headers = {"Content-Location": f"/v1/meetings/{meeting.id}"} msg = "Meeting created successfully." log.info(f"{msg} with id: {meeting.id}") return HTTP_201, {"message": f"{msg}"}, headers except ValidationError as error: log.error(f"ValidationError: {error}") raise HTTPError(HTTP_400, {"errors": str(error)}) except ConflictError as error: log.error(f"ConflictError: {error}") raise HTTPError(HTTP_409, {"errors": str(error)})
def create_with_owner(self, obj_in: Dict[str, Any], user_id: int) -> Dict[str, Any]: db_obj = Meeting(**obj_in, user_id=user_id) db.session.add(db_obj) try: db.session.commit() except IntegrityError: db.session.rollback() return {'added': False} db.session.refresh(db_obj) return {'added': True, 'db_obj': db_obj}
def create_meeting(): if request.method == 'POST': email = session['email'] day = request.form['day'] time = request.form['time'] p1 = request.form['p1'] p2 = request.form['p2'] p3 = request.form['p3'] p4 = request.form['p4'] p5 = request.form['p5'] p6 = request.form['p6'] p7 = request.form['p7'] p8 = request.form['p8'] p9 = request.form['p9'] p10 = request.form['p10'] member_emails = { 'p1': p1, 'p2': p2, 'p3': p3, 'p4': p4, 'p5': p5, 'p6': p6, 'p7': p7, 'p8': p8, 'p9': p9, 'p10': p10 } # get all available rooms in DB rooms = RoomMatrix.get_rooms() # gets random room number to assign new meetings to random room number random.random() # random.randint selects (start, end) with both ends inclusive r_int = random.randint(0, (len(rooms) - 1)) # get room object using a random room_id assigned from the RoomMatrix room = Room.get_from_mongo(rooms[r_int]['room_id']) # room object stores room number r_number = room.roomNum # create the meeeting meeting = Meeting(day=day, time=time, r_number=r_number, email=email, members=member_emails) # if meeting day/time available, ALSO update room list with new meeting and save meeting to DB if meeting.isAvailable(day, time): room.update_meetings(room._id, day + time, meeting._id) meeting.save_to_mongo() return make_response(back_to_profile()) return render_template('create_meeting_error.html', error="Meeting Day-Time already taken", email=session['email'])
def generate_meetings(session): import random from models.meeting import Meeting from faker import Faker faker = Faker() clients = list(range(1, 3001)) friend_groups = list(range(1, 2001)) for i in range(1, 5000): meeting = Meeting() meeting.client_id = random.choice(clients) meeting.friend_group_id = random.choice(friend_groups) meeting.date = faker.date_between(start_date='-1y', end_date='today') session.add(meeting) session.commit()
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
def add_meeting(): if request.method == 'POST': data = request.json meeting = { 'subject': data['subject'], 'location': data['location'], 'date': data['date'], 'time': data['time'], 'attending': data['attending'] } new_meeting = Meeting(meeting['subject'], meeting['location'], meeting['date'], meeting['time'], meeting['attending']) session.add(new_meeting) session.commit() print(meeting, 'Added To The Database Successfully.') return 'Instance added successfully'
def create_meeting(): form = CreateMeetingForm() if form.validate_on_submit(): meeting = Meeting( meeting_creator=current_user.id, max_bikers=form.num_of_bikers.data, area=form.area.data, trail=form.trail.data, date_time=datetime.fromisoformat(f"{form.date.data} {form.time.data}"), title=form.title.data, description=form.description.data, min_skill=form.min_skill.data ) db.session.add(meeting) current_user.participations.append(meeting) db.session.commit() return redirect(url_for("main.profile")) context = { "title": "Create a meeting", "form": form } return render_template("meeting/create_meeting.html", **context)