1 {-# LANGUAGE EmptyDataDecls #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE FlexibleInstances #-}
5 {-# LANGUAGE OverloadedStrings #-}
6 {-# LANGUAGE QuasiQuotes #-}
7 {-# LANGUAGE TemplateHaskell #-}
8 {-# LANGUAGE TypeFamilies #-}
9 {-# LANGUAGE TypeSynonymInstances #-}
13 import Generics.Regular
14 import Database.Persist.TH
15 import Text.XML.HXT.Core
17 share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
35 pickle_listing :: PU Listing
38 xpWrap (\(w,x,y,z) -> Listing w x y z,
43 xp4Tuple (xpElem "team" xpText)
44 (xpElem "teamno" xpPrim)
45 (xpElem "injuries" xpText)
46 (xpElem "updated" xpPrim)
48 instance XmlPickler Listing where
49 xpickle = pickle_listing
51 $(deriveAll ''Listing "PFListing")
52 type instance PF Listing = PFListing
55 pickle_message :: PU Message
58 xpWrap (\(u,v,w,x,y,z) -> Message u v w x y z,
59 \m -> (messageXml_file_id m,
64 messageTime_stamp m)) $
65 xp6Tuple (xpElem "XML_File_ID" xpPrim)
66 (xpElem "heading" xpText)
67 (xpElem "category" xpText)
68 (xpElem "sport" xpText)
69 (xpList pickle_listing)
70 (xpElem "time_stamp" xpText)
72 instance XmlPickler Message where
73 xpickle = pickle_message
75 $(deriveAll ''Message "PFMessage")
76 type instance PF Message = PFMessage