{-# LANGUAGE CPP #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module Servant.Swagger.UI.ReDoc (
SwaggerSchemaUI,
SwaggerSchemaUI',
redocSchemaUIServer,
redocSchemaUIServerT,
redocSchemaUIServer',
redocSchemaUIServerT',
redocIndexTemplate,
redocFiles
) where
import Servant.Swagger.UI.Core
import Data.Aeson (ToJSON, Value)
import Data.ByteString (ByteString)
import Data.Text (Text)
import FileEmbedLzma
import Servant
redocSchemaUIServer
:: (Server api ~ Handler Value, ToJSON a)
=> a -> Server (SwaggerSchemaUI' dir api)
redocSchemaUIServer :: a -> Server (SwaggerSchemaUI' dir api)
redocSchemaUIServer =
Text
-> [(FilePath, ByteString)]
-> a
-> Server (SwaggerSchemaUI' dir api)
forall (m :: * -> *) api a (dir :: Symbol).
(Monad m, ServerT api m ~ m Value, ToJSON a) =>
Text
-> [(FilePath, ByteString)]
-> a
-> ServerT (SwaggerSchemaUI' dir api) m
swaggerSchemaUIServerImpl Text
redocIndexTemplate [(FilePath, ByteString)]
redocFiles
redocSchemaUIServerT
:: (Monad m, ServerT api m ~ m Value, ToJSON a)
=> a -> ServerT (SwaggerSchemaUI' dir api) m
redocSchemaUIServerT :: a -> ServerT (SwaggerSchemaUI' dir api) m
redocSchemaUIServerT =
Text
-> [(FilePath, ByteString)]
-> a
-> ServerT (SwaggerSchemaUI' dir api) m
forall (m :: * -> *) api a (dir :: Symbol).
(Monad m, ServerT api m ~ m Value, ToJSON a) =>
Text
-> [(FilePath, ByteString)]
-> a
-> ServerT (SwaggerSchemaUI' dir api) m
swaggerSchemaUIServerImpl Text
redocIndexTemplate [(FilePath, ByteString)]
redocFiles
redocSchemaUIServer'
:: Server api -> Server (SwaggerSchemaUI' dir api)
redocSchemaUIServer' :: Server api -> Server (SwaggerSchemaUI' dir api)
redocSchemaUIServer' =
Text
-> [(FilePath, ByteString)]
-> Server api
-> Server (SwaggerSchemaUI' dir api)
forall (m :: * -> *) api (dir :: Symbol).
Monad m =>
Text
-> [(FilePath, ByteString)]
-> ServerT api m
-> ServerT (SwaggerSchemaUI' dir api) m
swaggerSchemaUIServerImpl' Text
redocIndexTemplate [(FilePath, ByteString)]
redocFiles
redocSchemaUIServerT'
:: Monad m => ServerT api m -> ServerT (SwaggerSchemaUI' dir api) m
redocSchemaUIServerT' :: ServerT api m -> ServerT (SwaggerSchemaUI' dir api) m
redocSchemaUIServerT' =
Text
-> [(FilePath, ByteString)]
-> ServerT api m
-> ServerT (SwaggerSchemaUI' dir api) m
forall (m :: * -> *) api (dir :: Symbol).
Monad m =>
Text
-> [(FilePath, ByteString)]
-> ServerT api m
-> ServerT (SwaggerSchemaUI' dir api) m
swaggerSchemaUIServerImpl' Text
redocIndexTemplate [(FilePath, ByteString)]
redocFiles
redocIndexTemplate :: Text
redocIndexTemplate :: Text
redocIndexTemplate = $(embedText "redoc.index.html.tmpl")
redocFiles :: [(FilePath, ByteString)]
redocFiles :: [(FilePath, ByteString)]
redocFiles = $(embedRecursiveDir "redoc-dist-1.22.3")