packages feed

webdriver-precore-0.2.0.0: test/Const.hs

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
    }