diff --git a/lib/Pear/LocalLoop/Controller/Admin/Reports.pm b/lib/Pear/LocalLoop/Controller/Admin/Reports.pm index aff6bc9..494cc10 100644 --- a/lib/Pear/LocalLoop/Controller/Admin/Reports.pm +++ b/lib/Pear/LocalLoop/Controller/Admin/Reports.pm @@ -18,7 +18,10 @@ sub transaction_data { columns => [ { quantised => $quantised_column, - count => \"COUNT(*)", + count => $c->pg_or_sqlite( + 'count', + "COUNT(*)", + ), sum_distance => $c->pg_or_sqlite( 'SUM("me"."distance")', 'SUM("me"."distance")', diff --git a/lib/Pear/LocalLoop/Controller/Api/Stats.pm b/lib/Pear/LocalLoop/Controller/Api/Stats.pm index e2b98e2..5d5f32c 100644 --- a/lib/Pear/LocalLoop/Controller/Api/Stats.pm +++ b/lib/Pear/LocalLoop/Controller/Api/Stats.pm @@ -86,7 +86,10 @@ sub post_customer { columns => [ { quantised => 'quantised_weeks', - count => \"COUNT(*)", + count => $c->pg_or_sqlite( + 'count', + "COUNT(*)", + ), } ], group_by => 'quantised_weeks', @@ -103,7 +106,10 @@ sub post_customer { join => { 'seller' => 'organisation' }, columns => { sector => "organisation.sector", - count => \"COUNT(*)", + count => $c->pg_or_sqlite( + 'count', + "COUNT(*)", + ), }, group_by => "organisation.sector", order_by => { '-desc' => "COUNT(*)" }, @@ -238,4 +244,19 @@ sub post_leaderboards_paged { }); } +sub pg_or_sqlite { + my ( $c, $pg_sql, $sqlite_sql ) = @_; + + my $driver = $c->schema->storage->dbh->{Driver}->{Name}; + + if ( $driver eq 'Pg' ) { + return \$pg_sql; + } elsif ( $driver eq 'SQLite' ) { + return \$sqlite_sql; + } else { + $c->app->log->warn('Unknown Driver Used'); + return undef; + } +} + 1; diff --git a/lib/Pear/LocalLoop/Controller/Api/V1/Customer/Graphs.pm b/lib/Pear/LocalLoop/Controller/Api/V1/Customer/Graphs.pm index f48e52b..b461220 100644 --- a/lib/Pear/LocalLoop/Controller/Api/V1/Customer/Graphs.pm +++ b/lib/Pear/LocalLoop/Controller/Api/V1/Customer/Graphs.pm @@ -112,7 +112,10 @@ sub _purchases_avg_spend_duration { columns => [ { quantised => 'quantised_days', - count => \"COUNT(*)", + count => $c->pg_or_sqlite( + 'count', + "COUNT(*)", + ), sum_value => $c->pg_or_sqlite( 'SUM("me"."value")', 'SUM("me"."value")',