packages feed

waiz-0.0.1.0: src/Network/Wai/Optics/Internal.hs

{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wall -Wno-deprecations #-}

module Network.Wai.Optics.Internal (
  -- * Request field lenses
  requestMethodL,
  httpVersionL,
  rawPathInfoL,
  rawQueryStringL,
  requestHeadersL,
  isSecureL,
  remoteHostL,
  pathInfoL,
  queryStringL,
  requestBodyL,
  vaultL,
  requestBodyLengthL,
  requestHeaderHostL,
  requestHeaderRangeL,
  requestHeaderRefererL,
  requestHeaderUserAgentL,

  -- * FilePart field lenses
  filePartOffsetL,
  filePartByteCountL,
  filePartFileSizeL,
) where

import Control.Lens (Lens', lens)
import Data.Bool (Bool)
import Data.ByteString (ByteString)
import Data.Maybe (Maybe)
import Data.Text (Text)
import Data.Vault.Lazy (Vault)
import Network.HTTP.Types (HttpVersion, Method, Query, RequestHeaders)
import Network.Socket (SockAddr)
import Network.Wai.Internal (
  FilePart (..),
  Request (..),
  RequestBodyLength,
 )
import Prelude (IO, Integer)

requestMethodL :: Lens' Request Method
requestMethodL = lens requestMethod (\r x -> r{requestMethod = x})
{-# INLINE requestMethodL #-}

httpVersionL :: Lens' Request HttpVersion
httpVersionL = lens httpVersion (\r x -> r{httpVersion = x})
{-# INLINE httpVersionL #-}

rawPathInfoL :: Lens' Request ByteString
rawPathInfoL = lens rawPathInfo (\r x -> r{rawPathInfo = x})
{-# INLINE rawPathInfoL #-}

rawQueryStringL :: Lens' Request ByteString
rawQueryStringL = lens rawQueryString (\r x -> r{rawQueryString = x})
{-# INLINE rawQueryStringL #-}

requestHeadersL :: Lens' Request RequestHeaders
requestHeadersL = lens requestHeaders (\r x -> r{requestHeaders = x})
{-# INLINE requestHeadersL #-}

isSecureL :: Lens' Request Bool
isSecureL = lens isSecure (\r x -> r{isSecure = x})
{-# INLINE isSecureL #-}

remoteHostL :: Lens' Request SockAddr
remoteHostL = lens remoteHost (\r x -> r{remoteHost = x})
{-# INLINE remoteHostL #-}

pathInfoL :: Lens' Request [Text]
pathInfoL = lens pathInfo (\r x -> r{pathInfo = x})
{-# INLINE pathInfoL #-}

queryStringL :: Lens' Request Query
queryStringL = lens queryString (\r x -> r{queryString = x})
{-# INLINE queryStringL #-}

requestBodyL :: Lens' Request (IO ByteString)
requestBodyL = lens requestBody (\r x -> r{requestBody = x})
{-# INLINE requestBodyL #-}

vaultL :: Lens' Request Vault
vaultL = lens vault (\r x -> r{vault = x})
{-# INLINE vaultL #-}

requestBodyLengthL :: Lens' Request RequestBodyLength
requestBodyLengthL = lens requestBodyLength (\r x -> r{requestBodyLength = x})
{-# INLINE requestBodyLengthL #-}

requestHeaderHostL :: Lens' Request (Maybe ByteString)
requestHeaderHostL = lens requestHeaderHost (\r x -> r{requestHeaderHost = x})
{-# INLINE requestHeaderHostL #-}

requestHeaderRangeL :: Lens' Request (Maybe ByteString)
requestHeaderRangeL = lens requestHeaderRange (\r x -> r{requestHeaderRange = x})
{-# INLINE requestHeaderRangeL #-}

requestHeaderRefererL :: Lens' Request (Maybe ByteString)
requestHeaderRefererL = lens requestHeaderReferer (\r x -> r{requestHeaderReferer = x})
{-# INLINE requestHeaderRefererL #-}

requestHeaderUserAgentL :: Lens' Request (Maybe ByteString)
requestHeaderUserAgentL = lens requestHeaderUserAgent (\r x -> r{requestHeaderUserAgent = x})
{-# INLINE requestHeaderUserAgentL #-}

filePartOffsetL :: Lens' FilePart Integer
filePartOffsetL = lens filePartOffset (\r x -> r{filePartOffset = x})
{-# INLINE filePartOffsetL #-}

filePartByteCountL :: Lens' FilePart Integer
filePartByteCountL = lens filePartByteCount (\r x -> r{filePartByteCount = x})
{-# INLINE filePartByteCountL #-}

filePartFileSizeL :: Lens' FilePart Integer
filePartFileSizeL = lens filePartFileSize (\r x -> r{filePartFileSize = x})
{-# INLINE filePartFileSizeL #-}