{-|
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