Skip to content
Snippets Groups Projects
Commit 00265d83 authored by Jean-Paul Calderone's avatar Jean-Paul Calderone
Browse files

Record first successful redemption of any voucher, counter pair

parent f6cdb686
Branches
No related tags found
1 merge request!70Record first successful redemption of any voucher, counter pair
......@@ -37,6 +37,9 @@ import qualified Database.SQLite.Simple as Sqlite
import Database.SQLite.Simple.FromRow
( FromRow(fromRow)
)
import qualified Prometheus as P
import Data.Maybe
( listToMaybe
)
......@@ -259,6 +262,7 @@ redeemVoucherHelper isVoucherPaid lookupFingerprint lookupVoucherCounter markVou
return $ Left NotPaid
(True, Nothing) -> do
markVoucherRedeemed (voucher, counter) fingerprint
P.incCounter voucherRedeemed
return $ Right ()
(True, Just fingerprint') ->
if fingerprint == fingerprint' then
......@@ -267,6 +271,18 @@ redeemVoucherHelper isVoucherPaid lookupFingerprint lookupVoucherCounter markVou
return $ Left AlreadyRedeemed
metricName :: Text -> Text
metricName name = mappend "redemption." name
voucherRedeemed :: P.Counter
voucherRedeemed
= P.unsafeRegister
$ P.counter
$ P.Info (metricName "voucher_redeemed")
"The number of unique (voucher, counter) pairs which have been redeemed."
-- | Create a new, empty MemoryVoucherDatabase.
memory :: IO VoucherDatabaseState
memory = do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment