Пример #1
0
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)
Пример #2
0
 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
Пример #3
0
def get_single_workout():
    workoutName = request.args.get('name')
    
    if workoutName is None:
        id = request.args.get('id')
        workout = Workout.find_single_workout_by_id(id)
    else:
        workout = Workout.find_single_workout_by_name_(workoutName)
    if workout != None:
        workoutData = workout.to_hash()
        exercises = Exercise.find_all_by_workOutId(workout.id)
        
        exerciseData = []
        for exercise in exercises:
            exerciseData.append(exercise.to_hash())
        
        returnVal = {"Result": "Success", "workoutData": workoutData,"exerciseData": exerciseData}
        return  jsonify(returnVal)
    else:
        returnVal = {"Result": "Failure"}
        return  jsonify(returnVal)
Пример #4
0
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)