factual-api-0.2.0: Data/Factual/Shared/Search.hs
-- | This module exports the Search type used to create read and facet queries.
module Data.Factual.Shared.Search
(
-- * Search type
Search(..)
-- * Helper functions
, searchString
) where
import Data.Factual.Utils
-- | This type is used to construct an ANDed or ORed search in a query.
data Search = AndSearch [String] | OrSearch [String] | NoSearch deriving Eq
-- When a Search is shown it displays the string representation that will go
-- into the query string.
instance Show Search where
show (AndSearch terms) = join " " terms
show (OrSearch terms) = join "," terms
show NoSearch = ""
-- Helper functions
searchString :: Search -> String
searchString (AndSearch []) = ""
searchString (OrSearch []) = ""
searchString search = "q=" ++ show search