packages feed

morpheus-graphql-server-0.26.0: test/Feature/NamedResolvers/Realms.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TypeFamilies #-}

module Feature.NamedResolvers.Realms where

import Data.Morpheus.Server.CodeGen.Internal
import Data.Morpheus.Server.Types

data Realm m = Realm
  { name :: m Text,
    owner :: m (Deity m)
  }
  deriving (Generic)

instance (Typeable m) => GQLType (Realm m) where
  type KIND (Realm m) = TYPE

newtype Deity m = Deity
  { realm :: m (Realm m)
  }
  deriving (Generic)

instance (Typeable m) => GQLType (Deity m) where
  type KIND (Deity m) = TYPE

data Query m = Query
  { realms :: m [Realm m],
    realm :: Arg "id" ID -> m (Maybe (Realm m))
  }
  deriving (Generic)

instance (Typeable m) => GQLType (Query m) where
  type KIND (Query m) = TYPE