SQLite support is now relatively sane.
[?]
Dec 15, 2014, 10:10 PM
JKMHA2QGDSVHD4DKDYQUYNJJ3LUQCOPOWEC3543BDWDXLYIBBZXQCDependencies
- [2]
TLQ72DSJLenses, sqlite-simple - [3]
MWUPXTBFA few steps down a road to be abandoned. - [4]
LAROLAYUWIP - [5]
FRPWIKCNAdded log event parsing to Quixotic.Database.SQLite - [6]
WO2MINIFAuctions now compile! - [7]
64VI73NPServer now compiles using abstracted SQLite - [8]
EMVTF2IWWIP moving back to snap. - [9]
64C6AWH6Rename Ananke -> Quixotic, project reboot. - [10]
75N3UJ4JMore progression toward lenses. - [*]
LUM4VQJIIncrement.
Change contents
- edit in lib/Quixotic/Database/SQLite.hs at line 7
import Control.Error.Safe - replacement in lib/Quixotic/Database/SQLite.hs at line 8[3.101]→[3.3685:3719](∅→∅),[3.1022]→[3.3685:3719](∅→∅),[3.3685]→[3.3685:3719](∅→∅),[3.3719]→[3.1023:1045](∅→∅)
import Control.Monad.Trans.Eitherimport Data.Text.Lensimport Data.Hourglass - edit in lib/Quixotic/Database/SQLite.hs at line 10
import Database.SQLite.Simple.ToField - edit in lib/Quixotic/Database/SQLite.hs at line 38[2.1498][12.797]
newtype PBid = PBid BidmakePrisms ''PBidinstance FromRow PBid wherefromRow =let bidParser = Bid <$> fmap UserId field <*> fmap Seconds field <*> fmap BTC field <*> fieldin fmap PBid bidParsernewtype PSeconds = PSeconds Secondsinstance ToField PSeconds wheretoField (PSeconds (Seconds i)) = toField inewtype PUserId = PUserId UserIdinstance ToField PUserId wheretoField (PUserId (UserId i)) = toField inewtype PAuctionId = PAuctionId AuctionIdinstance ToField PAuctionId wheretoField (PAuctionId (AuctionId i)) = toField inewtype PBTC = PBTC BTCinstance ToField PBTC wheretoField (PBTC (BTC i)) = toField i - replacement in lib/Quixotic/Database/SQLite.hs at line 90
readAuction' (AuctionId aid) = doreadAuction' aucId = do - replacement in lib/Quixotic/Database/SQLite.hs at line 94
(Only aid)(Only $ PAuctionId aucId) - replacement in lib/Quixotic/Database/SQLite.hs at line 98
recordBid' (AuctionId aid) bid = dorecordBid' aucId bid = do - replacement in lib/Quixotic/Database/SQLite.hs at line 102
(aid, bid ^. bidUser, bid ^. bidSeconds, bid ^. bidAmount, bid ^. bidTime)( PAuctionId aucId, PUserId $ bid ^. bidUser, PSeconds $ bid ^. bidSeconds, PBTC $ bid ^. bidAmount, bid ^. bidTime) - replacement in lib/Quixotic/Database/SQLite.hs at line 109
readBids' :: AuctionId -> ReaderT Connection IO [(UTCTime, Bid)]readBids' = undefinedreadBids' :: AuctionId -> ReaderT Connection IO [Bid]readBids' aucId = doconn <- askrows <- lift $ query conn"SELECT user_id, bid_seconds, bid_amount, bid_time FROM bids WHERE auction_id = ?"(Only $ PAuctionId aucId)lift . return $ fmap (^. _PBid) rows - replacement in lib/Quixotic/Database/SQLite.hs at line 118
createUser' = undefinedcreateUser' user = doconn <- asklift $ execute conn"INSERT INTO users (btc_addr, email) VALUES (?, ?)"(user ^. (userAddress . address), user ^. userEmail)lift . fmap UserId $ lastInsertRowId conn - replacement in lib/Quixotic/Database.hs at line 16
, readBids :: AuctionId -> ReaderT a m [(UTCTime, Bid)], readBids :: AuctionId -> ReaderT a m [Bid] - edit in lib/Quixotic/Users.hs at line 2
{-# LANGUAGE TemplateHaskell #-} - edit in lib/Quixotic/Users.hs at line 7
import Control.Lens - replacement in lib/Quixotic/Users.hs at line 10
newtype UserId = UserId Int deriving (Show, Eq)newtype UserId = UserId Int64 deriving (Show, Eq) - replacement in lib/Quixotic/Users.hs at line 13
{ userAddress :: BtcAddr, userEmail :: Text{ _userAddress :: BtcAddr, _userEmail :: Text - edit in lib/Quixotic/Users.hs at line 16[3.6159]
makeLenses ''User