]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/AutoRacingDriverList.hs
Update all silent migrations for groundhog-0.7.
[dead/htsn-import.git] / src / TSN / XML / AutoRacingDriverList.hs
index b1a611e77133087271c2a380160d546071c6c881..482c1f3835699f30fcff5a1716714353d4890e8f 100644 (file)
@@ -25,14 +25,13 @@ where
 import Control.Monad ( forM_ )
 import Data.Time ( UTCTime(..) )
 import Data.Tuple.Curry ( uncurryN )
+import qualified Data.Vector.HFixed as H ( HVector, cons, convert )
 import Database.Groundhog (
   countAll,
   deleteAll,
-  migrate,
-  runMigration,
-  silentMigrationLogger )
+  migrate )
 import Database.Groundhog.Core ( DefaultKey )
-import Database.Groundhog.Generic ( runDbConn )
+import Database.Groundhog.Generic ( runDbConn, runMigrationSilent )
 import Database.Groundhog.Sqlite ( withSqliteConn )
 import Database.Groundhog.TH (
   groundhog,
@@ -52,7 +51,6 @@ import Text.XML.HXT.Core (
   xpWrap )
 
 -- Local imports.
-import Generics ( Generic(..), to_tuple )
 import TSN.Codegen ( tsn_codegen_config )
 import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
 import TSN.Picklers ( xp_date, xp_time_stamp )
@@ -106,9 +104,9 @@ data Message =
     xml_time_stamp :: UTCTime }
   deriving (Eq, GHC.Generic, Show)
 
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
 --
-instance Generic Message
+instance H.HVector Message
 
 
 instance ToDb Message where
@@ -143,40 +141,47 @@ instance XmlImport Message
 -- AutoRacingDriverListListing / AutoRacingDriverListListingXml
 
 -- | Database representation of a \<Listing\> contained within a
---   \<message\>.
+--   \<message\>. The leading underscores prevent unused field
+--   warnings.
 --
 data AutoRacingDriverListListing =
   AutoRacingDriverListListing {
-    db_auto_racing_driver_lists_id :: DefaultKey AutoRacingDriverList,
-    db_driver_id :: Int,
-    db_driver :: String,
-    db_height :: Maybe String,
-    db_weight :: Int,
-    db_date_of_birth :: UTCTime,
-    db_hometown :: String,
-    db_nationality :: Maybe String,
-    db_car_number :: Int,
-    db_car :: String }
+    _db_auto_racing_driver_lists_id :: DefaultKey AutoRacingDriverList,
+    _db_driver_id :: Int,
+    _db_driver :: String,
+    _db_height :: Maybe String,
+    _db_weight :: Int,
+    _db_date_of_birth :: UTCTime,
+    _db_hometown :: String,
+    _db_nationality :: Maybe String,
+    _db_car_number :: Int,
+    _db_car :: String }
+  deriving ( GHC.Generic )
+
+-- | For 'H.convert'.
+--
+instance H.HVector AutoRacingDriverListListing
+
 
 -- | XML representation of a \<Listing\> contained within a
---   \<message\>.
+--   \<message\>. The underscores prevent unused field warnings.
 --
 data AutoRacingDriverListListingXml =
   AutoRacingDriverListListingXml {
-    xml_driver_id :: Int,
-    xml_driver :: String,
-    xml_height :: Maybe String,
-    xml_weight :: Int,
-    xml_date_of_birth :: UTCTime,
-    xml_hometown :: String,
-    xml_nationality :: Maybe String,
-    xml_car_number :: Int,
-    xml_car :: String }
+    _xml_driver_id :: Int,
+    _xml_driver :: String,
+    _xml_height :: Maybe String,
+    _xml_weight :: Int,
+    _xml_date_of_birth :: UTCTime,
+    _xml_hometown :: String,
+    _xml_nationality :: Maybe String,
+    _xml_car_number :: Int,
+    _xml_car :: String }
   deriving (Eq, GHC.Generic, Show)
 
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert' and 'H.cons'.
 --
-instance Generic AutoRacingDriverListListingXml
+instance H.HVector AutoRacingDriverListListingXml
 
 instance ToDb AutoRacingDriverListListingXml where
   -- | The database analogue of an 'AutoRacingDriverListListingXml' is
@@ -197,18 +202,8 @@ instance FromXmlFk AutoRacingDriverListListingXml where
   --   'AutoRacingDriverListListing', we add the foreign key and copy
   --   everything else verbatim.
   --
-  from_xml_fk fk AutoRacingDriverListListingXml{..} =
-    AutoRacingDriverListListing {
-      db_auto_racing_driver_lists_id = fk,
-      db_driver_id = xml_driver_id,
-      db_driver = xml_driver,
-      db_height = xml_height,
-      db_weight = xml_weight,
-      db_date_of_birth = xml_date_of_birth,
-      db_hometown = xml_hometown,
-      db_nationality = xml_nationality,
-      db_car_number = xml_car_number,
-      db_car = xml_car }
+  from_xml_fk = H.cons
+
 
 
 -- | This allows us to insert the XML representation
@@ -254,7 +249,7 @@ mkPersist tsn_codegen_config [groundhog|
   constructors:
     - name: AutoRacingDriverListListing
       fields:
-        - name: db_auto_racing_driver_lists_id
+        - name: _db_auto_racing_driver_lists_id
           reference:
             onDelete: cascade
 
@@ -270,7 +265,7 @@ mkPersist tsn_codegen_config [groundhog|
 pickle_listing :: PU AutoRacingDriverListListingXml
 pickle_listing =
   xpElem "Listing" $
-    xpWrap (from_tuple, to_tuple) $
+    xpWrap (from_tuple, H.convert) $
     xp9Tuple (xpElem "DriverID" xpInt)
              (xpElem "Driver" xpText)
              (xpElem "Height" $ xpOption xpText)
@@ -288,7 +283,7 @@ pickle_listing =
 pickle_message :: PU Message
 pickle_message =
   xpElem "message" $
-    xpWrap (from_tuple, to_tuple) $
+    xpWrap (from_tuple, H.convert) $
     xp7Tuple (xpElem "XML_File_ID" xpInt)
              (xpElem "heading" xpText)
              (xpElem "category" xpText)
@@ -357,7 +352,7 @@ test_on_delete_cascade = testGroup "cascading delete tests"
       let b = undefined :: AutoRacingDriverListListing
 
       actual <- withSqliteConn ":memory:" $ runDbConn $ do
-                  runMigration silentMigrationLogger $ do
+                  runMigrationSilent $ do
                     migrate a
                     migrate b
                   _ <- dbimport results