git.iko.soy/typeable/bloodhound
on master help sign in
Make some disambiguating type changes
4768fbdMichael Xavier
src/Database/Bloodhound/Types.hs+43−37
@@ -3,6 +3,7 @@
3{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE GeneralizedNewtypeDeriving #-}
4{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6+{-# LANGUAGE NoMonomorphismRestriction #-}
6{-# LANGUAGE OverloadedStrings #-}
7{-# LANGUAGE OverloadedStrings #-}
7{-# LANGUAGE RecordWildCards #-}
8{-# LANGUAGE RecordWildCards #-}
8{-# LANGUAGE UndecidableInstances #-}
9{-# LANGUAGE UndecidableInstances #-}
@@ -267,8 +268,6 @@ import GHC.Generics (Generic)
267import Network.HTTP.Client
268import Network.HTTP.Client
268import qualified Network.HTTP.Types.Method as NHTM
269import qualified Network.HTTP.Types.Method as NHTM
269
270
270−import Debug.Trace
271−
272import Database.Bloodhound.Types.Class
271import Database.Bloodhound.Types.Class
273
272
274-- $setup
273-- $setup
@@ -872,7 +871,7 @@ data HighlightTag = TagSchema Text
872
871
873data Query =
872data Query =
874 TermQuery Term (Maybe Boost)
873 TermQuery Term (Maybe Boost)
875− | TermsQuery (NonEmpty Term)
874+ | TermsQuery Text (NonEmpty Text)
876 | QueryMatchQuery MatchQuery
875 | QueryMatchQuery MatchQuery
877 | QueryMultiMatchQuery MultiMatchQuery
876 | QueryMultiMatchQuery MultiMatchQuery
878 | QueryBoolQuery BoolQuery
877 | QueryBoolQuery BoolQuery
@@ -921,7 +920,7 @@ data SimpleQueryStringQuery =
921 , simpleQueryStringField :: Maybe FieldOrFields
920 , simpleQueryStringField :: Maybe FieldOrFields
922 , simpleQueryStringOperator :: Maybe BooleanOperator
921 , simpleQueryStringOperator :: Maybe BooleanOperator
923 , simpleQueryStringAnalyzer :: Maybe Analyzer
922 , simpleQueryStringAnalyzer :: Maybe Analyzer
924− , simpleQueryStringFlags :: Maybe [SimpleQueryFlag]
923+ , simpleQueryStringFlags :: Maybe (NonEmpty SimpleQueryFlag)
925 , simpleQueryStringLowercaseExpanded :: Maybe LowercaseExpanded
924 , simpleQueryStringLowercaseExpanded :: Maybe LowercaseExpanded
926 , simpleQueryStringLocale :: Maybe Locale
925 , simpleQueryStringLocale :: Maybe Locale
927 } deriving (Eq, Show)
926 } deriving (Eq, Show)
@@ -971,7 +970,7 @@ mkQueryStringQuery qs =
971 Nothing Nothing
970 Nothing Nothing
972
971
973data FieldOrFields = FofField FieldName
972data FieldOrFields = FofField FieldName
974− | FofFields [FieldName] deriving (Eq, Show)
973+ | FofFields (NonEmpty FieldName) deriving (Eq, Show)
975
974
976data PrefixQuery =
975data PrefixQuery =
977 PrefixQuery
976 PrefixQuery
@@ -993,7 +992,7 @@ data MoreLikeThisFieldQuery =
993 , moreLikeThisFieldPercentMatch :: Maybe PercentMatch
992 , moreLikeThisFieldPercentMatch :: Maybe PercentMatch
994 , moreLikeThisFieldMinimumTermFreq :: Maybe MinimumTermFrequency
993 , moreLikeThisFieldMinimumTermFreq :: Maybe MinimumTermFrequency
995 , moreLikeThisFieldMaxQueryTerms :: Maybe MaxQueryTerms
994 , moreLikeThisFieldMaxQueryTerms :: Maybe MaxQueryTerms
996− , moreLikeThisFieldStopWords :: Maybe [StopWord]
995+ , moreLikeThisFieldStopWords :: Maybe (NonEmpty StopWord)
997 , moreLikeThisFieldMinDocFrequency :: Maybe MinDocFrequency
996 , moreLikeThisFieldMinDocFrequency :: Maybe MinDocFrequency
998 , moreLikeThisFieldMaxDocFrequency :: Maybe MaxDocFrequency
997 , moreLikeThisFieldMaxDocFrequency :: Maybe MaxDocFrequency
999 , moreLikeThisFieldMinWordLength :: Maybe MinWordLength
998 , moreLikeThisFieldMinWordLength :: Maybe MinWordLength
@@ -1006,12 +1005,12 @@ data MoreLikeThisFieldQuery =
1006data MoreLikeThisQuery =
1005data MoreLikeThisQuery =
1007 MoreLikeThisQuery
1006 MoreLikeThisQuery
1008 { moreLikeThisText :: Text
1007 { moreLikeThisText :: Text
1009− , moreLikeThisFields :: Maybe [FieldName]
1008+ , moreLikeThisFields :: Maybe (NonEmpty FieldName)
1010 -- default 0.3 (30%)
1009 -- default 0.3 (30%)
1011 , moreLikeThisPercentMatch :: Maybe PercentMatch
1010 , moreLikeThisPercentMatch :: Maybe PercentMatch
1012 , moreLikeThisMinimumTermFreq :: Maybe MinimumTermFrequency
1011 , moreLikeThisMinimumTermFreq :: Maybe MinimumTermFrequency
1013 , moreLikeThisMaxQueryTerms :: Maybe MaxQueryTerms
1012 , moreLikeThisMaxQueryTerms :: Maybe MaxQueryTerms
1014− , moreLikeThisStopWords :: Maybe [StopWord]
1013+ , moreLikeThisStopWords :: Maybe (NonEmpty StopWord)
1015 , moreLikeThisMinDocFrequency :: Maybe MinDocFrequency
1014 , moreLikeThisMinDocFrequency :: Maybe MinDocFrequency
1016 , moreLikeThisMaxDocFrequency :: Maybe MaxDocFrequency
1015 , moreLikeThisMaxDocFrequency :: Maybe MaxDocFrequency
1017 , moreLikeThisMinWordLength :: Maybe MinWordLength
1016 , moreLikeThisMinWordLength :: Maybe MinWordLength
@@ -1741,10 +1740,13 @@ instance FromJSON Filter where
1741 <*> o .: "optimize_bbox"
1740 <*> o .: "optimize_bbox"
1742 <*> o .:? "_cache" .!= defaultCache
1741 <*> o .:? "_cache" .!= defaultCache
1743 _ -> fail "Could not find GeoDistanceFilter field name"
1742 _ -> fail "Could not find GeoDistanceFilter field name"
1744− geoDistanceRangeFilter o = flip fieldTagged o $ \fn o' -> do
1743+ geoDistanceRangeFilter o = do
1744+ case HM.toList (deleteSeveral ["from", "to"] o) of
1745+ [(fn, v)] -> do
1745− gp <- GeoPoint fn <$> parseJSON (Object o')
1746+ gp <- GeoPoint (FieldName fn) <$> parseJSON v
1746− rng <- DistanceRange <$> o .: "from" <*> o .: "to"
1747+ rng <- DistanceRange <$> o .: "from" <*> o .: "to"
1747− return (GeoDistanceRangeFilter gp rng)
1748+ return (GeoDistanceRangeFilter gp rng)
1749+ _ -> fail "Could not find GeoDistanceRangeFilter field name"
1748 geoPolygonFilter = fieldTagged $ \fn o -> GeoPolygonFilter fn <$> o .: "points"
1750 geoPolygonFilter = fieldTagged $ \fn o -> GeoPolygonFilter fn <$> o .: "points"
1749 idsFilter o = IdsFilter <$> o .: "type"
1751 idsFilter o = IdsFilter <$> o .: "type"
1750 <*> o .: "values"
1752 <*> o .: "values"
@@ -1764,11 +1766,14 @@ instance FromJSON Filter where
1764 <*> o .: "execution"
1766 <*> o .: "execution"
1765 <*> o .:? "_cache" .!= defaultCache
1767 <*> o .:? "_cache" .!= defaultCache
1766 _ -> fail "Could not find field name for RangeFilter"
1768 _ -> fail "Could not find field name for RangeFilter"
1767− regexpFilter = fieldTagged $ \fn o -> RegexpFilter fn <$> o .: "value"
1769+ regexpFilter o = case HM.toList (deleteSeveral ["_name", "_cache", "_cache_key"] o) of
1770+ [(fn, Object o')] -> RegexpFilter (FieldName fn)
1771+ <$> o' .: "value"
1768− <*> o .: "flags"
1772+ <*> o' .: "flags"
1769− <*> o .: "_name"
1773+ <*> o .: "_name"
1770− <*> o .:? "_cache" .!= defaultCache
1774+ <*> o .:? "_cache" .!= defaultCache
1771− <*> o .: "_cache_key"
1775+ <*> o .: "_cache_key"
1776+ _ -> fail "Could not find field name for RegexpFilter"
1772 termFilter o = case HM.toList (HM.delete "_cache" o) of
1777 termFilter o = case HM.toList (HM.delete "_cache" o) of
1773 [(termField, String termVal)] -> TermFilter (Term termField termVal)
1778 [(termField, String termVal)] -> TermFilter (Term termField termVal)
1774 <$> o .:? "_cache" .!= defaultCache
1779 <$> o .:? "_cache" .!= defaultCache
@@ -1793,12 +1798,9 @@ instance ToJSON Query where
1793 boosted = maybe [] (return . ("boost" .=)) boost
1798 boosted = maybe [] (return . ("boost" .=)) boost
1794 merged = mappend base boosted
1799 merged = mappend base boosted
1795
1800
1796− toJSON (TermsQuery terms) =
1801+ toJSON (TermsQuery fieldName terms) =
1797 object [ "terms" .= object conjoined ]
1802 object [ "terms" .= object conjoined ]
1798− where conjoined = [ getTermsField terms .=
1803+ where conjoined = [fieldName .= terms]
1799− fmap (toJSON . getTermValue) (toList terms)]
1800− getTermsField ((Term f _ ) :| _) = f
1801− getTermValue (Term _ v) = v
1802 toJSON (IdsQuery idsQueryMappingName docIds) =
1804 toJSON (IdsQuery idsQueryMappingName docIds) =
1803 object [ "ids" .= object conjoined ]
1805 object [ "ids" .= object conjoined ]
1804 where conjoined = [ "type" .= idsQueryMappingName
1806 where conjoined = [ "type" .= idsQueryMappingName
@@ -1913,7 +1915,7 @@ instance FromJSON Query where
1913 termsQuery o = case HM.toList o of
1915 termsQuery o = case HM.toList o of
1914 [(fn, vs)] -> do vals <- parseJSON vs
1916 [(fn, vs)] -> do vals <- parseJSON vs
1915 case vals of
1917 case vals of
1916− x:xs -> return (TermsQuery (Term fn <$> x :| xs))
1918+ x:xs -> return (TermsQuery fn (x :| xs))
1917 _ -> fail "Expected non empty list of values"
1919 _ -> fail "Expected non empty list of values"
1918 _ -> fail "Expected object with 1 field-named key"
1920 _ -> fail "Expected object with 1 field-named key"
1919 idsQuery o = IdsQuery <$> o .: "type"
1921 idsQuery o = IdsQuery <$> o .: "type"
@@ -1970,9 +1972,11 @@ instance FromJSON SimpleQueryStringQuery where
1970 <*> o .:? "fields"
1972 <*> o .:? "fields"
1971 <*> o .:? "default_operator"
1973 <*> o .:? "default_operator"
1972 <*> o .:? "analyzer"
1974 <*> o .:? "analyzer"
1973− <*> o .:? "flags"
1975+ <*> (parseFlags <$> o .:? "flags")
1974 <*> o .:? "lowercase_expanded_terms"
1976 <*> o .:? "lowercase_expanded_terms"
1975 <*> o .:? "locale"
1977 <*> o .:? "locale"
1978+ parseFlags (Just (x:xs)) = Just (x :| xs)
1979+ parseFlags _ = Nothing
1976
1980
1977instance ToJSON FieldOrFields where
1981instance ToJSON FieldOrFields where
1978 toJSON (FofField fieldName) =
1982 toJSON (FofField fieldName) =
@@ -1982,7 +1986,7 @@ instance ToJSON FieldOrFields where
1982
1986
1983instance FromJSON FieldOrFields where
1987instance FromJSON FieldOrFields where
1984 parseJSON v = FofField <$> parseJSON v
1988 parseJSON v = FofField <$> parseJSON v
1985− <|> FofFields <$> parseJSON v
1989+ <|> FofFields <$> (parseNEJSON =<< parseJSON v)
1986
1990
1987instance ToJSON SimpleQueryFlag where
1991instance ToJSON SimpleQueryFlag where
1988 toJSON SimpleQueryAll = "ALL"
1992 toJSON SimpleQueryAll = "ALL"
@@ -2103,10 +2107,10 @@ instance FromJSON RangeValue where
2103 gt <- o .:? "gt"
2107 gt <- o .:? "gt"
2104 gte <- o .:? "gte"
2108 gte <- o .:? "gte"
2105 case (lt, lte, gt, gte) of
2109 case (lt, lte, gt, gte) of
2106− (Just a, _, Just b, _) -> return (RangeDateGtLt (GreaterThanD a) (LessThanD b))
2110+ (Just a, _, Just b, _) -> return (RangeDateGtLt (GreaterThanD b) (LessThanD a))
2107− (Just a, _, _, Just b)-> return (RangeDateGteLt (GreaterThanEqD a) (LessThanD b))
2111+ (Just a, _, _, Just b)-> return (RangeDateGteLt (GreaterThanEqD b) (LessThanD a))
2108− (_, Just a, Just b, _)-> return (RangeDateGtLte (GreaterThanD a) (LessThanEqD b))
2112+ (_, Just a, Just b, _)-> return (RangeDateGtLte (GreaterThanD b) (LessThanEqD a))
2109− (_, Just a, _, Just b)-> return (RangeDateGteLte (GreaterThanEqD a) (LessThanEqD b))
2113+ (_, Just a, _, Just b)-> return (RangeDateGteLte (GreaterThanEqD b) (LessThanEqD a))
2110 (_, _, Just a, _)-> return (RangeDateGt (GreaterThanD a))
2114 (_, _, Just a, _)-> return (RangeDateGt (GreaterThanD a))
2111 (Just a, _, _, _)-> return (RangeDateLt (LessThanD a))
2115 (Just a, _, _, _)-> return (RangeDateLt (LessThanD a))
2112 (_, _, _, Just a)-> return (RangeDateGte (GreaterThanEqD a))
2116 (_, _, _, Just a)-> return (RangeDateGte (GreaterThanEqD a))
@@ -2117,10 +2121,10 @@ instance FromJSON RangeValue where
2117 gt <- o .:? "gt"
2121 gt <- o .:? "gt"
2118 gte <- o .:? "gte"
2122 gte <- o .:? "gte"
2119 case (lt, lte, gt, gte) of
2123 case (lt, lte, gt, gte) of
2120− (Just a, _, Just b, _) -> return (RangeDoubleGtLt (GreaterThan a) (LessThan b))
2124+ (Just a, _, Just b, _) -> return (RangeDoubleGtLt (GreaterThan b) (LessThan a))
2121− (Just a, _, _, Just b)-> return (RangeDoubleGteLt (GreaterThanEq a) (LessThan b))
2125+ (Just a, _, _, Just b)-> return (RangeDoubleGteLt (GreaterThanEq b) (LessThan a))
2122− (_, Just a, Just b, _)-> return (RangeDoubleGtLte (GreaterThan a) (LessThanEq b))
2126+ (_, Just a, Just b, _)-> return (RangeDoubleGtLte (GreaterThan b) (LessThanEq a))
2123− (_, Just a, _, Just b)-> return (RangeDoubleGteLte (GreaterThanEq a) (LessThanEq b))
2127+ (_, Just a, _, Just b)-> return (RangeDoubleGteLte (GreaterThanEq b) (LessThanEq a))
2124 (_, _, Just a, _)-> return (RangeDoubleGt (GreaterThan a))
2128 (_, _, Just a, _)-> return (RangeDoubleGt (GreaterThan a))
2125 (Just a, _, _, _)-> return (RangeDoubleLt (LessThan a))
2129 (Just a, _, _, _)-> return (RangeDoubleLt (LessThan a))
2126 (_, _, _, Just a)-> return (RangeDoubleGte (GreaterThanEq a))
2130 (_, _, _, Just a)-> return (RangeDoubleGte (GreaterThanEq a))
@@ -2180,7 +2184,7 @@ instance FromJSON MoreLikeThisFieldQuery where
2180 <*> o .:? "percent_terms_to_match"
2184 <*> o .:? "percent_terms_to_match"
2181 <*> o .:? "min_term_freq"
2185 <*> o .:? "min_term_freq"
2182 <*> o .:? "max_query_terms"
2186 <*> o .:? "max_query_terms"
2183− <*> o .:? "stop_words"
2187+ <*> (optionalNE =<< o .:? "stop_words")
2184 <*> o .:? "min_doc_freq"
2188 <*> o .:? "min_doc_freq"
2185 <*> o .:? "max_doc_freq"
2189 <*> o .:? "max_doc_freq"
2186 <*> o .:? "min_word_length"
2190 <*> o .:? "min_word_length"
@@ -2188,6 +2192,7 @@ instance FromJSON MoreLikeThisFieldQuery where
2188 <*> o .:? "boost_terms"
2192 <*> o .:? "boost_terms"
2189 <*> o .:? "boost"
2193 <*> o .:? "boost"
2190 <*> o .:? "analyzer"
2194 <*> o .:? "analyzer"
2195+ optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)
2191
2196
2192instance ToJSON MoreLikeThisQuery where
2197instance ToJSON MoreLikeThisQuery where
2193 toJSON (MoreLikeThisQuery text fields percent
2198 toJSON (MoreLikeThisQuery text fields percent
@@ -2212,11 +2217,11 @@ instance FromJSON MoreLikeThisQuery where
2212 parseJSON = withObject "MoreLikeThisQuery" parse
2217 parseJSON = withObject "MoreLikeThisQuery" parse
2213 where parse o = MoreLikeThisQuery
2218 where parse o = MoreLikeThisQuery
2214 <$> o .: "like_text"
2219 <$> o .: "like_text"
2215− <*> o .:? "fields"
2220+ <*> (optionalNE =<< o .:? "fields")
2216 <*> o .:? "percent_terms_to_match"
2221 <*> o .:? "percent_terms_to_match"
2217 <*> o .:? "min_term_freq"
2222 <*> o .:? "min_term_freq"
2218 <*> o .:? "max_query_terms"
2223 <*> o .:? "max_query_terms"
2219− <*> o .:? "stop_words"
2224+ <*> (optionalNE =<< o .:? "stop_words")
2220 <*> o .:? "min_doc_freq"
2225 <*> o .:? "min_doc_freq"
2221 <*> o .:? "max_doc_freq"
2226 <*> o .:? "max_doc_freq"
2222 <*> o .:? "min_word_length"
2227 <*> o .:? "min_word_length"
@@ -2224,6 +2229,7 @@ instance FromJSON MoreLikeThisQuery where
2224 <*> o .:? "boost_terms"
2229 <*> o .:? "boost_terms"
2225 <*> o .:? "boost"
2230 <*> o .:? "boost"
2226 <*> o .:? "analyzer"
2231 <*> o .:? "analyzer"
2232+ optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)
2227
2233
2228instance ToJSON IndicesQuery where
2234instance ToJSON IndicesQuery where
2229 toJSON (IndicesQuery indices query noMatch) =
2235 toJSON (IndicesQuery indices query noMatch) =
@@ -2234,7 +2240,7 @@ instance ToJSON IndicesQuery where
2234instance FromJSON IndicesQuery where
2240instance FromJSON IndicesQuery where
2235 parseJSON = withObject "IndicesQuery" parse
2241 parseJSON = withObject "IndicesQuery" parse
2236 where parse o = IndicesQuery
2242 where parse o = IndicesQuery
2237− <$> o .: "indices"
2243+ <$> o .:? "indices" .!= []
2238 <*> o .: "query"
2244 <*> o .: "query"
2239 <*> o .:? "no_match_query"
2245 <*> o .:? "no_match_query"
2240
2246
tests/tests.hs+23−9
@@ -1,7 +1,8 @@
1−{-# LANGUAGE DeriveGeneric #-}
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
2−{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE OverloadedStrings #-}
3−{-# LANGUAGE ScopedTypeVariables #-}
4+{-# LANGUAGE ScopedTypeVariables #-}
4−{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TemplateHaskell #-}
5{-# OPTIONS_GHC -fno-warn-orphans #-}
6{-# OPTIONS_GHC -fno-warn-orphans #-}
6module Main where
7module Main where
7
8
@@ -294,12 +295,15 @@ instance Arbitrary a => Arbitrary (Hit a) where
294
295
295
296
296instance Arbitrary a => Arbitrary (SearchHits a) where
297instance Arbitrary a => Arbitrary (SearchHits a) where
297− arbitrary = sized $ \n -> resize (n `div` 2) $ do
298+ arbitrary = reduceSize $ do
298 tot <- getPositive <$> arbitrary
299 tot <- getPositive <$> arbitrary
299 score <- arbitraryScore
300 score <- arbitraryScore
300 hs <- arbitrary
301 hs <- arbitrary
301 return $ SearchHits tot score hs
302 return $ SearchHits tot score hs
302
303
304+reduceSize :: Gen a -> Gen a
305+reduceSize f = sized $ \n -> resize (n `div` 2) f
306+
303getSource :: EsResult a -> Maybe a
307getSource :: EsResult a -> Maybe a
304getSource = fmap _source . foundResult
308getSource = fmap _source . foundResult
305
309
@@ -334,8 +338,20 @@ instance Arbitrary AliasRouting where
334 <*> (Just <$> arbitrary)
338 <*> (Just <$> arbitrary)
335 allAlias = AllAliasRouting <$> arbitrary
339 allAlias = AllAliasRouting <$> arbitrary
336
340
341+instance Arbitrary FieldName where
342+ arbitrary = FieldName . T.pack <$> listOf1 arbitraryAlphaNum
343+
344+instance Arbitrary RegexpFlags where
345+ arbitrary = oneof [ pure AllRegexpFlags
346+ , pure NoRegexpFlags
347+ , SomeRegexpFlags <$> genUniqueFlags
348+ ]
349+ where genUniqueFlags = NE.fromList . nub <$> listOf1 arbitrary
350+
351+instance Arbitrary IndexAliasCreate where
352+ arbitrary = IndexAliasCreate <$> arbitrary <*> reduceSize arbitrary
353+
337$(derive makeArbitrary ''IndexName)
354$(derive makeArbitrary ''IndexName)
338−$(derive makeArbitrary ''FieldName)
339$(derive makeArbitrary ''MappingName)
355$(derive makeArbitrary ''MappingName)
340$(derive makeArbitrary ''DocId)
356$(derive makeArbitrary ''DocId)
341$(derive makeArbitrary ''Version)
357$(derive makeArbitrary ''Version)
@@ -421,7 +437,6 @@ $(derive makeArbitrary ''MultiMatchQueryType)
421$(derive makeArbitrary ''BooleanOperator)
437$(derive makeArbitrary ''BooleanOperator)
422$(derive makeArbitrary ''ZeroTermsQuery)
438$(derive makeArbitrary ''ZeroTermsQuery)
423$(derive makeArbitrary ''MatchQueryType)
439$(derive makeArbitrary ''MatchQueryType)
424−$(derive makeArbitrary ''IndexAliasCreate)
425$(derive makeArbitrary ''SearchAliasRouting)
440$(derive makeArbitrary ''SearchAliasRouting)
426$(derive makeArbitrary ''ScoreType)
441$(derive makeArbitrary ''ScoreType)
427$(derive makeArbitrary ''Distance)
442$(derive makeArbitrary ''Distance)
@@ -433,7 +448,6 @@ $(derive makeArbitrary ''GeoFilterType)
433$(derive makeArbitrary ''GeoBoundingBox)
448$(derive makeArbitrary ''GeoBoundingBox)
434$(derive makeArbitrary ''LatLon)
449$(derive makeArbitrary ''LatLon)
435$(derive makeArbitrary ''RangeExecution)
450$(derive makeArbitrary ''RangeExecution)
436−$(derive makeArbitrary ''RegexpFlags)
437$(derive makeArbitrary ''RegexpFlag)
451$(derive makeArbitrary ''RegexpFlag)
438$(derive makeArbitrary ''BoolMatch)
452$(derive makeArbitrary ''BoolMatch)
439$(derive makeArbitrary ''Term)
453$(derive makeArbitrary ''Term)
@@ -551,7 +565,7 @@ main = hspec $ do
551
565
552 it "returns document for terms query and identity filter" $ withTestEnv $ do
566 it "returns document for terms query and identity filter" $ withTestEnv $ do
553 _ <- insertData
567 _ <- insertData
554− let query = TermsQuery (NE.fromList [(Term "user" "bitemyapp")])
568+ let query = TermsQuery "user" ("bitemyapp" :| [])
555 let filter = IdentityFilter <&&> IdentityFilter
569 let filter = IdentityFilter <&&> IdentityFilter
556 let search = mkSearch (Just query) (Just filter)
570 let search = mkSearch (Just query) (Just filter)
557 myTweet <- searchTweet search
571 myTweet <- searchTweet search