git.iko.soy/typeable/bloodhound
on master help sign in
no more maybeJson/maybeJsonF
9c662b1Chris Allen
Database/Bloodhound/Types.hs+12−28
@@ -13,8 +13,6 @@ module Database.Bloodhound.Types
13 ( defaultCache
13 ( defaultCache
14 , defaultIndexSettings
14 , defaultIndexSettings
15 , halfRangeToKV
15 , halfRangeToKV
16− , maybeJson
17− , maybeJsonF
18 , mkSort
16 , mkSort
19 , rangeToKV
17 , rangeToKV
20 , showText
18 , showText
@@ -938,15 +936,6 @@ data ShardResult =
938 , shardsSuccessful :: Int
936 , shardsSuccessful :: Int
939 , shardsFailed :: Int } deriving (Eq, Show, Generic)
937 , shardsFailed :: Int } deriving (Eq, Show, Generic)
940
938
941−maybeJson :: ToJSON a => Text -> Maybe a -> [(Text, Value)]
942−maybeJson field (Just value) = [field .= toJSON value]
943−maybeJson _ _ = []
944−
945−maybeJsonF :: (ToJSON (f Value), ToJSON a, Functor f) =>
946− Text -> Maybe (f a) -> [(Text, Value)]
947−maybeJsonF field (Just value) = [field .= fmap toJSON value]
948−maybeJsonF _ _ = []
949−
950showText :: Show a => a -> Text
939showText :: Show a => a -> Text
951showText = T.pack . show
940showText = T.pack . show
952
941
@@ -1544,29 +1533,24 @@ instance (FromJSON a) => FromJSON (EsResult a) where
1544
1533
1545instance ToJSON Search where
1534instance ToJSON Search where
1546 toJSON (Search query sFilter sort sTrackSortScores sFrom sSize) =
1535 toJSON (Search query sFilter sort sTrackSortScores sFrom sSize) =
1547− object merged where
1548− lQuery = maybeJson "query" query
1536+ omitNulls [ "query" .= query
1549− lFilter = maybeJson "filter" sFilter
1537+ , "filter" .= sFilter
1550− lSort = maybeJsonF "sort" sort
1538+ , "sort" .= sort
1551− merged = mconcat [[ "from" .= sFrom
1539+ , "from" .= sFrom
1552− , "size" .= sSize
1540+ , "size" .= sSize
1553− , "track_scores" .= sTrackSortScores]
1541+ , "track_scores" .= sTrackSortScores ]
1554− , lQuery
1555− , lFilter
1556− , lSort]
1557
1542
1558
1543
1559instance ToJSON SortSpec where
1544instance ToJSON SortSpec where
1560 toJSON (DefaultSortSpec
1545 toJSON (DefaultSortSpec
1561 (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped
1546 (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped
1562 dsSortMode dsMissingSort dsNestedFilter)) =
1547 dsSortMode dsMissingSort dsNestedFilter)) =
1563− object [dsSortFieldName .= object merged] where
1548+ object [dsSortFieldName .= omitNulls base] where
1564− base = ["order" .= toJSON dsSortOrder
1549+ base = [ "order" .= toJSON dsSortOrder
1565− , "ignore_unmapped" .= dsIgnoreUnmapped]
1550+ , "ignore_unmapped" .= dsIgnoreUnmapped
1566− lSortMode = maybeJson "mode" dsSortMode
1551+ , "mode" .= dsSortMode
1567− lMissingSort = maybeJson "missing" dsMissingSort
1552+ , "missing" .= dsMissingSort
1568− lNestedFilter = maybeJson "nested_filter" dsNestedFilter
1553+ , "nested_filter" .= dsNestedFilter ]
1569− merged = mconcat [base, lSortMode, lMissingSort, lNestedFilter]
1570
1554
1571 toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =
1555 toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =
1572 object [ "unit" .= toJSON units
1556 object [ "unit" .= toJSON units
changelog+4
@@ -3,6 +3,10 @@
30.2.0.0 --> 0.2.0.1
30.2.0.0 --> 0.2.0.1
4===================
4===================
5
5
6+* Killed off maybeJson/mField/catMaybes in favor of omitNulls
7+
8+* Experimenting with RecordWildcards
9+
6* Merged Types and Instances module into Types to prevent possibility of orphans and cull orphan instance warnings.
10* Merged Types and Instances module into Types to prevent possibility of orphans and cull orphan instance warnings.
7
11
8* Added note about current supported Elasticsearch version.
12* Added note about current supported Elasticsearch version.