git.iko.soy/typeable/bloodhound
on master help sign in
no more maybeJson/maybeJsonF
commit9c662b1ca5b88b0ae59bcf67e19cc2724f266b6d authorChris Allen <cma@bitemyapp.com> dateThu 31 Jul 2014, 00:01 (12 years ago) parent8708223
2 files changed+16−28
Database/Bloodhound/Types.hs+12−28 changelog+4
Database/Bloodhound/Types.hs+12−28
@@ -13,8 +13,6 @@ module Database.Bloodhound.Types
1313 ( defaultCache
1414 , defaultIndexSettings
1515 , halfRangeToKV
16− , maybeJson
17− , maybeJsonF
1816 , mkSort
1917 , rangeToKV
2018 , showText
@@ -938,15 +936,6 @@ data ShardResult =
938936 , shardsSuccessful :: Int
939937 , shardsFailed :: Int } deriving (Eq, Show, Generic)
940938
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−
950939showText :: Show a => a -> Text
951940showText = T.pack . show
952941
@@ -1544,29 +1533,24 @@ instance (FromJSON a) => FromJSON (EsResult a) where
15441533
15451534instance ToJSON Search where
15461535 toJSON (Search query sFilter sort sTrackSortScores sFrom sSize) =
1547− object merged where
1548− lQuery = maybeJson "query" query
1549− lFilter = maybeJson "filter" sFilter
1550− lSort = maybeJsonF "sort" sort
1551− merged = mconcat [[ "from" .= sFrom
1552− , "size" .= sSize
1553− , "track_scores" .= sTrackSortScores]
1554− , lQuery
1555− , lFilter
1556− , lSort]
1536+ omitNulls [ "query" .= query
1537+ , "filter" .= sFilter
1538+ , "sort" .= sort
1539+ , "from" .= sFrom
1540+ , "size" .= sSize
1541+ , "track_scores" .= sTrackSortScores ]
15571542
15581543
15591544instance ToJSON SortSpec where
15601545 toJSON (DefaultSortSpec
15611546 (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped
15621547 dsSortMode dsMissingSort dsNestedFilter)) =
1563− object [dsSortFieldName .= object merged] where
1564− base = ["order" .= toJSON dsSortOrder
1565− , "ignore_unmapped" .= dsIgnoreUnmapped]
1566− lSortMode = maybeJson "mode" dsSortMode
1567− lMissingSort = maybeJson "missing" dsMissingSort
1568− lNestedFilter = maybeJson "nested_filter" dsNestedFilter
1569− merged = mconcat [base, lSortMode, lMissingSort, lNestedFilter]
1548+ object [dsSortFieldName .= omitNulls base] where
1549+ base = [ "order" .= toJSON dsSortOrder
1550+ , "ignore_unmapped" .= dsIgnoreUnmapped
1551+ , "mode" .= dsSortMode
1552+ , "missing" .= dsMissingSort
1553+ , "nested_filter" .= dsNestedFilter ]
15701554
15711555 toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =
15721556 object [ "unit" .= toJSON units
changelog+4
@@ -3,6 +3,10 @@
330.2.0.0 --> 0.2.0.1
44===================
55
6+* Killed off maybeJson/mField/catMaybes in favor of omitNulls
7+
8+* Experimenting with RecordWildcards
9+
610* Merged Types and Instances module into Types to prevent possibility of orphans and cull orphan instance warnings.
711
812* Added note about current supported Elasticsearch version.