packages feed

salvia-0.1: src/Network/Salvia/Handlers.hs

module Network.Salvia.Handlers (

  -- * Fundamental protocol handlers.

    -- ** Default handler environments.

      hDefaultEnv
    , hSessionEnv

    -- ** Parse client requests.

    , hParser

    -- ** Print server responses.

    , hPrinter

    -- ** HTTP header banner.

    , hBanner

    -- ** Closing or keeping alive connections.

    , hCloseConn
    , hKeepAlive

    -- ** Enable HTTP HEAD requests.
    
    , hHead

  -- * Error handling and logging.

    -- ** Default error handlers.

    , hError
    , hCustomError
    , hIOError
    , safeIO

    -- ** Logging of client requests.

    , hLog
    , hLogWithCounter

    -- ** Fallback handlers.

    , hOr
    , hEither

    -- ** Request counter.

    , hCounter

  -- * Redirecting and rewriting.

    -- ** Redirecting the client.

    , hRedirect

    -- ** Request URI rewriting.

    , hRewrite
    , hRewriteHost
    , hRewritePath
    , hRewriteExt
    , hWithDir
    , hWithoutDir

  -- * File and directory serving.

    -- ** Serve static file resources.

    , hFileResource
    , hFileResourceFilter
    , hResource
    , hUri
    , hFile
    , hFileFilter

    -- ** Serve directory indices.

    , hDirectory
    , hDirectoryResource

    -- ** Serve file system directory.

    , hFileTypeDispatcher
    , hFileSystem
    , hFileSystemNoIndexes

    -- ** Enable PUTing resources to the files ystem.

    , hPut

    -- ** Serving CGI scripts.

    , hCGI

  -- * Dispatching.

    -- ** Custom request dispatchers.

    , Dispatcher
    , ListDispatcher
    , hDispatch
    , hListDispatch

    -- ** Dispatch based on request method.

    , hMethod
    , hMethodRouter

    , hOPTIONS
    , hGET
    , hHEAD
    , hPOST
    , hPUT
    , hDELETE
    , hTRACE
    , hCONNECT

    -- ** Dispatch based on request path.

    , hPath
    , hPathRouter
    , hPrefix
    , hPrefixRouter
    , hParameters

    -- ** Dispatch based on filename extension.

    , hExtension
    , hExtensionRouter

    -- ** Dispatch based on host name.

    , hHostRouter
    , hVirtualHosting

  -- * Session and user management.

    -- ** Cookie handling.

    , hSetCookies
    , hGetCookies
    , newCookie

    -- ** Session management.

    , hSession

    , SessionID
    , Session (..)
    , TSession
    , SessionHandler
    , Sessions

    , mkSessions

    -- ** User management.

    , Username
    , Password
    , Action
    , Actions
    , User (..)
    , Users
    , UserDatabase
    , TUserDatabase

    , UserPayload (..)
    , UserSession
    , TUserSession
    , UserSessionHandler

    , hSignup
    , hLogin
    , hLogout
    , hLoginfo

    , hAuthorized
    , hAuthorizedUser

    , readUserDatabase

  ) where

import Network.Salvia.Handler.Banner
import Network.Salvia.Handler.CGI
import Network.Salvia.Handler.Close
import Network.Salvia.Handler.Cookie
import Network.Salvia.Handler.Counter
import Network.Salvia.Handler.Directory
import Network.Salvia.Handler.Dispatching
import Network.Salvia.Handler.Environment
import Network.Salvia.Handler.Error
import Network.Salvia.Handler.ExtensionDispatcher
import Network.Salvia.Handler.Fallback
import Network.Salvia.Handler.File
import Network.Salvia.Handler.FileSystem
import Network.Salvia.Handler.Head
import Network.Salvia.Handler.Log
import Network.Salvia.Handler.Login
import Network.Salvia.Handler.MethodRouter
import Network.Salvia.Handler.Parser
import Network.Salvia.Handler.PathRouter
import Network.Salvia.Handler.Printer
import Network.Salvia.Handler.Put
import Network.Salvia.Handler.Redirect
import Network.Salvia.Handler.Rewrite
import Network.Salvia.Handler.Session
import Network.Salvia.Handler.VirtualHosting