From 0e90642024e83c790e5d8bce2d814cc6944972d9 Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan <ram@leastauthority.com> Date: Thu, 24 Oct 2019 15:29:41 +0530 Subject: [PATCH] getVoucherFingerprint: return a Maybe value instead of a list --- src/PaymentServer/Persistence.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PaymentServer/Persistence.hs b/src/PaymentServer/Persistence.hs index 1d9f025..3115e77 100644 --- a/src/PaymentServer/Persistence.hs +++ b/src/PaymentServer/Persistence.hs @@ -103,7 +103,7 @@ instance VoucherDatabase VoucherDatabaseState where redeemVoucher SQLiteDB { conn = conn } voucher fingerprint = do unpaid <- isVoucherUnpaid conn voucher - existingFingerprint <- listToMaybe <$> getVoucherFingerprint conn voucher + existingFingerprint <- getVoucherFingerprint conn voucher let insertFn = insertVoucherAndFingerprint conn redeemVoucherHelper (unpaid, existingFingerprint) voucher fingerprint insertFn @@ -136,9 +136,9 @@ isVoucherUnpaid :: Sqlite.Connection -> Voucher -> IO Bool isVoucherUnpaid dbConn voucher = null <$> (Sqlite.query dbConn "SELECT 1 FROM vouchers WHERE vouchers.name = ? LIMIT 1" (Sqlite.Only voucher) :: IO [Sqlite.Only Int]) -getVoucherFingerprint :: Sqlite.Connection -> Voucher -> IO [Fingerprint] +getVoucherFingerprint :: Sqlite.Connection -> Voucher -> IO (Maybe Fingerprint) getVoucherFingerprint dbConn voucher = - Sqlite.query dbConn "SELECT redeemed.fingerprint FROM vouchers INNER JOIN redeemed ON vouchers.id = redeemed.voucher_id AND vouchers.name = ?" (Sqlite.Only voucher) + listToMaybe <$> Sqlite.query dbConn "SELECT redeemed.fingerprint FROM vouchers INNER JOIN redeemed ON vouchers.id = redeemed.voucher_id AND vouchers.name = ?" (Sqlite.Only voucher) insertVoucher :: Sqlite.Connection -> Voucher -> IO () insertVoucher dbConn voucher = -- GitLab