]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/Weather.hs
Add the FromXmlFk class, like FromXml except it requires an FK (old idea).
[dead/htsn-import.git] / src / TSN / XML / Weather.hs
index 3773b312bc021af4a78a97b93c85db4f02e736b4..f3b60af69c7fb52e013bdab5d5b11d2d6d21b24d 100644 (file)
@@ -52,7 +52,7 @@ import TSN.Codegen (
 import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
 import TSN.Picklers ( xp_gamedate )
 import TSN.XmlImport ( XmlImport(..) )
-import Xml ( FromXml(..), pickle_unpickle, unpickleable )
+import Xml ( FromXml(..), ToDb(..), pickle_unpickle, unpickleable )
 
 
 
@@ -64,12 +64,14 @@ data WeatherForecastListing =
     db_weather :: String }
   deriving (Eq, Show)
 
+-- | The database analogue of a 'WeatherForecastListing' is itself.
+instance ToDb WeatherForecastListing where
+  type Db WeatherForecastListing = WeatherForecastListing
+
 -- | This is needed to define the XmlImport instance for
--- 'WeatherForecastListing'; it basically says that the DB
--- representation is the same as the XML representation.
+-- 'WeatherForecastListing'.
 --
 instance FromXml WeatherForecastListing where
-  type Db WeatherForecastListing = WeatherForecastListing
   from_xml = id
 
 -- | Allows us to call 'insert_xml' on the XML representation of
@@ -110,12 +112,13 @@ data WeatherForecastXml =
   deriving (Eq, Show)
 
 
-instance FromXml WeatherForecastXml where
+instance ToDb WeatherForecastXml where
   -- | The database representation of a 'WeatherForecastXml' is a
   --   'WeatherForecast'.
   --
   type Db WeatherForecastXml = WeatherForecast
 
+instance FromXml WeatherForecastXml where
   -- | To convert a 'WeatherForecastXml' into a 'WeatherForecast', we
   --   replace the 'WeatherLeague' with its name.
   --
@@ -151,11 +154,12 @@ data Message =
   deriving (Eq, Show)
 
 
-instance FromXml Message where
+instance ToDb Message where
   -- | The database representation of 'Message' is 'Weather'.
   --
   type Db Message = Weather
 
+instance FromXml Message where
   -- | To get a 'Weather' from a 'Message', we drop a bunch of
   --   unwanted fields.
   --