factual-api-0.6.0: examples/MultiExample.hs
module Main where
import System.Environment (getArgs)
import Network.Factual.API
import Data.Factual.Query.ReadQuery
import Data.Factual.Response
import qualified Data.Map as M
main :: IO()
main = do
args <- getArgs
let oauthKey = head args
let oauthSecret = last args
let options = Options { token = generateToken oauthKey oauthSecret, timeout = Nothing }
let query1 = ReadQuery { table = Places
, search = AndSearch []
, select = ["name"]
, limit = Just 50
, offset = Nothing
, includeCount = True
, geo = Just (Circle 34.06021 (-118.41828) 5000.0)
, filters = [EqualStr "name" "Stand"] }
let query2 = ReadQuery { table = Places
, search = AndSearch []
, select = ["name"]
, limit = Just 50
, offset = Nothing
, includeCount = True
, geo = Just (Circle 34.06021 (-118.41828) 5000.0)
, filters = [EqualStr "name" "Xerox"] }
let multiQuery = M.fromList [("query1", query1), ("query2", query2)]
multiResult <- executeMultiQuery options multiQuery
let result1 = multiResult M.! "query1"
let result2 = multiResult M.! "query2"
putStrLn "query1:"
putStrLn $ "Status: " ++ status result1
putStrLn $ "Version: " ++ show (version result1)
putStrLn $ "Data: " ++ show (response result1)
putStrLn "query2:"
putStrLn $ "Status: " ++ status result2
putStrLn $ "Version: " ++ show (version result2)
putStrLn $ "Data: " ++ show (response result2)