NAME
WebService::Toggl::Report::Weekly - Toggl weekly aggregated report object
SYNOPSIS
use WebService::Toggl;
my $toggl = WebService::Toggl->new({api_key => 'foo'});
my $report = $toggl->weekly({
workspace_id => 1234,
grouping => 'projects', calculate => 'earnings',
});
say $report->total_billable; # billable milliseconds
say $report->week_totals; # array of totals per day
for $project (@{ $report->data }) {
say "Project $project->{title}{project} earned "
. "$project->{amount}[7] $project->{currency} this week.";
for my $user ($projects->{details}) {
say " User $user->{title}{user} contributed "
. "$user->{amount}[7] $user->{currency} to that total";
}
}
DESCRIPTION
This module is a wrapper object around the Toggl weekly report described here. It returns a report of either time spent or earnings grouped by either project or user.
REQUEST ATTRIBUTES
Request attributes common to all reports are detailed in the ::Role::Request pod.
The until attribute is ignored for the weekly report. It is always assumed to be since plus six days (for a total of seven).
grouping
Which metric to group reports by. Must be either projects or users. Whichever is not selected is used as the subgrouping parameter.
calculate
The property to aggregate. Must be one of time or earnings.
RESPONSE ATTRIBUTES
Response attributes common to all reports are detailed in the ::Role::Request pod.
weekly_totals
Eight-element array ref showing aggregated totals of the "calculate" property for each day, with a sum total as the last element.
REPORT DATA
The data attribute of a ::Report::Weekly object is an arrayref of hashrefs representing the "grouping" property. It contains a details key with an array of hashrefs representing the subgrouping parameter. If the "calculate" property is time, the data attribute will contain a totals key with the daily time aggregates. If "calculate" is earnings , it will contain a currency key and an amounts key with the daily aggregated earnings. For more details, see the Toggl API docs.
LICENSE
Copyright (C) Fitz Elliott.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Fitz Elliott <felliott@fiskur.org>