git.iko.soy/typeable/openapi3
on master help sign in
Change name type in NamedSchema to Text
commita127579d7ace0cea9bdc40ae488ae69d7134caa3 authorNickolay Kudasov <nickolay.kudasov@gmail.com> dateSat 12 Dec 2015, 03:37 (11 years ago) parenta07d324
2 files changed+17−17
src/Data/Swagger/Internal/Schema.hs+16−16 test/Data/Swagger/SchemaSpec.hs+1−1
src/Data/Swagger/Internal/Schema.hs+16−16
@@ -43,7 +43,7 @@ import Data.Swagger.SchemaOptions
4343
4444-- | A @'Schema'@ with an optional name.
4545-- This name can be used in references.
46−type NamedSchema = (Maybe String, Schema)
46+type NamedSchema = (Maybe T.Text, Schema)
4747
4848-- | Schema definitions, a mapping from schema name to @'Schema'@.
4949type Definitions = HashMap T.Text Schema
@@ -51,7 +51,7 @@ type Definitions = HashMap T.Text Schema
5151unnamed :: Schema -> NamedSchema
5252unnamed schema = (Nothing, schema)
5353
54−named :: String -> Schema -> NamedSchema
54+named :: T.Text -> Schema -> NamedSchema
5555named name schema = (Just name, schema)
5656
5757plain :: Schema -> Declare Definitions NamedSchema
@@ -60,7 +60,7 @@ plain = pure . unnamed
6060unname :: NamedSchema -> NamedSchema
6161unname (_, schema) = (Nothing, schema)
6262
63−rename :: Maybe String -> NamedSchema -> NamedSchema
63+rename :: Maybe T.Text -> NamedSchema -> NamedSchema
6464rename name (_, schema) = (name, schema)
6565
6666-- | Convert a type into @'Schema'@.
@@ -123,7 +123,7 @@ toNamedSchema :: ToSchema a => proxy a -> NamedSchema
123123toNamedSchema = undeclare . declareNamedSchema
124124
125125-- | Get type's schema name according to its @'ToSchema'@ instance.
126−schemaName :: ToSchema a => proxy a -> Maybe String
126+schemaName :: ToSchema a => proxy a -> Maybe T.Text
127127schemaName = fst . toNamedSchema
128128
129129-- | Convert a type into a schema.
@@ -146,11 +146,11 @@ declareSchemaRef :: ToSchema a => proxy a -> Declare Definitions (Referenced Sch
146146declareSchemaRef proxy = do
147147 case toNamedSchema proxy of
148148 (Just name, schema) -> do
149− known <- looks (HashMap.member (T.pack name))
149+ known <- looks (HashMap.member name)
150150 when (not known) $ do
151− declare [(T.pack name, schema)]
151+ declare [(name, schema)]
152152 void $ declareNamedSchema proxy
153− return $ Ref (Reference ("#/definitions/" <> T.pack name))
153+ return $ Ref (Reference ("#/definitions/" <> name))
154154 _ -> Inline <$> declareSchema proxy
155155
156156class GToSchema (f :: * -> *) where
@@ -195,11 +195,11 @@ instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e) => ToSchem
195195instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e, ToSchema f) => ToSchema (a, b, c, d, e, f)
196196instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e, ToSchema f, ToSchema g) => ToSchema (a, b, c, d, e, f, g)
197197
198−timeSchema :: String -> Schema
198+timeSchema :: T.Text -> Schema
199199timeSchema format = mempty
200200 & schemaType .~ SwaggerString
201− & schemaFormat ?~ T.pack format
202− & schemaMinLength ?~ toInteger (length format)
201+ & schemaFormat ?~ format
202+ & schemaMinLength ?~ toInteger (T.length format)
203203
204204-- |
205205-- >>> toSchema (Proxy :: Proxy Day) ^. schemaFormat
@@ -218,7 +218,7 @@ instance ToSchema LocalTime where
218218-- Just "yyyy-mm-ddThh:MM:ss(Z|+hh:MM)"
219219instance ToSchema ZonedTime where
220220 declareNamedSchema _ = pure $ named "ZonedTime" $ timeSchema "yyyy-mm-ddThh:MM:ss(Z|+hh:MM)"
221− & schemaMinLength ?~ toInteger (length ("yyyy-mm-ddThh:MM:ssZ" :: String))
221+ & schemaMinLength ?~ toInteger (T.length "yyyy-mm-ddThh:MM:ssZ")
222222
223223instance ToSchema NominalDiffTime where
224224 declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy Integer)
@@ -295,9 +295,9 @@ genericDeclareSchema opts proxy = snd <$> genericDeclareNamedSchema opts proxy
295295genericDeclareNamedSchema :: forall a proxy. (Generic a, GToSchema (Rep a)) => SchemaOptions -> proxy a -> Declare Definitions NamedSchema
296296genericDeclareNamedSchema opts _ = gdeclareNamedSchema opts (Proxy :: Proxy (Rep a)) mempty
297297
298−gdatatypeSchemaName :: forall proxy d. Datatype d => SchemaOptions -> proxy d -> Maybe String
298+gdatatypeSchemaName :: forall proxy d. Datatype d => SchemaOptions -> proxy d -> Maybe T.Text
299299gdatatypeSchemaName opts _ = case name of
300− (c:_) | isAlpha c && isUpper c -> Just name
300+ (c:_) | isAlpha c && isUpper c -> Just (T.pack name)
301301 _ -> Nothing
302302 where
303303 name = datatypeNameModifier opts (datatypeName (Proxy3 :: Proxy3 d f a))
@@ -356,11 +356,11 @@ gdeclareSchemaRef :: GToSchema a => SchemaOptions -> proxy a -> Declare Definiti
356356gdeclareSchemaRef opts proxy = do
357357 case gtoNamedSchema opts proxy of
358358 (Just name, schema) -> do
359− known <- looks (HashMap.member (T.pack name))
359+ known <- looks (HashMap.member name)
360360 when (not known) $ do
361− declare [(T.pack name, schema)]
361+ declare [(name, schema)]
362362 void $ gdeclareNamedSchema opts proxy mempty
363− return $ Ref (Reference ("#/definitions/" <> T.pack name))
363+ return $ Ref (Reference ("#/definitions/" <> name))
364364 _ -> Inline <$> gdeclareSchema opts proxy
365365
366366appendItem :: Referenced Schema -> Maybe SchemaItems -> Maybe SchemaItems
test/Data/Swagger/SchemaSpec.hs+1−1
@@ -28,7 +28,7 @@ checkToSchema proxy js = toSchema proxy <~> js
2828checkSchemaName :: ToSchema a => Maybe String -> Proxy a -> Spec
2929checkSchemaName sname proxy =
3030 it ("schema name is " ++ show sname) $
31− schemaName proxy `shouldBe` sname
31+ schemaName proxy `shouldBe` fmap Text.pack sname
3232
3333checkDefs :: ToSchema a => Proxy a -> [String] -> Spec
3434checkDefs proxy names =