xpWrap )
-- Local imports.
-import TSN.Picklers( xp_date, xp_team_id )
+import TSN.Picklers( xp_date )
import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
import TSN.XmlImport ( XmlImport(..) )
import Xml ( FromXml(..), pickle_unpickle, unpickleable )
--
data PlayerListing =
PlayerListing {
- team_id :: String, -- ^ TeamIDs are (apparently) three characters long
- -- and not necessarily numeric.
+ team_id :: String, -- ^ TeamIDs are (apparently) three
+ -- characters long and not necessarily
+ -- numeric. Postgres imposes no performance
+ -- penalty on a lengthless text field,
+ -- so we ignore the likely upper bound of
+ -- three characters.
player_id :: Int,
date :: UTCTime,
pos :: String,
mkPersist defaultCodegenConfig [groundhog|
- entity: PlayerListing
dbName: injuries_detail_player_listings
- constructors:
- - name: PlayerListing
- fields:
- - name: team_id
- type: varchar(3) # We've only seen 3... so far.
|]
pickle_player_listing =
xpElem "PlayerListing" $
xpWrap (from_tuple, to_tuple) $
- xp10Tuple (xpElem "TeamID" xp_team_id)
+ xp10Tuple (xpElem "TeamID" xpText)
(xpElem "PlayerID" xpInt)
(xpElem "Date" xp_date)
(xpElem "Pos" xpText)
pickle_listing =
xpElem "Listing" $
xpWrap (from_tuple, to_tuple) $
- xpTriple (xpElem "TeamID" xp_team_id)
+ xpTriple (xpElem "TeamID" xpText)
(xpElem "FullName" xpText)
(xpList pickle_player_listing)
where
-- | If we unpickle something and then pickle it, we should wind up
--- with the same thing we started with. WARNING: succeess of this
+-- with the same thing we started with. WARNING: success of this
-- test does not mean that unpickling succeeded.
--
test_pickle_of_unpickle_is_identity :: TestTree