git.iko.soy/typeable/bloodhound
on master help sign in
warnings cleanup, partial instances, name overlaps
09c57f7Chris Allen
Database/Bloodhound/Client.hs+1−1
@@ -248,7 +248,7 @@ mkSearch :: Maybe Query -> Maybe Filter -> Search
248mkSearch query filter = Search query filter Nothing Nothing False 0 10
248mkSearch query filter = Search query filter Nothing Nothing False 0 10
249
249
250mkAggregateSearch :: Maybe Query -> Aggregations -> Search
250mkAggregateSearch :: Maybe Query -> Aggregations -> Search
251−mkAggregateSearch query aggregations = Search query Nothing Nothing (Just aggregations) False 0 0
251+mkAggregateSearch query mkSearchAggs = Search query Nothing Nothing (Just mkSearchAggs) False 0 0
252
252
253pageSearch :: Int -> Int -> Search -> Search
253pageSearch :: Int -> Int -> Search -> Search
254pageSearch pageFrom pageSize search = search { from = pageFrom, size = pageSize }
254pageSearch pageFrom pageSize search = search { from = pageFrom, size = pageSize }
Database/Bloodhound/Types.hs+14−12
@@ -162,8 +162,8 @@ module Database.Bloodhound.Types
162 , BucketAggregation(..)
162 , BucketAggregation(..)
163 , TermsAggregation(..)
163 , TermsAggregation(..)
164 , DateHistogramAggregation(..)
164 , DateHistogramAggregation(..)
165− , TermsResult
165+ , TermsResult(..)
166− , DateHistogramResult
166+ , DateHistogramResult(..)
167 ) where
167 ) where
168
168
169import Control.Applicative
169import Control.Applicative
@@ -1080,7 +1080,7 @@ instance Show TimeInterval where
1080 show Seconds = "s"
1080 show Seconds = "s"
1081
1081
1082instance ToJSON Aggregation where
1082instance ToJSON Aggregation where
1083− toJSON (TermsAgg (TermsAggregation term include exclude order minDocCount size shardSize collectMode executionHint aggs)) =
1083+ toJSON (TermsAgg (TermsAggregation term include exclude order minDocCount size shardSize collectMode executionHint termAggs)) =
1084 omitNulls ["terms" .= omitNulls [ toJSON' term,
1084 omitNulls ["terms" .= omitNulls [ toJSON' term,
1085 "include" .= toJSON include,
1085 "include" .= toJSON include,
1086 "exclude" .= toJSON exclude,
1086 "exclude" .= toJSON exclude,
@@ -1091,11 +1091,11 @@ instance ToJSON Aggregation where
1091 "collect_mode" .= toJSON collectMode,
1091 "collect_mode" .= toJSON collectMode,
1092 "execution_hint" .= toJSON executionHint
1092 "execution_hint" .= toJSON executionHint
1093 ],
1093 ],
1094− "aggs" .= toJSON aggs ]
1094+ "aggs" .= toJSON termAggs ]
1095 where
1095 where
1096 toJSON' x = case x of { Left y -> "field" .= toJSON y; Right y -> "script" .= toJSON y }
1096 toJSON' x = case x of { Left y -> "field" .= toJSON y; Right y -> "script" .= toJSON y }
1097
1097
1098− toJSON (DateHistogramAgg (DateHistogramAggregation field interval format preZone postZone preOffset postOffset aggs)) =
1098+ toJSON (DateHistogramAgg (DateHistogramAggregation field interval format preZone postZone preOffset postOffset dateHistoAggs)) =
1099 omitNulls ["date_histogram" .= omitNulls [ "field" .= toJSON field,
1099 omitNulls ["date_histogram" .= omitNulls [ "field" .= toJSON field,
1100 "interval" .= toJSON interval,
1100 "interval" .= toJSON interval,
1101 "format" .= toJSON format,
1101 "format" .= toJSON format,
@@ -1104,7 +1104,7 @@ instance ToJSON Aggregation where
1104 "pre_offset" .= toJSON preOffset,
1104 "pre_offset" .= toJSON preOffset,
1105 "post_offset" .= toJSON postOffset
1105 "post_offset" .= toJSON postOffset
1106 ],
1106 ],
1107− "aggs" .= toJSON aggs ]
1107+ "aggs" .= toJSON dateHistoAggs ]
1108
1108
1109type AggregationResults = M.Map Text Value
1109type AggregationResults = M.Map Text Value
1110
1110
@@ -1153,6 +1153,7 @@ instance FromJSON TermsResult where
1153 v .: "key" <*>
1153 v .: "key" <*>
1154 v .: "doc_count" <*>
1154 v .: "doc_count" <*>
1155 v .:? "aggregations"
1155 v .:? "aggregations"
1156+ parseJSON _ = mempty
1156
1157
1157instance FromJSON DateHistogramResult where
1158instance FromJSON DateHistogramResult where
1158 parseJSON (Object v) = DateHistogramResult <$>
1159 parseJSON (Object v) = DateHistogramResult <$>
@@ -1160,6 +1161,7 @@ instance FromJSON DateHistogramResult where
1160 v .:? "key_as_string" <*>
1161 v .:? "key_as_string" <*>
1161 v .: "doc_count" <*>
1162 v .: "doc_count" <*>
1162 v .:? "aggregations"
1163 v .:? "aggregations"
1164+ parseJSON _ = mempty
1163
1165
1164instance Monoid Filter where
1166instance Monoid Filter where
1165 mempty = IdentityFilter
1167 mempty = IdentityFilter
@@ -1244,11 +1246,11 @@ instance ToJSON Filter where
1244 toJSON (RangeFilter (FieldName fieldName) (Left halfRange) rangeExecution cache) =
1246 toJSON (RangeFilter (FieldName fieldName) (Left halfRange) rangeExecution cache) =
1245 object ["range" .=
1247 object ["range" .=
1246 object [fieldName .=
1248 object [fieldName .=
1247− object [key .= val]
1249+ object [rqFKey .= rqFVal]
1248 , "execution" .= toJSON rangeExecution
1250 , "execution" .= toJSON rangeExecution
1249 , "_cache" .= cache]]
1251 , "_cache" .= cache]]
1250 where
1252 where
1251− (key, val) = halfRangeToKV halfRange
1253+ (rqFKey, rqFVal) = halfRangeToKV halfRange
1252
1254
1253 toJSON (RangeFilter (FieldName fieldName) (Right range) rangeExecution cache) =
1255 toJSON (RangeFilter (FieldName fieldName) (Right range) rangeExecution cache) =
1254 object ["range" .=
1256 object ["range" .=
@@ -1462,8 +1464,8 @@ instance ToJSON RangeQuery where
1462 toJSON (RangeQuery (FieldName fieldName) (Left halfRange) boost) =
1464 toJSON (RangeQuery (FieldName fieldName) (Left halfRange) boost) =
1463 object [ fieldName .= conjoined ]
1465 object [ fieldName .= conjoined ]
1464 where conjoined = [ "boost" .= toJSON boost
1466 where conjoined = [ "boost" .= toJSON boost
1465− , key .= val ]
1467+ , rqKey .= rqVal ]
1466− (key, val) = halfRangeToKV halfRange
1468+ (rqKey, rqVal) = halfRangeToKV halfRange
1467
1469
1468
1470
1469instance ToJSON PrefixQuery where
1471instance ToJSON PrefixQuery where
@@ -1754,11 +1756,11 @@ instance (FromJSON a) => FromJSON (EsResult a) where
1754
1756
1755
1757
1756instance ToJSON Search where
1758instance ToJSON Search where
1757− toJSON (Search query sFilter sort aggs sTrackSortScores sFrom sSize) =
1759+ toJSON (Search query sFilter sort searchAggs sTrackSortScores sFrom sSize) =
1758 omitNulls [ "query" .= query
1760 omitNulls [ "query" .= query
1759 , "filter" .= sFilter
1761 , "filter" .= sFilter
1760 , "sort" .= sort
1762 , "sort" .= sort
1761− , "aggregations" .= aggs
1763+ , "aggregations" .= searchAggs
1762 , "from" .= sFrom
1764 , "from" .= sFrom
1763 , "size" .= sSize
1765 , "size" .= sSize
1764 , "track_scores" .= sTrackSortScores ]
1766 , "track_scores" .= sTrackSortScores ]
bloodhound.cabal+1−1
@@ -17,7 +17,7 @@ source-repository head
17 location: https://github.com/bitemyapp/bloodhound.git
17 location: https://github.com/bitemyapp/bloodhound.git
18
18
19library
19library
20− ghc-options: -Wall
20+ ghc-options: -Wall -Werror
21 default-extensions: OverloadedStrings
21 default-extensions: OverloadedStrings
22 exposed-modules: Database.Bloodhound
22 exposed-modules: Database.Bloodhound
23 Database.Bloodhound.Client
23 Database.Bloodhound.Client
tests/tests.hs+4−3
@@ -6,7 +6,6 @@ module Main where
6import Control.Applicative
6import Control.Applicative
7import Control.Monad
7import Control.Monad
8import Data.Aeson
8import Data.Aeson
9−import Data.Aeson.Types (parseMaybe)
10import Data.HashMap.Strict (fromList)
9import Data.HashMap.Strict (fromList)
11import Data.List (nub)
10import Data.List (nub)
12import Data.List.NonEmpty (NonEmpty (..))
11import Data.List.NonEmpty (NonEmpty (..))
@@ -60,10 +59,12 @@ es10 :: ServerVersion
60es10 = ServerVersion 1 0 0
59es10 = ServerVersion 1 0 0
61
60
62serverBranch :: ServerVersion -> ServerVersion
61serverBranch :: ServerVersion -> ServerVersion
63−serverBranch (ServerVersion maj min patch) = ServerVersion maj min 0
62+serverBranch (ServerVersion majorVer minorVer patchVer) =
63+ ServerVersion majorVer minorVer patchVer
64
64
65mkServerVersion :: [Int] -> Maybe ServerVersion
65mkServerVersion :: [Int] -> Maybe ServerVersion
66−mkServerVersion [maj, min, patch] = Just (ServerVersion maj min patch)
66+mkServerVersion [majorVer, minorVer, patchVer] =
67+ Just (ServerVersion majorVer minorVer patchVer)
67mkServerVersion _ = Nothing
68mkServerVersion _ = Nothing
68
69
69getServerVersion :: Server -> IO (Maybe ServerVersion)
70getServerVersion :: Server -> IO (Maybe ServerVersion)