module Const ( ReqRequestParams (..), Timeout (..), second, seconds, minute, minutes, hour, hours, defaultRequest, millisecond, milliseconds, ) where import Network.HTTP.Req as R ( GET (GET), HttpBody, HttpBodyAllowed, HttpMethod (AllowsBody), NoReqBody (NoReqBody), ProvidesBody, Scheme (..), Url, http, ) -- ################### time ################## newtype Timeout = MkTimeout {microseconds :: Int} deriving (Show, Eq) deriving newtype (Num) millisecond :: Timeout millisecond = MkTimeout 1_000 milliseconds :: Timeout milliseconds = millisecond second :: Timeout second = 1_000 * milliseconds seconds :: Timeout seconds = second minute :: Timeout minute = 60 * seconds minutes :: Timeout minutes = minute hour :: Timeout hour = 60 * minutes hours :: Timeout hours = hour -- ################### request ################## data ReqRequestParams where MkRequestParams :: (HttpBodyAllowed (AllowsBody method) (ProvidesBody body), HttpMethod method, HttpBody body) => { url :: Url 'Http, method :: method, body :: body, port :: Int } -> ReqRequestParams defaultRequest :: ReqRequestParams defaultRequest = MkRequestParams { url = http "127.0.0.1", method = GET, body = NoReqBody, port = 4444 }