1 {-# LANGUAGE EmptyDataDecls #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE FlexibleInstances #-}
5 {-# LANGUAGE MultiParamTypeClasses #-}
6 {-# LANGUAGE OverloadedStrings #-}
7 {-# LANGUAGE QuasiQuotes #-}
8 {-# LANGUAGE TemplateHaskell #-}
9 {-# LANGUAGE TypeFamilies #-}
13 import Database.Persist.TH (
20 import Text.XML.HXT.Core (
31 import Uncurry (uncurry4, uncurry5, uncurry6)
33 share [mkPersist sqlOnlySettings,
34 mkDeleteCascade sqlOnlySettings,
35 mkMigrate "migrate_injuries"] [persistLowerCase|
48 listings [InjuriesListing]
54 pickle_injurieslisting :: PU InjuriesListing
55 pickle_injurieslisting =
57 xpWrap (uncurry4 InjuriesListing,
58 \l -> (injuriesListingTeam l,
59 injuriesListingTeamno l,
60 injuriesListingInjuries l,
61 injuriesListingUpdated l)) $
62 xp4Tuple (xpElem "team" xpText)
63 (xpElem "teamno" xpPrim)
64 (xpElem "injuries" xpText)
65 (xpElem "updated" xpPrim)
67 instance XmlPickler InjuriesListing where
68 xpickle = pickle_injurieslisting
71 pickle_injuriesmessage :: PU InjuriesMessage
72 pickle_injuriesmessage =
74 xpWrap (uncurry6 InjuriesMessage,
75 \m -> (injuriesMessageXml_file_id m,
76 injuriesMessageHeading m,
77 injuriesMessageCategory m,
78 injuriesMessageSport m,
79 injuriesMessageListings m,
80 injuriesMessageTime_stamp m)) $
81 xp6Tuple (xpElem "XML_File_ID" xpPrim)
82 (xpElem "heading" xpText)
83 (xpElem "category" xpText)
84 (xpElem "sport" xpText)
85 (xpList pickle_injurieslisting)
86 (xpElem "time_stamp" xpText)
88 instance XmlPickler InjuriesMessage where
89 xpickle = pickle_injuriesmessage