def api_user_activities(): data = request.get_json() try: old_achievements = utils.get_user_achievements(current_user) transitions = data["transitions"] locations = data["locations"] transitions_array = [] locations_array = [] for transition in transitions: transitions_array.append(Transition(transition["activityType"], transition["transitionType"], transition["timestamp"])) for location in locations: locations_array.append(Location(location["latitude"], location["longitude"], location["timestamp"], location["speed"], location["accuracy"])) activities = Activity.transitions_to_activity(transitions_array) merged_activities = Activity.merge_nears(activities) located_activities = Activity.add_locations(merged_activities, locations_array) utils.activity_handler(located_activities, current_user) new_achievements = utils.get_user_achievements(current_user) ret_object = list(set(new_achievements).difference(set(old_achievements))) return jsonify(ret_object) except Exception as e: print(type(e)) print(e) return jsonify({"message": str(e)}), 500