libjenkins-0.3.0.0: Jenkins API interface

Safe HaskellNone

Jenkins.Rest.Internal

Description

Jenkins REST API interface internals

Synopsis

Documentation

newtype Jenkins a Source

Jenkins REST API query sequence description

Constructors

Jenkins 

Fields

unJenkins :: F JenkinsF a
 

data JenkinsF a whereSource

Jenkins REST API query

Constructors

Get :: Method Complete f -> (ByteString -> a) -> JenkinsF a 
Post :: (forall f. Method Complete f) -> ByteString -> (ByteString -> a) -> JenkinsF a 
Conc :: Jenkins a -> Jenkins b -> (a -> b -> c) -> JenkinsF c 
IO :: IO a -> JenkinsF a 
With :: (Request -> Request) -> Jenkins b -> (b -> a) -> JenkinsF a 
Dcon :: JenkinsF a 

Instances

data Result e v Source

The result of Jenkins REST API queries

Constructors

Error e

Exception e was thrown while querying

Disconnect

The client was explicitly disconnected

Result v

Querying successfully finished the with value v

Instances

Typeable2 Result 
(Eq e, Eq v) => Eq (Result e v) 
(Data e, Data v) => Data (Result e v) 
(Ord e, Ord v) => Ord (Result e v) 
(Show e, Show v) => Show (Result e v) 
Generic (Result e v) 

runJenkins :: ConnectInfo -> Jenkins a -> IO (Result HttpException a)Source

Query Jenkins API using Jenkins description

Successful result is either Disconnect or Result v

If HttpException was thrown by http-conduit, runJenkins catches it and wraps in Error. Other exceptions are not catched

_Error :: Prism (Result e a) (Result e' a) e e'Source

A prism into Jenkins error

_Disconnect :: Prism' (Result e a) ()Source

A prism into disconnect

_Result :: Prism (Result e a) (Result e b) a bSource

A prism into result

iterJenkins :: Monad m => (JenkinsF (m a) -> m a) -> Jenkins a -> m aSource

Tear down JenkinsF AST with a JenkinsF-algebra

data ConnectInfo Source

Jenkins connection settings

_jenkinsApiToken may be user's password, Jenkins does not make any distinction between these concepts

Constructors

ConnectInfo 

Fields

_jenkinsUrl :: String

Jenkins URL, e.g. http://example.com/jenkins

_jenkinsPort :: Int

Jenkins port, e.g. 8080

_jenkinsUser :: ByteString

Jenkins user, e.g. jenkins

_jenkinsApiToken :: ByteString

Jenkins user API token

defaultConnectInfo :: ConnectInfoSource

Default Jenkins connection settings

 defaultConnectInfo = ConnectInfo
   { _jenkinsUrl      = "http://example.com/jenkins"
   , _jenkinsPort     = 8080
   , _jenkinsUser     = "jenkins"
   , _jenkinsApiToken = ""
   }

jenkinsUrl :: Lens' ConnectInfo StringSource

A lens into Jenkins URL

jenkinsPort :: Lens' ConnectInfo IntSource

A lens into Jenkins port

jenkinsUser :: Lens' ConnectInfo ByteStringSource

A lens into Jenkins user

jenkinsApiToken :: Lens' ConnectInfo ByteStringSource

A lens into Jenkins user API token

jenkinsPassword :: Lens' ConnectInfo ByteStringSource

A lens into Jenkins password

 jenkinsPassword = jenkinsApiToken