{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE NoImplicitPrelude #-}

module Data.Morpheus.Error.Utils
  ( errorMessage,
    globalErrorMessage,
    validationErrorMessage,
  )
where

import Data.Morpheus.Types.Internal.AST.Base
  ( GQLError (..),
    GQLErrors,
    Message,
    Position (..),
    ValidationError (..),
  )
import Relude hiding (ByteString)

validationErrorMessage :: Maybe Position -> Message -> ValidationError
validationErrorMessage :: Maybe Position -> Message -> ValidationError
validationErrorMessage Maybe Position
pos Message
message = Message -> [Position] -> ValidationError
ValidationError Message
message (Maybe Position -> [Position]
forall a. Maybe a -> [a]
maybeToList Maybe Position
pos)

errorMessage :: Position -> Message -> GQLErrors
errorMessage :: Position -> Message -> GQLErrors
errorMessage Position
position Message
message = [GQLError :: Message -> [Position] -> GQLError
GQLError {Message
message :: Message
message :: Message
message, locations :: [Position]
locations = [Position
position]}]

globalErrorMessage :: Message -> GQLErrors
globalErrorMessage :: Message -> GQLErrors
globalErrorMessage Message
message = [GQLError :: Message -> [Position] -> GQLError
GQLError {Message
message :: Message
message :: Message
message, locations :: [Position]
locations = []}]