Module

HTTPure

Package
purescript-httpure
Repository
cprussin/purescript-httpure

Re-exports from HTTPure.Headers

#Headers Source

newtype Headers

The Headers type is just sugar for a StrMap of Strings that represents the set of headers sent or received in an HTTP request or response.

Instances

  • Lookup Headers String String

    Given a string, return the matching headers. This search is case-insensitive.

  • Show Headers

    Allow a headers set to be represented as a string.

  • Eq Headers

    Compare two Headers objects by comparing the underlying StrMaps.

#headers Source

headers :: Array (Tuple String String) -> Headers

Convert an Array of Tuples of 2 Strings to a Headers object.

Re-exports from HTTPure.Lookup

#lookup Source

lookup :: forall a v k. Lookup a v k => a -> k -> v

#(!!) Source

Operator alias for HTTPure.Lookup.lookup (left-associative / precedence 8)

!! can be used as an infix operator instead of using the lookup function.

Re-exports from HTTPure.Method

#Method Source

data Method

These are the HTTP methods that HTTPure understands.

Constructors

Instances

Re-exports from HTTPure.Path

#Path Source

type Path = Array String

The Path type is just sugar for an Array of String segments that are sent in a request and indicates the path of the resource being requested. Note that this type has an implementation of Lookup for Int keys defined by lookpArray in Lookup.purs because lookupArray is defined for any Array of Monoids. So you can do something like path !! 2 to get the path segment at index 2.

Re-exports from HTTPure.Request

#Request Source

type Request = { body :: Body, headers :: Headers, method :: Method, path :: Path, query :: Query }

A Route is a function that takes a Method, a Path, a Query, a Header, and a Body, and returns a Response monad.

Re-exports from HTTPure.Response

#ResponseM Source

type ResponseM e = HTTPureM e Response

The ResponseM type simply conveniently wraps up an HTTPure monad that returns a response. This type is the return type of all router/route methods.

#variantAlsoNegotiates' Source

variantAlsoNegotiates' :: forall e. Headers -> ResponseM e

506 with headers

#variantAlsoNegotiates Source

variantAlsoNegotiates :: forall e. ResponseM e

506

#useProxy' Source

useProxy' :: forall e. Headers -> Body -> ResponseM e

305 with headers

#useProxy Source

useProxy :: forall e. Body -> ResponseM e

305

#upgradeRequired' Source

upgradeRequired' :: forall e. Headers -> ResponseM e

426 with headers

#upgradeRequired Source

upgradeRequired :: forall e. ResponseM e

426

#unsupportedMediaType' Source

unsupportedMediaType' :: forall e. Headers -> ResponseM e

415 with headers

#unsupportedMediaType Source

unsupportedMediaType :: forall e. ResponseM e

415

#unprocessableEntity' Source

unprocessableEntity' :: forall e. Headers -> ResponseM e

422 with headers

#unprocessableEntity Source

unprocessableEntity :: forall e. ResponseM e

422

#unavailableForLegalReasons' Source

unavailableForLegalReasons' :: forall e. Headers -> ResponseM e

451 with headers

#unavailableForLegalReasons Source

#unauthorized' Source

unauthorized' :: forall e. Headers -> ResponseM e

401 with headers

#unauthorized Source

unauthorized :: forall e. ResponseM e

401

#uRITooLong' Source

uRITooLong' :: forall e. Headers -> ResponseM e

414 with headers

#uRITooLong Source

uRITooLong :: forall e. ResponseM e

414

#tooManyRequests' Source

tooManyRequests' :: forall e. Headers -> ResponseM e

429 with headers

#tooManyRequests Source

tooManyRequests :: forall e. ResponseM e

429

#temporaryRedirect' Source

temporaryRedirect' :: forall e. Headers -> Body -> ResponseM e

307 with headers

#temporaryRedirect Source

temporaryRedirect :: forall e. Body -> ResponseM e

307

#switchingProtocols' Source

switchingProtocols' :: forall e. Headers -> ResponseM e

101 with headers

#switchingProtocols Source

switchingProtocols :: forall e. ResponseM e

101

#serviceUnavailable' Source

serviceUnavailable' :: forall e. Headers -> ResponseM e

503 with headers

#serviceUnavailable Source

serviceUnavailable :: forall e. ResponseM e

503

#seeOther' Source

seeOther' :: forall e. Headers -> Body -> ResponseM e

303 with headers

#seeOther Source

seeOther :: forall e. Body -> ResponseM e

303

#response' Source

response' :: forall e. Status -> Headers -> ResponseM e

The same as response but without a body.

#response Source

response :: forall e. Status -> Headers -> Body -> ResponseM e

For custom response statuses or providing a body for response codes that don't typically send one.

#resetContent' Source

