working graphs on frontend
This commit is contained in:
parent
5b745f666b
commit
3b191e5c76
2 changed files with 8 additions and 10 deletions
|
@ -83,8 +83,9 @@ sub graph_total_last_week { return shift->_purchases_total_duration( 7 ) }
|
||||||
sub graph_total_last_month { return shift->_purchases_total_duration( 30 ) }
|
sub graph_total_last_month { return shift->_purchases_total_duration( 30 ) }
|
||||||
|
|
||||||
sub _purchases_total_duration {
|
sub _purchases_total_duration {
|
||||||
my ( $c, $duration ) = @_;
|
my ( $c, $day_duration ) = @_;
|
||||||
|
|
||||||
|
my $duration = DateTime::Duration->new( days => $day_duration );
|
||||||
my $entity = $c->stash->{api_user}->entity;
|
my $entity = $c->stash->{api_user}->entity;
|
||||||
|
|
||||||
my $data = { labels => [], data => [] };
|
my $data = { labels => [], data => [] };
|
||||||
|
@ -96,8 +97,8 @@ sub _purchases_total_duration {
|
||||||
my $transactions = $entity->purchases
|
my $transactions = $entity->purchases
|
||||||
->search_between( $start, $next_end )
|
->search_between( $start, $next_end )
|
||||||
->get_column('value')
|
->get_column('value')
|
||||||
->sum || 0 + 0;
|
->sum || 0 * 1;
|
||||||
push @{ $data->{ labels } }, $start->day_name;
|
push @{ $data->{ labels } }, $c->format_iso_datetime( $start );
|
||||||
push @{ $data->{ data } }, $transactions / 100000;
|
push @{ $data->{ data } }, $transactions / 100000;
|
||||||
$start->add( days => 1 );
|
$start->add( days => 1 );
|
||||||
}
|
}
|
||||||
|
@ -154,14 +155,9 @@ sub _purchases_avg_spend_duration {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
my $data = {
|
|
||||||
labels => [],
|
|
||||||
data => [],
|
|
||||||
};
|
|
||||||
|
|
||||||
for ( $transaction_rs->all ) {
|
for ( $transaction_rs->all ) {
|
||||||
my $quantised = $c->db_datetime_parser->parse_datetime($_->get_column('quantised'));
|
my $quantised = $c->db_datetime_parser->parse_datetime($_->get_column('quantised'));
|
||||||
push @{ $data->{ labels } }, $quantised->day_name;
|
push @{ $data->{ labels } }, $c->format_iso_datetime( $quantised );
|
||||||
push @{ $data->{ data } }, ($_->get_column('average_value') || 0) / 100000;
|
push @{ $data->{ data } }, ($_->get_column('average_value') || 0) / 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,9 @@ $t->post_ok('/api/v1/customer/graphs' => json => {
|
||||||
})
|
})
|
||||||
->status_is(200)->or($framework->dump_error)
|
->status_is(200)->or($framework->dump_error)
|
||||||
->json_is('/graph', {
|
->json_is('/graph', {
|
||||||
labels => [ map { $start->clone->subtract( days => $_ )->day_name } reverse ( 0 .. 6 ) ],
|
labels => [ map { $t->app->format_iso_datetime(
|
||||||
|
$start->clone->subtract( days => $_ )->subtract( hours => 12 )
|
||||||
|
) } reverse ( 0 .. 6 ) ],
|
||||||
data => [ 10, 10, 10, 10, 10, 10, 10 ],
|
data => [ 10, 10, 10, 10, 10, 10, 10 ],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Reference in a new issue