{-# LANGUAGE DeriveGeneric #-} {- | Module: Network.SoundCloud.MiniUser Copyright: (c) 2012 Sebastián Ramírez Magrí License: BSD3 Maintainer: Sebastián Ramírez Magrí Stability: experimental Minimal representation of an user used when embedding users information on other resources information -} module Network.SoundCloud.MiniUser where import Data.Aeson (FromJSON, ToJSON, decode) import qualified Data.ByteString.Lazy.Char8 as BSL import GHC.Generics (Generic) -- | Represents mini user JSON as a record data JSON = JSON { id :: Int , username :: String , uri :: String , permalink_url :: String , avatar_url :: Maybe String } deriving (Show, Generic) instance FromJSON JSON instance ToJSON JSON -- | Decode a 'JSON' record from a valid miniuser -- JSON string decodeJSON :: String -> Maybe JSON decodeJSON dat = decode (BSL.pack dat) :: Maybe JSON