module Data.Factual.Utils
(
join
, joinAndFilter
, selectString
, limitString
, includeCountString
) where
import Data.List (intersperse)
import Network.HTTP.Base (urlEncode)
join :: [a] -> [[a]] -> [a]
join delim xs = concat (intersperse delim xs)
joinAndFilter :: [String] -> String
joinAndFilter strs = join "&" $ filter ("" /=) strs
selectString :: [String] -> String
selectString [] = ""
selectString selects = "select=" ++ (urlEncode $ (join "," selects))
limitString :: Maybe Int -> String
limitString (Just x) = "limit=" ++ (urlEncode $ show x)
limitString Nothing = ""
includeCountString :: Bool -> String
includeCountString True = "include_count=true"
includeCountString False = "include_count=false"