diff options
author | Antoine A <> | 2024-01-19 17:47:33 +0100 |
---|---|---|
committer | Antoine A <> | 2024-01-19 17:47:33 +0100 |
commit | f6a678ba319179bd515f9d181dc5d883908af5c9 (patch) | |
tree | 4ea496715e2a7dc2a3636502ec921233c07398ef | |
parent | 56dbde40d14760824e49c7d7938bbb00820a52b1 (diff) | |
download | libeufin-f6a678ba319179bd515f9d181dc5d883908af5c9.tar.gz libeufin-f6a678ba319179bd515f9d181dc5d883908af5c9.tar.bz2 libeufin-f6a678ba319179bd515f9d181dc5d883908af5c9.zip |
Make timezone explicit in stats logicv0.9.4-dev.3
-rw-r--r-- | bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt | 2 | ||||
-rw-r--r-- | bank/src/test/kotlin/StatsTest.kt | 4 | ||||
-rw-r--r-- | database-versioning/libeufin-bank-procedures.sql | 14 |
3 files changed, 13 insertions, 7 deletions
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt index 6f692fd0..27cbfc2f 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt @@ -111,7 +111,7 @@ class Database(dbConfig: String, internal val bankCurrency: String, internal val ,taler_out_count ,(taler_out_volume).val as taler_out_volume_val ,(taler_out_volume).frac as taler_out_volume_frac - FROM stats_get_frame(now()::timestamp, ?::stat_timeframe_enum, ?) + FROM stats_get_frame(NULL, ?::stat_timeframe_enum, ?) """) stmt.setString(1, params.timeframe.name) if (params.which != null) { diff --git a/bank/src/test/kotlin/StatsTest.kt b/bank/src/test/kotlin/StatsTest.kt index da239674..7ec5c7d0 100644 --- a/bank/src/test/kotlin/StatsTest.kt +++ b/bank/src/test/kotlin/StatsTest.kt @@ -160,8 +160,8 @@ class StatsTest { frac = it.getInt("taler_out_volume_frac"), currency = "KUDOS" ) - assertEquals(count, talerOutCount) - assertEquals(amount, talerOutVolume) + assertEquals(count, talerOutCount, "taler count") + assertEquals(amount, talerOutVolume, "taler volume") }!! } diff --git a/database-versioning/libeufin-bank-procedures.sql b/database-versioning/libeufin-bank-procedures.sql index 99b0bee3..89243c2c 100644 --- a/database-versioning/libeufin-bank-procedures.sql +++ b/database-versioning/libeufin-bank-procedures.sql @@ -226,7 +226,7 @@ INSERT SELECT (amount).val, (amount).frac, bank_account_id INTO local_amount.val, local_amount.frac, local_bank_account_id FROM bank_account_transactions WHERE bank_transaction_id=in_debit_row_id; -CALL stats_register_payment('taler_out', now()::TIMESTAMP, local_amount, null); +CALL stats_register_payment('taler_out', NULL, local_amount, null); -- notify new transaction PERFORM pg_notify('outgoing_tx', in_debtor_account_id || ' ' || in_creditor_account_id || ' ' || in_debit_row_id || ' ' || in_credit_row_id); END $$; @@ -255,7 +255,7 @@ INSERT SELECT (amount).val, (amount).frac, bank_account_id INTO local_amount.val, local_amount.frac, local_bank_account_id FROM bank_account_transactions WHERE bank_transaction_id=in_tx_row_id; -CALL stats_register_payment('taler_in', now()::TIMESTAMP, local_amount, null); +CALL stats_register_payment('taler_in', NULL, local_amount, null); -- notify new transaction PERFORM pg_notify('incoming_tx', local_bank_account_id || ' ' || in_tx_row_id); END $$; @@ -1034,7 +1034,7 @@ END IF; CALL register_incoming(in_reserve_pub, tx_row_id); -- update stats -CALL stats_register_payment('cashin', now()::TIMESTAMP, converted_amount, in_amount); +CALL stats_register_payment('cashin', NULL, converted_amount, in_amount); END $$; COMMENT ON FUNCTION cashin IS 'Perform a cashin operation'; @@ -1142,7 +1142,7 @@ INSERT INTO cashout_operations ( ) RETURNING cashout_id INTO out_cashout_id; -- update stats -CALL stats_register_payment('cashout', now()::TIMESTAMP, in_amount_debit, in_amount_credit); +CALL stats_register_payment('cashout', NULL, in_amount_debit, in_amount_credit); END $$; CREATE FUNCTION tan_challenge_create ( @@ -1321,6 +1321,9 @@ LANGUAGE plpgsql AS $$ DECLARE local_start_time TIMESTAMP; BEGIN + IF now IS NULL THEN + now = timezone('utc', now())::TIMESTAMP; + END IF; local_start_time = CASE WHEN which IS NULL THEN date_trunc(in_timeframe::text, now) WHEN in_timeframe = 'hour' THEN date_trunc('day' , now) + make_interval(hours => which) @@ -1378,6 +1381,9 @@ DECLARE frame stat_timeframe_enum; query TEXT; BEGIN + IF now IS NULL THEN + now = timezone('utc', now())::TIMESTAMP; + END IF; IF fiat_amount IS NULL THEN query = format('INSERT INTO bank_stats AS s ' '(timeframe, start_time, %1$I_count, %1$I_volume) ' |