X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;ds=sidebyside;f=src%2FTSN%2FXML%2FWeather.hs;h=be591c10276d76570fa4f29a8fdc34de7cfbd714;hb=775620685401dce01bbd2d715450ab101a8ec56a;hp=03bb83d51c3ac3d45dbf9b2f5f974f5968f1d60b;hpb=a0853ebe00e630b7d50f97949d4dd45c602bd454;p=dead%2Fhtsn-import.git diff --git a/src/TSN/XML/Weather.hs b/src/TSN/XML/Weather.hs index 03bb83d..be591c1 100644 --- a/src/TSN/XML/Weather.hs +++ b/src/TSN/XML/Weather.hs @@ -26,7 +26,7 @@ import Data.Time ( UTCTime ) import Data.Tuple.Curry ( uncurryN ) import Database.Groundhog ( countAll, - executeRaw, + deleteAll, migrate, runMigration, silentMigrationLogger ) @@ -57,6 +57,7 @@ import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate ) import TSN.Picklers ( xp_gamedate, xp_time_stamp ) import TSN.XmlImport ( XmlImport(..), XmlImportFk(..) ) import Xml ( + Child(..), FromXml(..), FromXmlFk(..), ToDb(..), @@ -101,15 +102,18 @@ data WeatherForecastListing = instance ToDb WeatherForecastListingXml where type Db WeatherForecastListingXml = WeatherForecastListing --- | This is needed to define the 'XmlImportFk' instance for --- 'WeatherForecastListing'. --- -instance FromXmlFk WeatherForecastListingXml where + +instance Child WeatherForecastListingXml where -- | Each 'WeatherForecastListingXml' is contained in a -- 'WeatherForecast'. -- type Parent WeatherForecastListingXml = WeatherForecast + +-- | This is needed to define the 'XmlImportFk' instance for +-- 'WeatherForecastListing'. +-- +instance FromXmlFk WeatherForecastListingXml where from_xml_fk fk WeatherForecastListingXml{..} = WeatherForecastListing { db_weather_forecasts_id = fk, @@ -164,9 +168,15 @@ instance ToDb WeatherForecastXml where -- type Db WeatherForecastXml = WeatherForecast -instance FromXmlFk WeatherForecastXml where + +instance Child WeatherForecastXml where + -- | The database type containing a 'WeatherForecastXml' is + -- 'Weather'. type Parent WeatherForecastXml = Weather + +instance FromXmlFk WeatherForecastXml where + -- | To convert a 'WeatherForecastXml' into a 'WeatherForecast', we -- replace the 'WeatherLeague' with its name. -- @@ -412,8 +422,7 @@ test_on_delete_cascade = migrate b migrate c _ <- dbimport weather - -- No idea how 'delete' works, so do this instead. - executeRaw False "DELETE FROM weather;" [] + deleteAll a count_a <- countAll a count_b <- countAll b count_c <- countAll c