resetContent' :: forall e. Headers -> ResponseM e

205 with headers

#resetContent Source

resetContent :: forall e. ResponseM e

205

#requestTimeout' Source

requestTimeout' :: forall e. Headers -> ResponseM e

408 with headers

#requestTimeout Source

requestTimeout :: forall e. ResponseM e

408

#requestHeaderFieldsTooLarge' Source

requestHeaderFieldsTooLarge' :: forall e. Headers -> ResponseM e

431 with headers

#requestHeaderFieldsTooLarge Source

#rangeNotSatisfiable' Source

rangeNotSatisfiable' :: forall e. Headers -> ResponseM e

416 with headers

#rangeNotSatisfiable Source

rangeNotSatisfiable :: forall e. ResponseM e

416

#proxyAuthenticationRequired' Source

proxyAuthenticationRequired' :: forall e. Headers -> ResponseM e

407 with headers

#proxyAuthenticationRequired Source

#processing' Source

processing' :: forall e. Headers -> ResponseM e

102 with headers

#processing Source

processing :: forall e. ResponseM e

102

#preconditionRequired' Source

preconditionRequired' :: forall e. Headers -> ResponseM e

428 with headers

#preconditionRequired Source

preconditionRequired :: forall e. ResponseM e

428

#preconditionFailed' Source

preconditionFailed' :: forall e. Headers -> ResponseM e

412 with headers

#preconditionFailed Source

preconditionFailed :: forall e. ResponseM e

412

#permanentRedirect' Source

permanentRedirect' :: forall e. Headers -> Body -> ResponseM e

308 with headers

#permanentRedirect Source

permanentRedirect :: forall e. Body -> ResponseM e

308

#paymentRequired' Source

paymentRequired' :: forall e. Headers -> ResponseM e

402 with headers

#paymentRequired Source

paymentRequired :: forall e. ResponseM e

402

#payloadTooLarge' Source

payloadTooLarge' :: forall e. Headers -> ResponseM e

413 with headers

#payloadTooLarge Source

payloadTooLarge :: forall e. ResponseM e

413

#partialContent' Source

partialContent' :: forall e. Headers -> Body -> ResponseM e

206 with headers

#partialContent Source

partialContent :: forall e. Body -> ResponseM e

206

#ok' Source

ok' :: forall e. Headers -> Body -> ResponseM e

200 with headers

#ok Source

ok :: forall e. Body -> ResponseM e

200

#notModified' Source

notModified' :: forall e. Headers -> ResponseM e

304 with headers

#notModified Source

notModified :: forall e. ResponseM e

304

#notImplemented' Source

notImplemented' :: forall e. Headers -> ResponseM e

501 with headers

#notImplemented Source

notImplemented :: forall e. ResponseM e

501

#notFound' Source

notFound' :: forall e. Headers -> ResponseM e

404 with headers

#notFound Source

notFound :: forall e. ResponseM e

404

#notExtended' Source

notExtended' :: forall e. Headers -> ResponseM e

510 with headers

#notExtended Source

notExtended :: forall e. ResponseM e

510

#notAcceptable' Source

notAcceptable' :: forall e. Headers -> ResponseM e

406 with headers

#notAcceptable Source

notAcceptable :: forall e. ResponseM e

406

#nonAuthoritativeInformation' Source

nonAuthoritativeInformation' :: forall e. Headers -> Body -> ResponseM e

203 with headers

#nonAuthoritativeInformation Source

#noContent' Source

noContent' :: forall e. Headers -> ResponseM e

204 with headers

#noContent Source

noContent :: forall e. ResponseM e

204

#networkAuthenticationRequired' Source

networkAuthenticationRequired' :: forall e. Headers -> ResponseM e

511 with headers

#networkAuthenticationRequired Source

#multipleChoices' Source

multipleChoices' :: forall e. Headers -> Body -> ResponseM e

300 with headers

#multipleChoices Source

multipleChoices :: forall e. Body -> ResponseM e

300

#multiStatus' Source

multiStatus' :: forall e. Headers -> Body -> ResponseM e

207 with headers

#multiStatus Source

multiStatus :: forall e. Body -> ResponseM e

207

#movedPermanently' Source

movedPermanently' :: forall e. Headers -> Body -> ResponseM e

301 with headers

#movedPermanently Source

movedPermanently :: forall e. Body -> ResponseM e

301

#misdirectedRequest' Source

misdirectedRequest' :: forall e. Headers -> ResponseM e

421 with headers

#misdirectedRequest Source

misdirectedRequest :: forall e. ResponseM e

421

#methodNotAllowed' Source

methodNotAllowed' :: forall e. Headers -> ResponseM e

405 with headers

#methodNotAllowed Source

methodNotAllowed :: forall e. ResponseM e

405

#loopDetected' Source

