-- | Module for common re-exports module Mig.Extra.Server.Common ( -- * types Server (..), Api (..), Path (..), PathItem (..), Route (..), -- * DSL Json, AnyMedia, OctetStream, FormUrlEncoded, ToServer (..), ToRoute (..), MediaType, ToMediaType (..), ToRespBody (..), -- ** response IsResp (..), badReq, internalServerError, notImplemented, redirect, setHeader, setCookie, SetCookie (..), defCookie, -- ** methods Send (..), IsMethod (..), GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD, TRACE, -- ** safe URLs UrlOf, ToUrl (..), Url (..), renderUrl, (:|) (..), -- ** path and query -- | Build API for routes with queries and captures. -- Use monoid to combine several routes together. (/.), Capture (..), Query (..), QueryFlag (..), Optional (..), Header (..), OptionalHeader (..), Cookie (..), PathInfo (..), FullPathInfo (..), RawRequest (..), -- ** response -- | How to modify response and attach specific info to it -- ** specific cases staticFiles, -- ** Plugins Plugin (..), PluginFun, ToPlugin (..), applyPlugin, ($:), prependServerAction, appendServerAction, processResponse, -- ** Low-level types Request, Response, okResponse, badResponse, badRequest, ServerFun, -- ** Render -- | Render Reader-IO monad servers to IO servers. HasServer (..), fromReader, -- * Convertes ToText (..), -- ** Server mapRouteInfo, mapServerFun, mapResponse, atPath, filterPath, getServerPaths, addPathLink, -- ** OpenApi toOpenApi, setDescription, describeInputs, setSummary, module X, ) where import Mig.Core hiding ( Delete, Get, Head, Options, Patch, Post, Put, Resp, RespOr, Trace, ) -- common codecs and types import Control.Monad.IO.Class as X import Control.Monad.Trans.Class as X import Data.Aeson as X (FromJSON (..), ToJSON (..)) import Data.Default as X import Data.Maybe as X import Data.OpenApi as X (OpenApi, ToParamSchema (..), ToSchema (..)) import Data.String as X import Data.Text as X (Text) import GHC.Generics as X (Generic) import Mig.Extra.Derive as X import Network.HTTP.Types.Header as X (RequestHeaders, ResponseHeaders) import Network.HTTP.Types.Status as X import Text.Blaze.Html as X (Html, ToMarkup (..)) import Web.FormUrlEncoded as X import Web.HttpApiData as X