module Happstack.Facebook.Photos where
import Data.Generics (Data, Typeable)
import Data.Maybe (catMaybes)
import Happstack.Facebook.Common
import Text.RJson
data Get
= Get
{ subj_id :: Maybe User
, album :: Maybe AlbumId
, photos :: Maybe [PhotoId]
}
deriving (Data, Typeable, Read, Show, Eq, Ord)
instance RequiresSession Get
instance (HasSessionKey m) => FacebookMethod m Get where
type FacebookResponse Get = String
parseResponse _ jstr = Right jstr
toParams (Get mSubjId mAlbum mPhotos) =
do sessionKey <- askSessionKey
return $ catMaybes $
[ Just ("method", "Photos.get")
, Just ("session_key", sessionKey)
, fmap (\subj -> ("subj_id", show (uid subj))) mSubjId
, fmap (\albumId -> ("aid", show (aid albumId))) mAlbum
, fmap (\pids -> ("pids", toCommaList $ map (show . pid) pids)) mPhotos
]