packages feed

factual-api 0.3.0 → 0.3.1

raw patch · 9 files changed

+45/−42 lines, 9 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Factual.Shared.Table: Monetize :: Table

Files

Data/Factual/Query/FacetsQuery.hs view
@@ -35,7 +35,7 @@ -- make a request. instance Query FacetsQuery where   toPath query = (show $ table query)-               ++ "facets?"+               ++ "/facets?"                ++ joinAndFilter [ searchString $ search query                                 , selectString $ select query                                 , filtersString $ filters query
Data/Factual/Query/ReadQuery.hs view
@@ -38,7 +38,7 @@ -- make a request. instance Query ReadQuery where   toPath query = (show $ table query)-               ++ "read?"+               ++ "?"                ++ joinAndFilter [ searchString $ search query                                 , selectString $ select query                                 , limitString $ limit query
Data/Factual/Query/SchemaQuery.hs view
@@ -16,4 +16,4 @@  -- SchemaQuery is a member of Query typeclass so that it can generate a response. instance Query SchemaQuery where-  toPath (SchemaQuery table) = (show $ table) ++ "schema"+  toPath (SchemaQuery table) = (show $ table) ++ "/schema"
Data/Factual/Shared/Table.hs view
@@ -15,16 +15,18 @@            | WorldGeographies            | ProductsCPG            | ProductsCrosswalk+           | Monetize            | Custom String            deriving Eq  -- Table is a member of the Show typeclass to generate the beginning of the path. instance Show Table where-  show Places              = "/t/places/"-  show USRestaurants       = "/t/restaurants-us/"-  show Global              = "/t/global/"+  show Places              = "/t/places"+  show USRestaurants       = "/t/restaurants-us"+  show Global              = "/t/global"   show HealthCareProviders = "/t/health-care-providers-us"   show WorldGeographies    = "/t/world-geographies"   show ProductsCPG         = "/t/products-cpg"   show ProductsCrosswalk   = "/t/products-crosswalk"-  show (Custom name)       = "/t/" ++ name ++ "/"+  show Monetize            = "/places/monetize"+  show (Custom name)       = "/t/" ++ name
Data/Factual/Write/Flag.hs view
@@ -40,7 +40,7 @@ -- The Flag type is a member of the Write typeclass so it can be sent as a post -- request to the API. instance Write Flag where-  path flag = (show $ table flag) ++ (factualId flag) ++ "/flag"+  path flag = (show $ table flag) ++ "/" ++ (factualId flag) ++ "/flag"   body flag = "problem=" ++ (show $ problem flag) ++ "&" ++               "user=" ++ (user flag) ++ "&" ++               joinAndFilter [ commentString flag
Data/Factual/Write/Submit.hs view
@@ -33,10 +33,11 @@ -- The following functions are helpers for the Write typeclass functions. pathString :: Submit -> String pathString submit-  | factualId submit == Nothing = (show $ table submit) ++ "submit"-  | otherwise = (show $ table submit) ++-                (fromJust $ factualId submit) ++-                "/submit"+  | factualId submit == Nothing = (show $ table submit) ++ "/submit"+  | otherwise = (show $ table submit)+              ++ "/"+              ++ (fromJust $ factualId submit)+              ++ "/submit"  valuesString :: M.Map String String -> String valuesString values = "{" ++ join "," (map valueString $ M.keys values) ++ "}"
Network/Factual/API.hs view
@@ -106,7 +106,7 @@ extractJSON = fromJust . decode . rspPayload  headersList :: [(String, String)]-headersList = [("X-Factual-Lib", "factual-haskell-driver-0.3.0")]+headersList = [("X-Factual-Lib", "factual-haskell-driver-0.3.1")]  basePath :: String basePath = "http://api.v3.factual.com"
factual-api.cabal view
@@ -1,9 +1,9 @@ name:            factual-api-version:         0.3.0+version:         0.3.1 license:         BSD3 license-file:    LICENSE.txt category:        API, Web-copyright:       (c) 2011 Rudiger Lippert+copyright:       (c) 2012 Rudiger Lippert author:          Rudiger Lippert <rudy@factual.com> maintainer:      Rudiger Lippert <rudy@factual.com> stability:       stable
test/Tests.hs view
@@ -73,22 +73,22 @@                             where token = generateToken key secret  placeTablePathTest = TestCase (do-  let expected = "/t/places/read?include_count=false"+  let expected = "/t/places?include_count=false"   let path = toPath $ blankReadQuery { table = Places }   assertEqual "Correct path for places table" expected path)  restaurantsTablePathTest = TestCase (do-  let expected = "/t/restaurants-us/read?include_count=false"+  let expected = "/t/restaurants-us?include_count=false"   let path = toPath $ blankReadQuery { table = USRestaurants }   assertEqual "Correct path for us restaurants table" expected path)  globalTablePathTest = TestCase (do-  let expected = "/t/global/read?include_count=false"+  let expected = "/t/global?include_count=false"   let path = toPath $ blankReadQuery { table = Global }   assertEqual "Correct path for global table" expected path)  customTablePathTest = TestCase (do-  let expected = "/t/foo/read?include_count=false"+  let expected = "/t/foo?include_count=false"   let path = toPath $ blankReadQuery { table = Custom "foo" }   assertEqual "Correct path for custom table" expected path) @@ -103,117 +103,117 @@   assertEqual "Correct path for geocode" expected path)  andSearchPathTest = TestCase (do-  let expected = "/t/places/read?q=foo%20bar&include_count=false"+  let expected = "/t/places?q=foo%20bar&include_count=false"   let path = toPath $ blankReadQuery { search = AndSearch ["foo", "bar"] }   assertEqual "Correct path for ANDed search" expected path)  orSearchPathTest = TestCase (do-  let expected = "/t/places/read?q=foo%2Cbar&include_count=false"+  let expected = "/t/places?q=foo%2Cbar&include_count=false"   let path = toPath $ blankReadQuery { search = OrSearch ["foo", "bar"] }   assertEqual "Correct path for ANDed search" expected path)  selectPathTest = TestCase (do-  let expected = "/t/places/read?select=foo%2Cbar&include_count=false"+  let expected = "/t/places?select=foo%2Cbar&include_count=false"   let path = toPath $ blankReadQuery { select = ["foo", "bar"] }   assertEqual "Correct path for select terms" expected path)  limitPathTest = TestCase (do-  let expected = "/t/places/read?limit=321&include_count=false"+  let expected = "/t/places?limit=321&include_count=false"   let path = toPath $ blankReadQuery { limit = Just 321 }   assertEqual "Correct path for limit" expected path)  offsetPathTest = TestCase (do-  let expected = "/t/places/read?offset=321&include_count=false"+  let expected = "/t/places?offset=321&include_count=false"   let path = toPath $ blankReadQuery { offset = Just 321 }   assertEqual "Correct path for offset" expected path)  equalNumFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A123.4%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A123.4%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [EqualNum "field" 123.4] }   assertEqual "Correct path for equal number filter" expected path)  equalStrFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%22value%22%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%22value%22%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [EqualStr "field" "value"] }   assertEqual "Correct path for equal string filter" expected path)  notEqualNumFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24neq%22%3A123.4%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24neq%22%3A123.4%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotEqualNum "field" 123.4] }   assertEqual "Correct path for not equal number filter" expected path)  notEqualStrFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24neq%22%3A%22value%22%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24neq%22%3A%22value%22%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotEqualStr "field" "value"] }   assertEqual "Correct path for not equal string filter" expected path)  inNumListFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24in%22%3A%5B123.4%2C5432.1%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24in%22%3A%5B123.4%2C5432.1%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [InNumList "field" [123.4, 5432.1]] }   assertEqual "Correct path for in number list filter" expected path)  inStrListFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24in%22%3A%5B%22value%22%2C%22other%22%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24in%22%3A%5B%22value%22%2C%22other%22%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [InStrList "field" ["value","other"]] }   assertEqual "Correct path for in string list filter" expected path)  notInNumListFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24nin%22%3A%5B123.4%2C5432.1%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24nin%22%3A%5B123.4%2C5432.1%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotInNumList "field" [123.4, 5432.1]] }   assertEqual "Correct path for not in number list filter" expected path)  notInStrListFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24nin%22%3A%5B%22value%22%2C%22other%22%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24nin%22%3A%5B%22value%22%2C%22other%22%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotInStrList "field" ["value","other"]] }   assertEqual "Correct path for not in string list filter" expected path)  beginsWithFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24bw%22%3A%22val%22%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24bw%22%3A%22val%22%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [BeginsWith "field" "val"] }   assertEqual "Correct path for begins with filter" expected path)  notBeginsWithFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24nbw%22%3A%22val%22%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24nbw%22%3A%22val%22%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotBeginsWith "field" "val"] }   assertEqual "Correct path for not begins with filter" expected path)  beginsWithAnyFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24bwin%22%3A%5B%22val%22%2C%22ot%22%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24bwin%22%3A%5B%22val%22%2C%22ot%22%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [BeginsWithAny "field" ["val","ot"]] }   assertEqual "Correct path for begins with any filter" expected path)  notBeginsWithAnyFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24nbwin%22%3A%5B%22val%22%2C%22ot%22%5D%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24nbwin%22%3A%5B%22val%22%2C%22ot%22%5D%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [NotBeginsWithAny "field" ["val","ot"]] }   assertEqual "Correct path for not begins with any filter" expected path)  isBlankFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24blank%22%3Atrue%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24blank%22%3Atrue%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [IsBlank "field"] }   assertEqual "Correct path for is blank filter" expected path)  isNotBlankFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22field%22%3A%7B%22%24blank%22%3Afalse%7D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22field%22%3A%7B%22%24blank%22%3Afalse%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [IsNotBlank "field"] }   assertEqual "Correct path for is not blank filter" expected path)  andFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22%24and%22%3A%5B%7B%22field1%22%3A%7B%22%24blank%22%3Atrue%7D%7D%2C%7B%22field2%22%3A%7B%22%24blank%22%3Afalse%7D%7D%5D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22%24and%22%3A%5B%7B%22field1%22%3A%7B%22%24blank%22%3Atrue%7D%7D%2C%7B%22field2%22%3A%7B%22%24blank%22%3Afalse%7D%7D%5D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [And [IsBlank "field1", IsNotBlank "field2"]] }   assertEqual "Correct path for and filter" expected path)  orFilterTest = TestCase (do-  let expected = "/t/places/read?filters=%7B%22%24or%22%3A%5B%7B%22field1%22%3A%7B%22%24blank%22%3Atrue%7D%7D%2C%7B%22field2%22%3A%7B%22%24blank%22%3Afalse%7D%7D%5D%7D&include_count=false"+  let expected = "/t/places?filters=%7B%22%24or%22%3A%5B%7B%22field1%22%3A%7B%22%24blank%22%3Atrue%7D%7D%2C%7B%22field2%22%3A%7B%22%24blank%22%3Afalse%7D%7D%5D%7D&include_count=false"   let path = toPath $ blankReadQuery { filters = [Or [IsBlank "field1", IsNotBlank "field2"]] }   assertEqual "Correct path for or filter" expected path)  geoTest = TestCase (do-  let expected = "/t/places/read?geo=%7B%22%24circle%22%3A%7B%22%24center%22%3A%5B300.1%2C%20200.3%5D%2C%22%24meters%22%3A100.5%7D%7D&include_count=false"+  let expected = "/t/places?geo=%7B%22%24circle%22%3A%7B%22%24center%22%3A%5B300.1%2C%20200.3%5D%2C%22%24meters%22%3A100.5%7D%7D&include_count=false"   let path = toPath $ blankReadQuery { geo = Just (Circle 300.1 200.3 100.5) }   assertEqual "Correct path for geo" expected path)  includeCountTest = TestCase (do-  let expected = "/t/places/read?include_count=true"+  let expected = "/t/places?include_count=true"   let path = toPath $ blankReadQuery { includeCount = True }   assertEqual "Correct path for include count" expected path)