diff options
Diffstat (limited to 'src/Trips.hs')
-rw-r--r-- | src/Trips.hs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Trips.hs b/src/Trips.hs new file mode 100644 index 000000000000..0b395f8bcfe8 --- /dev/null +++ b/src/Trips.hs @@ -0,0 +1,27 @@ +{-# LANGUAGE OverloadedStrings #-} +-------------------------------------------------------------------------------- +module Trips where +-------------------------------------------------------------------------------- +import Data.Function ((&)) +import Database.SQLite.Simple + +import qualified Types as T +-------------------------------------------------------------------------------- + +-- | Create a new `trip` in `dbFile`. +create :: FilePath -> T.Trip -> IO () +create dbFile trip = withConnection dbFile $ \conn -> + execute conn "INSERT INTO Trips (username,destination,startDate,endDate,comment) VALUES (?,?,?,?,?)" + (trip & T.tripFields) + +-- | Delete a trip from `dbFile` using its `tripPK` Primary Key. +delete :: FilePath -> T.TripPK -> IO () +delete dbFile tripPK = + withConnection dbFile $ \conn -> do + execute conn "DELETE FROM Trips WHERE username = ? AND destination = ? and startDate = ?" + (tripPK & T.tripPKFields) + +-- | Return a list of all of the trips in `dbFile`. +list :: FilePath -> IO [T.Trip] +list dbFile = withConnection dbFile $ \conn -> + query_ conn "SELECT * FROM Trips" |