@@ -74,11 +74,16 @@ import Text.Blaze (ToMarkup (..))
75import qualified Data.Text as T
75import qualified Data.Text as T
77+#if MIN_VERSION_servant(0,7,0)
77#if MIN_VERSION_servant(0,5,0)
80#if MIN_VERSION_servant(0,5,0)
78import Control.Monad.Trans.Except (ExceptT)
81import Control.Monad.Trans.Except (ExceptT)
82+#define Handler ExceptT ServantErr IO
80import Control.Monad.Trans.Either (EitherT)
84import Control.Monad.Trans.Either (EitherT)
81−#define ExceptT EitherT
85+#define Handler EitherT ServantErr IO
84-- | Swagger schema + ui api.
89-- | Swagger schema + ui api.
@@ -113,7 +118,15 @@ type SwaggerSchemaUI' (dir :: Symbol) (api :: *) =
113-- to find schema file automatically.
118-- to find schema file automatically.
114data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
119data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
121+#if MIN_VERSION_servant(0,10,0)
123+#define LINKPATH uriPath . linkURI
126+#define LINKPATH uriPath
116−instance (KnownSymbol dir, HasLink api, URI ~ MkLink api, IsElem api api)
129+instance (KnownSymbol dir, HasLink api, LINK ~ MkLink api, IsElem api api)
117 => ToMarkup (SwaggerUiHtml dir api)
130 => ToMarkup (SwaggerUiHtml dir api)
119 toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
132 toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
@@ -121,7 +134,7 @@ instance (KnownSymbol dir, HasLink api, URI ~ MkLink api, IsElem api api)
121 $ T.replace "SERVANT_SWAGGER_UI_DIR" dir
134 $ T.replace "SERVANT_SWAGGER_UI_DIR" dir
122 $ template
135 $ template
124− schema = T.pack $ uriPath $ safeLink proxyApi proxyApi
137+ schema = T.pack $ LINKPATH $ safeLink proxyApi proxyApi
125 dir = T.pack $ symbolVal (Proxy :: Proxy dir)
138 dir = T.pack $ symbolVal (Proxy :: Proxy dir)
126 proxyApi = Proxy :: Proxy api
139 proxyApi = Proxy :: Proxy api
@@ -131,7 +144,7 @@ instance (KnownSymbol dir, HasLink api, URI ~ MkLink api, IsElem api api)
131-- swaggerSchemaUIServer :: Swagger -> Server (SwaggerSchemaUI schema dir)
144-- swaggerSchemaUIServer :: Swagger -> Server (SwaggerSchemaUI schema dir)
133swaggerSchemaUIServer
146swaggerSchemaUIServer
134− :: (Server api ~ ExceptT ServantErr IO Swagger)
147+ :: (Server api ~ Handler Swagger)
135 => Swagger -> Server (SwaggerSchemaUI' dir api)
148 => Swagger -> Server (SwaggerSchemaUI' dir api)
136swaggerSchemaUIServer =
149swaggerSchemaUIServer =
137 swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
150 swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
@@ -140,13 +153,13 @@ swaggerSchemaUIServer =
141-- See <https://github.com/jensoleg/swagger-ui>
154-- See <https://github.com/jensoleg/swagger-ui>
142jensolegSwaggerSchemaUIServer
155jensolegSwaggerSchemaUIServer
143− :: (Server api ~ ExceptT ServantErr IO Swagger)
156+ :: (Server api ~ Handler Swagger)
144 => Swagger -> Server (SwaggerSchemaUI' dir api)
157 => Swagger -> Server (SwaggerSchemaUI' dir api)
145jensolegSwaggerSchemaUIServer =
158jensolegSwaggerSchemaUIServer =
146 swaggerSchemaUIServerImpl jensolegIndexTemplate jensolegFiles
159 swaggerSchemaUIServerImpl jensolegIndexTemplate jensolegFiles
148swaggerSchemaUIServerImpl
161swaggerSchemaUIServerImpl
149− :: (Server api ~ ExceptT ServantErr IO Swagger)
162+ :: (Server api ~ Handler Swagger)
150 => T.Text -> [(FilePath, ByteString)]
163 => T.Text -> [(FilePath, ByteString)]
151 -> Swagger -> Server (SwaggerSchemaUI' dir api)
164 -> Swagger -> Server (SwaggerSchemaUI' dir api)
152swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger
165swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger