neuron-0.4.0.0: src/app/Neuron/Zettelkasten/Query/Error.hs
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Neuron.Zettelkasten.Query.Error where
import Neuron.Zettelkasten.ID (InvalidID, ZettelID)
import Relude
import Text.URI
type QueryError = Either QueryParseError QueryResultError
data QueryParseError
= QueryParseError_InvalidID URI InvalidID
| QueryParseError_UnsupportedHost URI
deriving (Eq, Show)
-- | This error is only thrown when *using* (eg: in HTML) the query results.
data QueryResultError = QueryResultError_NoSuchZettel ZettelID
deriving (Eq, Show)
queryParseErrorUri :: QueryParseError -> URI
queryParseErrorUri = \case
QueryParseError_InvalidID uri _ -> uri
QueryParseError_UnsupportedHost uri -> uri