shrub/pkg/hair/lib/Vere/Http/Server.hs

40 lines
887 B
Haskell
Raw Normal View History

2019-05-16 03:00:10 +03:00
-- +http-server ----------------------------------------------------------------
module Vere.Http.Server where
import ClassyPrelude
import Vere.Http
type ServerId = Word
type ConnectionId = Word
type RequestId = Word
data Eff = Eff ServerId ConnectionId RequestId ServerRequest
-- | An http server effect is configuration, or it sends an outbound response
data ServerRequest
= SetConfig Config
| Response Event
data Config = Config
{ secure :: Maybe (Key, Cert)
, proxy :: Bool
, log :: Bool
, redirect :: Bool
}
2019-05-16 03:04:21 +03:00
-- Note: We need to parse PEM-encoded RSA private keys and cert or cert chain
-- from Wain
newtype Key = Key PEM
newtype Cert = Cert PEM
2019-05-16 03:00:10 +03:00
data Wain = Wain [Text]
2019-05-16 03:04:21 +03:00
data PEM
2019-05-16 03:00:10 +03:00
data ClientResponse
= Progress ResponseHeader Int (Maybe Int) (Maybe ByteString)
| Finished ResponseHeader (Maybe MimeData)
| Cancel
data MimeData = MimeData Text ByteString