module Sound.Freesound.URL (
    postFields, addParams
) where

import Data.List    (intercalate)
import Network.Curl (URLString)

-- | Construct a POST field from a key/value pair.
postField :: String -> String -> String
postField k v = k ++ "=" ++ v

postFields :: [(String, String)] -> [String]
postFields = map (uncurry postField)

addParams :: [(String, String)] -> URLString -> URLString
addParams [] u = u
addParams (p:ps) u = addpn ps (addp1 p u)
    where
        addp1 (k, v) u        = u ++ "?" ++ (postField k v)
        addpn []            u = u
        addpn ((k, v):rest) u = u ++ "&" ++ postField k v ++ addpn rest u