{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveDataTypeable #-} module Web.XING.Types.ProfessionalExperience ( ProfessionalExperience(..) ) where import Data.Aeson (Value(..), FromJSON(..), (.:)) import Control.Monad (mzero) import Control.Applicative ((<*>), (<$>)) import Data.Text (Text) data ProfessionalExperience = ProfessionalExperience { pe_title :: Maybe Text , pe_beginDate :: Maybe Text , pe_endDate :: Maybe Text , pe_careerLevel :: Maybe Text , pe_description :: Maybe Text , pe_name :: Maybe Text , pe_tag :: Maybe Text , pe_companySize :: Maybe Text , pe_url :: Maybe Text , pe_industry :: Text } deriving (Show, Eq) instance FromJSON ProfessionalExperience where parseJSON (Object response) = do ProfessionalExperience <$> (response .: "title") <*> (response .: "begin_date") <*> (response .: "end_date") <*> (response .: "career_level") <*> (response .: "description") <*> (response .: "name") <*> (response .: "tag") <*> (response .: "company_size") <*> (response .: "url") <*> (response .: "industry") parseJSON _ = mzero