From 6d9e76313d1f89dcf4c1adb7bfabd811a65bd83a Mon Sep 17 00:00:00 2001 From: William Carroll Date: Tue, 28 Jul 2020 10:14:33 +0100 Subject: Partially support DELETE /trips Allow a user to delete a trip entry from the Trips table using the Primary Key. While this type-checks and compiles, it doesn't appear to be working as intended. Perhaps I should use an auto-incrementing integer as the Primary Key. I'm not sure how I want to handle this, so I'm punting for now. --- src/Types.hs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/Types.hs') diff --git a/src/Types.hs b/src/Types.hs index 112b17c53ab2..6d6b83347931 100644 --- a/src/Types.hs +++ b/src/Types.hs @@ -199,6 +199,24 @@ instance FromRow Trip where <*> field <*> field +-- | The fields used as the Primary Key for a Trip entry. +data TripPK = TripPK + { tripPKUsername :: Username + , tripPKDestination :: Destination + , tripPKStartDate :: Date + } deriving (Eq, Show, Generic) + +tripPKFields :: TripPK -> (Username, Destination, Date) +tripPKFields (TripPK{ tripPKUsername + , tripPKDestination + , tripPKStartDate + }) + = (tripPKUsername, tripPKDestination, tripPKStartDate) + +-- TODO(wpcarro): Prefer shorter JSON fields like username instead of +-- tripPKUsername. +instance FromJSON TripPK + -- | Return the tuple representation of a Trip record for SQL. tripFields :: Trip -> (Username, Destination, Date, Date, Comment) tripFields (Trip{ tripUsername -- cgit 1.4.1