diff --git a/CHANGELOG.md b/CHANGELOG.md index 80a6bc3..af4c443 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ and this project adheres to ## [Unreleased] ### Added -- `ToGraphQL` and `FromGraphQL` instances for `Word`. +- `ToGraphQL` and `FromGraphQL` instances for `Word` types, `Float` and + `Double`. - `Resolver`: Export `ServerException`. - `Resolver.defaultResolver`: Throw `FieldNotResolvedException` if the requested field is not in the parent object. diff --git a/src/Language/GraphQL/Class.hs b/src/Language/GraphQL/Class.hs index b363fd0..89b4337 100644 --- a/src/Language/GraphQL/Class.hs +++ b/src/Language/GraphQL/Class.hs @@ -79,6 +79,12 @@ instance ToGraphQL a => ToGraphQL (Maybe a) where instance ToGraphQL Bool where toGraphQL = Type.Boolean +instance ToGraphQL Float where + toGraphQL = Type.Float . realToFrac + +instance ToGraphQL Double where + toGraphQL = Type.Float + -- | Instances of this typeclass can be used to convert GraphQL internal -- representation to user-defined type. class FromGraphQL a where @@ -134,3 +140,11 @@ instance FromGraphQL a => FromGraphQL (Maybe a) where instance FromGraphQL Bool where fromGraphQL (Type.Boolean value) = Just value fromGraphQL _ = Nothing + +instance FromGraphQL Float where + fromGraphQL (Type.Float value) = Just $ realToFrac value + fromGraphQL _ = Nothing + +instance FromGraphQL Double where + fromGraphQL (Type.Float value) = Just value + fromGraphQL _ = Nothing