-------------------------------------------------------------------- -- | -- Module : Flickr.Groups.Pools -- Description : flickr.groups.pools - manage photo group pooling. -- Copyright : (c) Sigbjorn Finne, 2008 -- License : BSD3 -- -- Maintainer : Sigbjorn Finne -- Stability : provisional -- Portability : portable -- -- flickr.groups.pools API, manage photo group pooling. -------------------------------------------------------------------- module Flickr.Groups.Pools where import Flickr.Monad import Flickr.Types import Flickr.Types.Import import Control.Monad ( liftM ) -- | Add a photo to a group's pool. add :: PhotoID -> GroupID -> FM () add pid gid = withWritePerm $ postMethod $ do flickCall_ "flickr.groups.pools.add" [ ("photo_id", pid) , ("group_id", gid) ] -- | Returns next and previous photos for a photo in a group pool. getContext :: PhotoID -> GroupID -> FM (Photo,Photo) getContext pid gid = flickTranslate toPhotoPair $ flickrCall "flickr.groups.pools.getContext" [ ("photo_id", pid) , ("group_id", gid) ] -- | Returns a list of groups to which you can add photos. getGroups :: FM [Group] getGroups = flickTranslate toGroupList $ flickrCall "flickr.groups.pools.getGroups" [] -- | Returns a list of pool photos for a given group, -- based on the permissions of the group and the user logged in (if any). getPhotos :: GroupID -> [Tag] -> Maybe UserID -> [PhotoInfo] -> FM [Photo] getPhotos gid ts uid ps = liftM snd $ flickTranslate toPhotoList $ flickrCall "flickr.groups.Pools.getPhotos" (lsArg "tags" ts $ mbArg "user_id" uid $ lsArg "extras" (map show ps) [ ("group_id", gid) ]) -- | Remove a photo from a group pool. remove :: PhotoID -> GroupID -> FM () remove pid gid = withWritePerm $ postMethod $ flickCall_ "flickr.groups.pools.remove" [ ("photo_id", pid) , ("group_id", gid) ]