loopDetected' :: forall e. Headers -> ResponseM e

508 with headers

#loopDetected Source

loopDetected :: forall e. ResponseM e

508

#locked' Source

locked' :: forall e. Headers -> ResponseM e

423 with headers

#locked Source

locked :: forall e. ResponseM e

423

#lengthRequired' Source

lengthRequired' :: forall e. Headers -> ResponseM e

411 with headers

#lengthRequired Source

lengthRequired :: forall e. ResponseM e

411

#internalServerError' Source

internalServerError' :: forall e. Headers -> Body -> ResponseM e

500 with headers

#internalServerError Source

internalServerError :: forall e. Body -> ResponseM e

500

#insufficientStorage' Source

insufficientStorage' :: forall e. Headers -> ResponseM e

507 with headers

#insufficientStorage Source

insufficientStorage :: forall e. ResponseM e

507

#imATeapot' Source

imATeapot' :: forall e. Headers -> ResponseM e

418 with headers

#imATeapot Source

imATeapot :: forall e. ResponseM e

418

#iMUsed' Source

iMUsed' :: forall e. Headers -> Body -> ResponseM e

226 with headers

#iMUsed Source

iMUsed :: forall e. Body -> ResponseM e

226

#hTTPVersionNotSupported' Source

hTTPVersionNotSupported' :: forall e. Headers -> ResponseM e

505 with headers

#hTTPVersionNotSupported Source

#gone' Source

gone' :: forall e. Headers -> ResponseM e

410 with headers

#gone Source

gone :: forall e. ResponseM e

410

#gatewayTimeout' Source

gatewayTimeout' :: forall e. Headers -> ResponseM e

504 with headers

#gatewayTimeout Source

gatewayTimeout :: forall e. ResponseM e

504

#found' Source

found' :: forall e. Headers -> Body -> ResponseM e

302 with headers

#found Source

found :: forall e. Body -> ResponseM e

302

#forbidden' Source

forbidden' :: forall e. Headers -> ResponseM e

403 with headers

#forbidden Source

forbidden :: forall e. ResponseM e

403

#failedDependency' Source

failedDependency' :: forall e. Headers -> ResponseM e

424 with headers

#failedDependency Source

failedDependency :: forall e. ResponseM e

424

#expectationFailed' Source

expectationFailed' :: forall e. Headers -> ResponseM e

417 with headers

#expectationFailed Source

expectationFailed :: forall e. ResponseM e

417

#created' Source

created' :: forall e. Headers -> ResponseM e

201 with headers

#created Source

created :: forall e. ResponseM e

201

#continue' Source

continue' :: forall e. Headers -> ResponseM e

100 with headers

#continue Source

continue :: forall e. ResponseM e

100

#conflict' Source

conflict' :: forall e. Headers -> Body -> ResponseM e

409 with headers

#conflict Source

conflict :: forall e. Body -> ResponseM e

409

#badRequest' Source

badRequest' :: forall e. Headers -> Body -> ResponseM e

400 with headers

#badRequest Source

badRequest :: forall e. Body -> ResponseM e

400

#badGateway' Source

badGateway' :: forall e. Headers -> ResponseM e

502 with headers

#badGateway Source

badGateway :: forall e. ResponseM e

502

#alreadyReported' Source

alreadyReported' :: forall e. Headers -> ResponseM e

208 with headers

#alreadyReported Source

alreadyReported :: forall e. ResponseM e

208

#accepted' Source

accepted' :: forall e. Headers -> ResponseM e

202 with headers

#accepted Source

accepted :: forall e. ResponseM e

202

Re-exports from HTTPure.Server

#ServerM Source

type ServerM e = HTTPureM e Unit

The ServerM type simply conveniently wraps up an HTTPure monad that returns a Unit. This type is the return type of the HTTPure serve and related methods.

#SecureServerM Source

type SecureServerM e = ServerM (fs :: FS | e)

The SecureServerM type is the same as the ServerM type, but it includes effects for working with the filesystem (to load the key and certificate).

#serve' Source

serve' :: forall e. Int -> String -> String -> (Request -> ResponseM (fs :: FS | e)) -> SecureServerM e -> SecureServerM e

Create and start an SSL server. This method is the same as serve, but takes additional SSL arguments. The arguments in order are:

  1. A port number
  2. A path to a cert file
  3. A path to a private key file
  4. A handler method which maps Request to ResponseM
  5. A callback to call when the server is up

#serve Source

serve :: forall e. Int -> (Request -> ResponseM e) -> ServerM e -> ServerM e

Create and start a server. This is the main entry point for HTTPure. Takes a port number on which to listen, a function mapping Request to ResponseM, and an HTTPureM containing effects to run after the server has booted (usually logging). Returns an HTTPureM containing the server's effects.