diff --git a/src/PaymentServer/Persistence.hs b/src/PaymentServer/Persistence.hs index 19bda64d5c784760bfd3d8363313456f072110aa..26f7df1b1acceb1f29f8579b5cb340116ea0e058 100644 --- a/src/PaymentServer/Persistence.hs +++ b/src/PaymentServer/Persistence.hs @@ -134,10 +134,16 @@ instance VoucherDatabase Sqlite.Connection where instance FromRow Fingerprint where fromRow = Sqlite.field --- | Paid but not redeemed + +-- | All paid but not redeemed vouchers getUnredeemedVouchers :: Sqlite.Connection -> IO [Voucher] getUnredeemedVouchers dbConn = - Sqlite.query_ dbConn "SELECT DISTINCT NAME FROM vouchers INNER JOIN redeemed_new WHERE vouchers.id != redeemed.voucher_id" + Sqlite.query_ dbConn "SELECT DISTINCT name FROM vouchers INNER JOIN redeemed WHERE vouchers.id != redeemed.voucher_id" + +isVoucherUnpaid :: Sqlite.Connection -> Voucher -> IO Bool +isVoucherUnpaid dbConn voucher = do + results <- Sqlite.query dbConn "SELECT DISTINCT name FROM vouchers INNER JOIN redeemed WHERE vouchers.id != redeemed.voucher_id AND vouchers.name = ?" (Sqlite.Only voucher) :: IO [Voucher] + return (results == []) getVoucherFingerprint :: Sqlite.Connection -> Voucher -> IO [Fingerprint] getVoucherFingerprint dbConn voucher = do