{-# LANGUAGE OverloadedStrings #-} module Network.Syncthing.Types.DeviceInfo ( DeviceInfo(..) ) where import Control.Applicative ((<$>)) import Control.Monad (MonadPlus (mzero)) import Data.Aeson (FromJSON, Value (..), parseJSON, (.:)) import Data.Time.Clock (UTCTime) import Network.Syncthing.Internal.Utils (toUTC) -- | Contains information about a device. data DeviceInfo = DeviceInfo { getLastSeen :: Maybe UTCTime } deriving (Eq, Show) instance FromJSON DeviceInfo where parseJSON (Object v) = DeviceInfo <$> (toUTC <$> v .: "lastSeen") parseJSON _ = mzero