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