]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/Scores.hs
Update TSN.XML modules to use the new Child class.
[dead/htsn-import.git] / src / TSN / XML / Scores.hs
index 403727e5cfd7e7a11dd917524fe891146abd39d9..66ef90bee4ae31eb753094cefbb302e850d33afa 100644 (file)
@@ -30,7 +30,7 @@ import Data.Tuple.Curry ( uncurryN )
 import Data.Typeable ( Typeable )
 import Database.Groundhog (
   countAll,
-  executeRaw,
+  deleteAll,
   insert,
   insert_,
   migrate,
@@ -67,6 +67,7 @@ import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
 import TSN.Picklers ( xp_time_stamp )
 import TSN.XmlImport ( XmlImport(..), XmlImportFk(..) )
 import Xml (
+  Child(..),
   FromXml(..),
   FromXmlFk(..),
   ToDb(..),
@@ -202,12 +203,15 @@ instance ToDb ScoreGameXml where
   --
   type Db ScoreGameXml = ScoreGame
 
-instance FromXmlFk ScoreGameXml where
+
+instance Child ScoreGameXml where
   -- | Each 'ScoreGameXml' is contained in (i.e. has a foreign key to)
   --   a 'Score'.
   --
   type Parent ScoreGameXml = Score
 
+
+instance FromXmlFk ScoreGameXml where
   from_xml_fk fk ScoreGameXml{..} =
     ScoreGame {
       db_scores_id = fk,
@@ -253,13 +257,15 @@ newtype ScoreGameHTeam =
 -- * ScoreGame_ScoreGameTeam
 
 -- | Join a 'ScoreGame' with its home/away teams. Database-only. We
---   use a join table because the teams are kept unique.
+--   use a join table because the teams are kept unique. The first
+--   argument is the game id, the second argument is the visiting team
+--   (vteam) id, and the last argument is the home team (hteam) id.
 --
 data ScoreGame_ScoreGameTeam =
   ScoreGame_ScoreGameTeam
-    (DefaultKey ScoreGame) -- game id
-    (DefaultKey ScoreGameTeam) -- vteam id
-    (DefaultKey ScoreGameTeam) -- hteam id
+    (DefaultKey ScoreGame) -- game id
+    (DefaultKey ScoreGameTeam) -- vteam id
+    (DefaultKey ScoreGameTeam) -- hteam id
 
 
 -- * ScoreLocation
@@ -385,7 +391,7 @@ mkPersist tsn_codegen_config [groundhog|
             - { name: status_text, dbName: status_text }
 
 - entity: ScoreGame_ScoreGameTeam
-  dbName: scores__scores_games_teams
+  dbName: scores_games__scores_games_teams
   constructors:
     - name: ScoreGame_ScoreGameTeam
       fields:
@@ -618,7 +624,7 @@ test_on_delete_cascade = testGroup "cascading delete tests"
                     migrate f
                   _ <- dbimport score
                   -- No idea how 'delete' works, so do this instead.
-                  executeRaw False "DELETE FROM scores;" []
+                  deleteAll a
                   count_a <- countAll a
                   count_b <- countAll b
                   count_c <- countAll c