-- | 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