{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.KnowledgeGraphSearch.Types.Product where
import Network.Google.KnowledgeGraphSearch.Types.Sum
import Network.Google.Prelude
data SearchResponse = SearchResponse'
{ _srContext :: !(Maybe JSONValue)
, _srItemListElement :: !(Maybe [JSONValue])
, _srType :: !(Maybe JSONValue)
} deriving (Eq,Show,Data,Typeable,Generic)
searchResponse
:: SearchResponse
searchResponse =
SearchResponse'
{ _srContext = Nothing
, _srItemListElement = Nothing
, _srType = Nothing
}
srContext :: Lens' SearchResponse (Maybe JSONValue)
srContext
= lens _srContext (\ s a -> s{_srContext = a})
srItemListElement :: Lens' SearchResponse [JSONValue]
srItemListElement
= lens _srItemListElement
(\ s a -> s{_srItemListElement = a})
. _Default
. _Coerce
srType :: Lens' SearchResponse (Maybe JSONValue)
srType = lens _srType (\ s a -> s{_srType = a})
instance FromJSON SearchResponse where
parseJSON
= withObject "SearchResponse"
(\ o ->
SearchResponse' <$>
(o .:? "@context") <*>
(o .:? "itemListElement" .!= mempty)
<*> (o .:? "@type"))
instance ToJSON SearchResponse where
toJSON SearchResponse'{..}
= object
(catMaybes
[("@context" .=) <$> _srContext,
("itemListElement" .=) <$> _srItemListElement,
("@type" .=) <$> _srType])