]> gitweb.michael.orlitzky.com - dead/htsn-import.git/commitdiff
Use Generics.prepend in TSN.XML.AutoRacingResults.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 2 Jan 2015 17:59:59 +0000 (12:59 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 2 Jan 2015 17:59:59 +0000 (12:59 -0500)
src/TSN/XML/AutoRacingResults.hs

index 40e199f5464e6ea6f84e655925ebe8f10089d6eb..9acbe01f258e6a69f5074cc127c86e05afbe50ca 100644 (file)
@@ -61,7 +61,7 @@ import Text.XML.HXT.Core (
   xpWrap )
 
 -- Local imports.
-import Generics ( Generic(..), to_tuple )
+import Generics ( Generic(..), prepend, to_tuple )
 import TSN.Codegen ( tsn_codegen_config )
 import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
 import TSN.Picklers (
@@ -193,7 +193,11 @@ data AutoRacingResultsListing =
     db_dnf :: Maybe Bool,
     db_nc :: Maybe Bool,
     db_earnings :: Maybe Int }
+  deriving ( GHC.Generic )
 
+-- | For 'Generics.prepend'.
+--
+instance Generic AutoRacingResultsListing
 
 -- | XML representation of a \<Listing\> contained within a
 --   \<message\>.
@@ -238,22 +242,7 @@ instance FromXmlFk AutoRacingResultsListingXml where
   --   'AutoRacingResultsListing', we add the foreign key and copy
   --   everything else verbatim.
   --
-  from_xml_fk fk AutoRacingResultsListingXml{..} =
-    AutoRacingResultsListing {
-      db_auto_racing_results_id = fk,
-      db_finish_position = xml_finish_position,
-      db_starting_position = xml_starting_position,
-      db_car_number = xml_car_number,
-      db_driver_id = xml_driver_id,
-      db_driver = xml_driver,
-      db_car_make = xml_car_make,
-      db_points = xml_points,
-      db_laps_completed = xml_laps_completed,
-      db_laps_leading = xml_laps_leading,
-      db_status = xml_status,
-      db_dnf = xml_dnf,
-      db_nc = xml_nc,
-      db_earnings = xml_earnings }
+  from_xml_fk = prepend
 
 
 -- | This allows us to insert the XML representation
@@ -351,7 +340,7 @@ instance Child AutoRacingResultsRaceInformationXml where
 instance FromXmlFk AutoRacingResultsRaceInformationXml where
   -- | To convert an 'AutoRacingResultsRaceInformationXml' to an
   --   'AutoRacingResultsRaceInformartion', we add the foreign key and
-  --   copy everything else verbatim.
+  --   massage the 'MostLapsLeading' embedded type,
   --
   from_xml_fk fk AutoRacingResultsRaceInformationXml{..} =
     AutoRacingResultsRaceInformation {