{-# LANGUAGE OverloadedStrings #-}
module Data.Morpheus.Error.Fragment
( cannotSpreadWithinItself
) where
import Data.Morpheus.Types.Internal.Base (EnhancedKey (..))
import Data.Morpheus.Types.Internal.Validation (GQLError (..), GQLErrors)
import qualified Data.Text as T
cannotSpreadWithinItself :: [EnhancedKey] -> GQLErrors
cannotSpreadWithinItself fragments = [GQLError {desc = text, positions = map location fragments}]
where
text =
T.concat
[ "Cannot spread fragment \""
, uid $ head fragments
, "\" within itself via "
, T.intercalate "," (map uid fragments)
, "."
]