git.iko.soy/typeable/openapi3
on master help sign in
Add ToSchema & ToParamSchema instance for Fixed
6d0b53cGregor Kleen
src/Data/Swagger/Internal/ParamSchema.hs+6
@@ -31,6 +31,7 @@ import "unordered-containers" Data.HashSet (HashSet)
31import Data.Monoid
31import Data.Monoid
32import Data.Set (Set)
32import Data.Set (Set)
33import Data.Scientific
33import Data.Scientific
34+import Data.Fixed (HasResolution(..), Fixed)
34import qualified Data.Text as T
35import qualified Data.Text as T
35import qualified Data.Text.Lazy as TL
36import qualified Data.Text.Lazy as TL
36import Data.Time
37import Data.Time
@@ -159,6 +160,11 @@ instance ToParamSchema Char where
159instance ToParamSchema Scientific where
160instance ToParamSchema Scientific where
160 toParamSchema _ = mempty & type_ .~ SwaggerNumber
161 toParamSchema _ = mempty & type_ .~ SwaggerNumber
161
162
163+instance HasResolution a => ToParamSchema (Fixed a) where
164+ toParamSchema _ = mempty
165+ & type_ .~ SwaggerNumber
166+ & multipleOf ?~ (recip . fromInteger $ resolution (Proxy :: Proxy a))
167+
162instance ToParamSchema Double where
168instance ToParamSchema Double where
163 toParamSchema _ = mempty
169 toParamSchema _ = mempty
164 & type_ .~ SwaggerNumber
170 & type_ .~ SwaggerNumber
src/Data/Swagger/Internal/Schema.hs+3
@@ -47,6 +47,7 @@ import Data.IntMap (IntMap)
47import Data.Map (Map)
47import Data.Map (Map)
48import Data.Proxy
48import Data.Proxy
49import Data.Scientific (Scientific)
49import Data.Scientific (Scientific)
50+import Data.Fixed (Fixed, HasResolution)
50import Data.Set (Set)
51import Data.Set (Set)
51import qualified Data.Text as T
52import qualified Data.Text as T
52import qualified Data.Text.Lazy as TL
53import qualified Data.Text.Lazy as TL
@@ -437,6 +438,8 @@ instance ToSchema Scientific where declareNamedSchema = plain . paramSchemaToSc
437instance ToSchema Double where declareNamedSchema = plain . paramSchemaToSchema
438instance ToSchema Double where declareNamedSchema = plain . paramSchemaToSchema
438instance ToSchema Float where declareNamedSchema = plain . paramSchemaToSchema
439instance ToSchema Float where declareNamedSchema = plain . paramSchemaToSchema
439
440
441+instance HasResolution a => ToSchema (Fixed a) where declareNamedSchema = plain . paramSchemaToSchema
442+
440instance ToSchema a => ToSchema (Maybe a) where
443instance ToSchema a => ToSchema (Maybe a) where
441 declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy a)
444 declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy a)
442
445