morpheus-graphql-server-0.27.0: test/Feature/NamedResolvers/Scalars.hs
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
module Feature.NamedResolvers.Scalars
( Markdown,
)
where
import Data.Morpheus.Server.Resolvers
( ResolveNamed (..),
)
import Data.Morpheus.Server.Types
( DecodeScalar (..),
EncodeScalar (..),
GQLType (..),
ID,
SCALAR,
)
import Data.Text (Text)
import Feature.NamedResolvers.DB
( getDocsById,
)
newtype Markdown = Markdown Text
deriving newtype
( DecodeScalar,
EncodeScalar
)
instance GQLType Markdown where
type KIND Markdown = SCALAR
instance ResolveNamed m Markdown where
type Dep Markdown = ID
resolveBatched = traverse (fmap (fmap Markdown) . getDocsById)