tickLeisteServer/src/Data/Aeson/TickLeiste.hs
Dennis Frieberg d2f19b8f03 fixed a typo
2020-09-05 22:49:06 +02:00

37 lines
1.4 KiB
Haskell

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Data.Aeson.TickLeiste
( JSONRequest (..),
JSONEvent (..),
)
where
import Data.Aeson
import Data.Aeson.TH
import qualified Data.Text as T
import Data.TickLeiste
import qualified Data.UUID as U
$(deriveJSON defaultOptions {sumEncoding = defaultTaggedObject {tagFieldName = "tickType", contentsFieldName = "tickValue"}} ''Tick)
data JSONRequest
= SetPlayerTickR {sptRplayerUUID :: U.UUID, sptRtick :: Tick}
| AddPlayerTickR {aptRplayerName :: T.Text, aptRtick :: Tick}
| InitializeTickLeisteR {itlRtickLeiste :: [(Tick, [T.Text])]}
| TickLeisteR
| ChangeNameR {cnaRplayerUUID :: U.UUID, cnaRplayerName :: T.Text}
| RemovePlayerR {rmpRplayerUUID :: U.UUID}
deriving (Show,Eq)
$(deriveJSON defaultOptions {sumEncoding = defaultTaggedObject {tagFieldName = "requestType"}, fieldLabelModifier = drop 4} ''JSONRequest)
data JSONEvent
= SetPlayerTickE {sptEplayerUUID :: U.UUID, sptEtick :: Tick}
| AddPlayerTickE {aptEplayerUUID :: U.UUID, aptEplayerName :: T.Text, aptEtick :: Tick}
| InitializeTickLeisteE {itlEtickLeiste :: [(Tick, [(U.UUID, T.Text)])]}
| ChangeNameE {cnaEplayerUUID :: U.UUID, cnaEplayerName :: T.Text}
| RemovePlayerE {rmpEplayerUUID :: U.UUID}
deriving (Show,Eq)
$(deriveJSON defaultOptions {sumEncoding = defaultTaggedObject {tagFieldName = "eventType"}, fieldLabelModifier = drop 4} ''JSONEvent)