{-|
Module: BattlePlace.WebApi.Auth
Description: Web API authentication types.
License: MIT
-}

{-# LANGUAGE DeriveGeneric #-}

module BattlePlace.WebApi.Auth
        ( ClientToken(..)
        ) where

import qualified Data.Aeson as J
import GHC.Generics(Generic)

import BattlePlace.Util
import BattlePlace.WebApi.Types

data ClientToken = ClientToken
        { clientToken_projectId :: {-# UNPACK #-} !ProjectId
        , clientToken_client :: !Client
        } deriving Generic
instance J.FromJSON ClientToken where
        parseJSON = J.genericParseJSON jsonOptions
instance J.ToJSON ClientToken where
        toJSON = J.genericToJSON jsonOptions
        toEncoding = J.genericToEncoding jsonOptions