{-# LANGUAGE OverloadedStrings #-} module Model.Json.Search ( Search(..) , getMaterialSearch ) where import Control.Monad (mzero) import Control.Applicative ((<$>), (<*>)) import Data.Aeson import Data.Text (Text) import Data.List (find) data Search = Search { identifier :: Text , kind :: Text , name :: Text } deriving (Show) instance FromJSON Search where parseJSON (Object v) = Search <$> v .: "id" <*> v .: "type" <*> v .: "name" parseJSON _ = mzero getMaterialSearch :: [Search] -> Maybe Search getMaterialSearch = find ((==) "matiere" . kind)