-- | This module exports the SortOrder type used to create read and facet queries. module Data.Factual.Shared.SortOrder ( -- * SortOrder type SortOrder(..) -- * Helper functions , sortPair ) where import Data.List.Utils (join) -- | The SortOrder type is used to represent sorting parameters data SortOrder = Asc String | Desc String deriving Eq -- SortOrder is a member of Show to help generate query strings. instance Show SortOrder where show (Asc field) = field ++ ":asc" show (Desc field) = field ++ ":desc" -- The following helper function is used in generating query params. sortPair :: [SortOrder] -> (String, String) sortPair [] = ("sort", "") sortPair sorts = ("sort", join "," $ map show sorts)