factual-api-0.6.1: Data/Factual/Write/Clear.hs
-- | This module exports the types used to clear fields.
module Data.Factual.Write.Clear
(
-- * Clear type
Clear(..)
-- * Required modules
, module Data.Factual.Shared.Table
) where
import Data.Factual.Write
import Data.Factual.Shared.Table
import Data.List.Utils (join)
import qualified Data.Map as M
-- | The Clear type represents a Write to be made to the API which will clear
-- certain fields from an entry. The table and factualId identify the row to
-- be changed, and the fields list indicates which fields to clear out. A user
-- must be specified as well.
data Clear = Clear { table :: Table
, factualId :: String
, fields :: [String]
, user :: String
} deriving (Eq, Show)
-- The Clear type is a member of the Write typeclass so it can be sent as a post
-- request to the API.
instance Write Clear where
path clear = (show $ table clear) ++ "/" ++ (factualId clear) ++ "/clear"
params _ = M.empty
body clear = M.fromList [ ("user", user clear)
, ("fields", join "," $ fields clear) ]