battleplace-0.1.0.10: BattlePlace/Token/Types.hs
{-|
Module: BattlePlace.Token.Types
Description: Token types.
License: MIT
-}
{-# LANGUAGE DeriveGeneric, GeneralizedNewtypeDeriving #-}
module BattlePlace.Token.Types
( InternalToken(..)
, Ticket(..)
) where
import qualified Data.Aeson as J
import qualified Data.Swagger as SW
import qualified Data.Text as T
import GHC.Generics(Generic)
import Servant.API
import BattlePlace.Util
-- | Internal token.
-- Token is encrypted, and contains some internal information.
newtype InternalToken a = InternalToken T.Text deriving (Generic, J.FromJSON, J.ToJSON, FromHttpApiData, ToHttpApiData)
instance SW.ToSchema (InternalToken a) where
declareNamedSchema = SW.genericDeclareNamedSchemaNewtype swaggerSchemaOptions SW.declareSchema
instance SW.ToParamSchema (InternalToken a)
-- | Ticket.
-- Ticket doesn't contain information, it's just an ID.
newtype Ticket = Ticket T.Text deriving (Generic, J.FromJSON, J.ToJSON)
instance SW.ToSchema Ticket where
declareNamedSchema = SW.genericDeclareNamedSchemaNewtype swaggerSchemaOptions SW.declareSchema