def get_user_current_goals(): student = models.UserData.current() or models.UserData.pre_phantom() user_override = request.request_user_data("email") if user_override and user_override.key_email != student.key_email: if not user_override.is_visible_to(student): return api_unauthorized_response("Cannot view this profile") else: # Allow access to this student's profile student = user_override goals = GoalList.get_current_goals(student) return [g.get_visible_data() for g in goals]
user_data_coach = get_user_data_coach_from_request() try: students = get_students_data_from_request(user_data_coach) except Exception, e: return api_invalid_param_response(e.message) students = sorted(students, key=lambda student: student.nickname) user_exercise_graphs = models.UserExerciseGraph.get(students) return_data = [] for student, uex_graph in izip(students, user_exercise_graphs): student_data = {} student_data['email'] = student.email student_data['nickname'] = student.nickname goals = GoalList.get_current_goals(student) student_data['goals'] = [g.get_visible_data(uex_graph) for g in goals] return_data.append(student_data) return return_data @route("/api/v1/user/goals", methods=["POST"]) @oauth_optional() @api_create_phantom @jsonp @jsonify def create_user_goal(): user_data = models.UserData.current() if not user_data: return api_invalid_param_response("User is not logged in.")