git.iko.soy/typeable/openapi3
on master help sign in
Add ToParamSchema instance for () compliant with http-api-data
2091022Nickolay Kudasov
src/Data/Swagger/Internal/ParamSchema.hs+9
@@ -2,6 +2,7 @@
2{-# LANGUAGE FlexibleContexts #-}
2{-# LANGUAGE FlexibleContexts #-}
3{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE KindSignatures #-}
4{-# LANGUAGE KindSignatures #-}
5+{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE PolyKinds #-}
6{-# LANGUAGE PolyKinds #-}
6{-# LANGUAGE ScopedTypeVariables #-}
7{-# LANGUAGE ScopedTypeVariables #-}
7{-# LANGUAGE TypeOperators #-}
8{-# LANGUAGE TypeOperators #-}
@@ -156,6 +157,14 @@ instance ToParamSchema a => ToParamSchema (First a) where toParamSchema _ = to
156instance ToParamSchema a => ToParamSchema (Last a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
157instance ToParamSchema a => ToParamSchema (Last a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
157instance ToParamSchema a => ToParamSchema (Dual a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
158instance ToParamSchema a => ToParamSchema (Dual a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
158
159
160+-- |
161+-- >>> encode (toParamSchema (Proxy :: Proxy ()) :: ParamSchema t Items)
162+-- "{\"type\":\"string\",\"enum\":[\"_\"]}"
163+instance ToParamSchema () where
164+ toParamSchema _ = mempty
165+ & schemaType .~ SwaggerString
166+ & schemaEnum ?~ ["_"]
167+
159-- | A configurable generic @'ParamSchema'@ creator.
168-- | A configurable generic @'ParamSchema'@ creator.
160genericToParamSchema :: forall proxy a t i. (Generic a, GToParamSchema (Rep a)) => SchemaOptions -> proxy a -> ParamSchema t i
169genericToParamSchema :: forall proxy a t i. (Generic a, GToParamSchema (Rep a)) => SchemaOptions -> proxy a -> ParamSchema t i
161genericToParamSchema opts _ = gtoParamSchema opts (Proxy :: Proxy (Rep a)) mempty
170genericToParamSchema opts _ = gtoParamSchema opts (Proxy :: Proxy (Rep a)) mempty