{-| Module : CircleCI.Common.Types Copyright : (c) Denis Shevchenko, 2016 License : MIT Maintainer : me@dshevchenko.biz Stability : alpha Common types for work with CircleCI API. -} module CircleCI.Common.Types ( AccountAPIToken (..) , Token , UserName , ProjectName , BranchName , BuildNumber (..) , Email , CircleCIResponse , ProjectPoint (..) , ErrorMessage ) where import Servant.Client import Data.Text ( Text ) import Control.Monad.Reader -- import CircleCI.Common.Run -- | CircleCI account API token. List of account API tokens can be found at https://circleci.com/account/api. newtype AccountAPIToken = AccountAPIToken Token -- | API token as text, for Servant. type Token = Text -- | GitHub user name. type UserName = Text -- | GitHub project name. type ProjectName = Text -- | GitHub branch name. type BranchName = Text -- | Number of project's build on CircleCI. newtype BuildNumber = BuildNumber Int deriving (Eq, Show) -- | User email address. type Email = Text -- | Response from CircleCI. type CircleCIResponse a = ReaderT AccountAPIToken IO (Either ServantError a) -- | GitHub project identifier, composed from user name and project name. data ProjectPoint = ProjectPoint { userName :: UserName -- ^ GitHub user name. , projectName :: ProjectName -- ^ GitHub project name. } -- | Message about some problem. type ErrorMessage = Text