def mean_time_weekday_view(user_id):
    """
    Returns mean presence time of given user grouped by weekday.
    """
    data = get_data()
    if user_id not in data:
        log.debug("User %s not found!", user_id)
        abort(404)

    weekdays = group_by_weekday(data[user_id])
    result = [(weekday_abbr(weekday), mean(intervals)) for weekday, intervals in enumerate(weekdays)]

    return result
def start_end_time_view(user_id):
    """
    Returns time periods of given user spend in office.
    """
    data = get_data()
    if user_id not in data:
        log.debug("User %s not found!", user_id)
        abort(404)

    mean_start_end_times = get_mean_start_end_time(data[user_id])
    results = [
        (weekday_abbr(weekday), mean_times[0], mean_times[1]) for weekday, mean_times in enumerate(mean_start_end_times)
    ]
    return results
def presence_weekday_view(user_id):
    """
    Returns total presence time of given user grouped by weekday.
    """
    data = get_data()
    if user_id not in data:
        log.debug("User %s not found!", user_id)
        abort(404)

    weekdays = group_by_weekday(data[user_id])
    result = [(weekday_abbr(weekday), sum(intervals)) for weekday, intervals in enumerate(weekdays)]

    result.insert(0, ("Weekday", "Presence (hours)"))
    return result
 def test_weekday_abbr(self):
     """
     Test returning correct weekday abbreviation.
     """
     self.assertEqual(utils.weekday_abbr(2), 'Wed')