module Main.Decoders ( date, solrSelectResponseDocumentIDs, solrSelectResponseNumFound, module JSONIncrementalDecoder, ) where import Rebase.Prelude import JSONIncrementalDecoder date :: Value (Int, Int, Int) date = objectDate `mappend` arrayDate objectDate :: Value (Int, Int, Int) objectDate = objectLookup $ (,,) <$> atKey "year" numberAsInt <*> atKey "month" numberAsInt <*> atKey "day" numberAsInt arrayDate :: Value (Int, Int, Int) arrayDate = arrayElements $ (,,) <$> element numberAsInt <*> element numberAsInt <*> element numberAsInt solrSelectResponseDocumentIDs :: Value [Text] solrSelectResponseDocumentIDs = objectLookup $ atKey "response" $ objectLookup $ atKey "docs" $ arrayElements $ many $ element $ objectLookup $ atKey "id" $ string solrSelectResponseNumFound :: Value Int solrSelectResponseNumFound = objectLookup $ atKey "response" $ objectLookup $ atKey "numFound" $ numberAsInt