示例#1
0
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