working API with arrays
This commit is contained in:
parent
6e970de92c
commit
6cd7df1259
2 changed files with 29 additions and 23 deletions
|
@ -8,11 +8,9 @@ sub post_category_list {
|
|||
|
||||
my $entity = $c->stash->{api_user}->entity;
|
||||
|
||||
my $duration = DateTime::Duration->new( days => 30 );
|
||||
my $start = DateTime->today;
|
||||
my $end = $start->clone->subtract_duration( $duration );
|
||||
|
||||
my $data = { days => [], category => [], value => [] };
|
||||
my $duration = DateTime::Duration->new( days => 28 );
|
||||
my $end = DateTime->today;
|
||||
my $start = $end->clone->subtract_duration( $duration );
|
||||
|
||||
my $dtf = $c->schema->storage->datetime_parser;
|
||||
my $driver = $c->schema->storage->dbh->{Driver}->{Name};
|
||||
|
@ -29,26 +27,34 @@ sub post_category_list {
|
|||
{
|
||||
columns => [
|
||||
{
|
||||
quantised => 'quantised_days',
|
||||
count => \"COUNT(*)",
|
||||
quantised => 'quantised_weeks',
|
||||
value => 'value',
|
||||
category_id => 'category_id',
|
||||
}
|
||||
],
|
||||
group_by => 'quantised_days',
|
||||
order_by => { '-asc' => 'quantised_days' },
|
||||
order_by => { '-desc' => 'quantised_weeks' },
|
||||
}
|
||||
);
|
||||
|
||||
my $data = {};
|
||||
|
||||
for ( $month_transaction_rs->all ) {
|
||||
my $quantised = $c->db_datetime_parser->parse_datetime($_->get_column('quantised'));
|
||||
push @{ $data->{ days } }, ($c->format_iso_datetime( $quantised ) || 0);
|
||||
push @{ $data->{ category } }, ($_->get_column('category_id') || 0);
|
||||
push @{ $data->{ value } }, ($_->get_column('value') || 0) / 100000;
|
||||
my $days = $c->format_iso_date( $quantised ) || 0;
|
||||
my $category = $_->get_column('category_id') || 0;
|
||||
my $value = ($_->get_column('value') || 0) / 100000;
|
||||
$data->{$days} = [] unless exists $data->{$days};
|
||||
push @{ $data->{$days} }, {
|
||||
days => $days,
|
||||
value => $value,
|
||||
category => $category,
|
||||
};
|
||||
}
|
||||
|
||||
return $c->render(
|
||||
json => {
|
||||
success => Mojo::JSON->true,
|
||||
graph => $data,
|
||||
data => $data,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -10,17 +10,17 @@ __PACKAGE__->table('view_quantised_transactions');
|
|||
__PACKAGE__->result_source_instance->is_virtual(1);
|
||||
|
||||
__PACKAGE__->result_source_instance->view_definition( qq/
|
||||
SELECT "transactions.value",
|
||||
"transactions.distance",
|
||||
"transactions.purchase_time",
|
||||
"transactions.buyer_id",
|
||||
"transactions.seller_id",
|
||||
"transaction_category.category_id",
|
||||
DATETIME(STRFTIME('%Y-%m-%d %H:00:00',"transactions.purchase_time")) AS "quantised_hours",
|
||||
DATETIME(STRFTIME('%Y-%m-%d 00:00:00',"transactions.purchase_time")) AS "quantised_days",
|
||||
DATETIME(STRFTIME('%Y-%m-%d 00:00:00',"transactions.purchase_time", 'weekday 1')) AS "quantised_weeks"
|
||||
SELECT "transactions"."value",
|
||||
"transactions"."distance",
|
||||
"transactions"."purchase_time",
|
||||
"transactions"."buyer_id",
|
||||
"transactions"."seller_id",
|
||||
"transaction_category"."category_id",
|
||||
DATETIME(STRFTIME('%Y-%m-%d %H:00:00',"transactions"."purchase_time")) AS "quantised_hours",
|
||||
DATETIME(STRFTIME('%Y-%m-%d 00:00:00',"transactions"."purchase_time")) AS "quantised_days",
|
||||
DATETIME(STRFTIME('%Y-%m-%d 00:00:00',"transactions"."purchase_time", 'weekday 1')) AS "quantised_weeks"
|
||||
FROM "transactions"
|
||||
LEFT JOIN "transaction_category" ON "transactions.id" = "transaction_category.transaction_id"
|
||||
LEFT JOIN "transaction_category" ON "transactions"."id" = "transaction_category"."transaction_id"
|
||||
/);
|
||||
|
||||
1;
|
||||
|
|
Reference in a new issue