lightning-haskell-0.1.0.2: test-integration/ConfigLightning.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
module ConfigLightning where
import qualified Data.Text as T
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import Network.API.Builder
import System.Environment
import System.Exit
import Web.Lightning.Session
import Web.Lightning
isRight :: Either a b -> Bool
isRight = const False `either` const True
isLeft :: Either a b -> Bool
isLeft = const True `either` const False
newtype RunLightning = RunLightning
{ run :: forall a. Lightning a -> IO (Either (APIError LightningError) a) }
configLightning :: IO RunLightning
configLightning = do
url <- getEnv "LIGHTNING_VIZ_URL"
manager <- newManager tlsManagerSettings
session <- interpretIO (LightningState (T.pack url) manager Nothing id) $ createSession (Just "Integration Tests")
case session of
Left _ -> exitFailure
Right s ->
return $ RunLightning $ runLightningWith (LightningOptions (Just manager) (T.pack url) Anonymous (Just s))