def submit_workout(): exercises = request.data if(len(exercises) == 0): result = {"Result":"Failure: No JSON Data sent."} return jsonify(result) jsonExercises = json.loads(exercises) name = jsonExercises['name'] description = jsonExercises['description'] level = jsonExercises['level'] isPublic = jsonExercises['isPublic'] if isPublic == 'true': isPublic = True else: isPublic = False isLikeable = jsonExercises['isLikeable'] if isLikeable == 'true': isLikeable = True else: isLikeable = False isCommentable = jsonExercises['isCommentable'] if isCommentable == 'true': isCommentable = True else: isCommentable = False user = g.user if user.is_anonymous(): user = User.find_by_username("Guest") else: user.add_newsfeed("Has added a workout: " + name + "") if user is None: user = User.find_by_username("Guest") if user is None: user = User(username="******", password="******", email=None, firstname=None, lastname=None, location=None, sex=None, date_of_birth=None, avatar=None, about_me=None, last_seen=None) User.save_to_db(user) newWorkout = Workout(user_id=user.id, parent_user_id=user.id, name=name, level=level, is_public=isPublic, is_likeable=isLikeable, is_commentable=isCommentable, description=description) Workout.save_to_db(newWorkout) logging.warning("saving workout") for exercise in jsonExercises['exercises']: order = exercise['order'] type = exercise['type'] unit = exercise['unit'] exerciseTag = ExerciseTag.find_by_name(type) if exerciseTag is None: exerciseTag = ExerciseTag(type, unit) ExerciseTag.save_to_db(exerciseTag) amount = exercise['amount'] additionalInfo = exercise['additionalInfo'] newExercise = Exercise(newWorkout.id, exerciseTag.id, order, amount, additionalInfo) Exercise.save_to_db(newExercise) result = {"Result":"Success"} return jsonify(result)
def test_save_to_db(self): user = User(username = '******', password = "******", email = '*****@*****.**') db.session.add(user) db.session.commit() exerciseTag1 = ExerciseTag(name="running", unit="minutes") workout = Workout(user.id, user.id, name="Get Fit Workout", description="This is the best way to shed those pounds!", level="Hard", is_public=True, is_likeable=True, is_commentable=True) exercise1 = Exercise(workOutId=workout.id, eTagId=exerciseTag1.id, order="1", amount="5", additionalInfo="No Additional Info") db.session.add(exerciseTag1) db.session.add(workout) Exercise.save_to_db(exercise1); exerciseFound = Exercise.find_by_id(exercise1.id) assert exerciseFound.id == exercise1.id
def edit_workout(): exercises = request.data if(len(exercises) == 0): result = {"Result":"Failure"} return jsonify(result) jsonExercises = json.loads(exercises) if jsonExercises == None: result = {"Result":"Failure"} return jsonify(result) else: if len(jsonExercises) == 0: result = {"Result":"Failure"} return jsonify(result) else: name = jsonExercises['name'] description = jsonExercises['description'] level = jsonExercises['level'] isPublic = jsonExercises['isPublic'] if isPublic == 'true': isPublic = True else: isPublic = False isLikeable = jsonExercises['isLikeable'] if isLikeable == 'true': isLikeable = True else: isLikeable = False isCommentable = jsonExercises['isCommentable'] if isCommentable == 'true': isCommentable = True else: isCommentable = False currentWorkout = Workout.find_single_workout_by_name_(name) currentWorkout.level = level currentWorkout.is_public = isPublic currentWorkout.is_likeable = isLikeable currentWorkout.is_commentable = isCommentable currentWorkout.description = description Workout.update_workout_info(currentWorkout) for exercise in jsonExercises['exercises']: order = exercise['order'] type = exercise['type'] unit = exercise['unit'] exerciseTag = ExerciseTag.find_by_name(type) if exerciseTag is None: exerciseTag = ExerciseTag(type, unit) ExerciseTag.save_to_db(exerciseTag) amount = exercise['amount'] additionalInfo = exercise['additionalInfo'] currentExercise = Exercise.find_by_workOutId_and_order(currentWorkout.id, order) if currentExercise is None: newExercise = Exercise(currentWorkout.id, exerciseTag.id, order, amount, additionalInfo) Exercise.save_to_db(newExercise) else: currentExercise.eTagId = exerciseTag.id currentExercise.amount = amount currentExercise.additionalInfo = additionalInfo Exercise.update_exercise_info(currentExercise) result = {"Result":"Success"} return jsonify(result)