module Sound.Freesound.Query (
Query(..),
stringQuery,
toPostFields
) where
import qualified Sound.Freesound.URL as URL
data Query = Query {
string :: String,
minDur :: Maybe Double,
maxDur :: Maybe Double,
bitRate :: Maybe Int,
bitDepth :: Maybe Int,
sampleRate :: Maybe Int
}
stringQuery :: String -> Query
stringQuery s = Query s Nothing Nothing Nothing Nothing Nothing
toPostFields :: Query -> [String]
toPostFields query = URL.postFields [ x | Just x <- [
Just ("search", string query),
fmap ((,) "durationMin" . show) (minDur query),
fmap ((,) "durationMax" . show) (maxDur query),
fmap ((,) "bitrate" . show) (bitRate query),
fmap ((,) "bitdepth" . show) (bitDepth query),
fmap ((,) "samplerate" . show) (sampleRate query) ] ]