flickr-0.3.3: Flickr/Favorites.hs
--------------------------------------------------------------------
-- |
-- Module : Flickr.Favorites
-- Description : flickr.favorites - manage favorite photos.
-- Copyright : (c) Sigbjorn Finne, 2008
-- License : BSD3
--
-- Maintainer : Sigbjorn Finne <sof@forkIO.com>
-- Stability : provisional
-- Portability : portable
--
-- flickr.favorites API, managing a user's favorite photos.
--------------------------------------------------------------------
module Flickr.Favorites
( add -- :: PhotoID -> FM ()
, remove -- :: PhotoID -> FM ()
, getList -- :: Maybe UserID -> [PhotoInfo] -> DateDetails -> FM (PhotoContext, [Photo])
, getPublicList -- :: UserID -> [PhotoInfo] -> DateDetails -> FM (PhotoContext, [Photo])
) where
import Flickr.Monad
import Flickr.Types
import Flickr.Types.Import
-- | Adds a photo to a user's favorites list.
add :: PhotoID -> FM ()
add pid = withWritePerm $ postMethod $
flickCall_ "flickr.favorites.add"
[ ("photo_id", pid) ]
-- | Removes a photo from a user's favorites list.
remove :: PhotoID -> FM ()
remove pid = withWritePerm $ postMethod $
flickCall_ "flickr.favorites.remove"
[ ("photo_id", pid) ]
-- | Returns a list of the user's favorite photos.
-- Only photos which the calling user has permission to see are returned.
getList :: Maybe UserID
-> [PhotoInfo]
-> DateDetails
-> FM (PhotoContext, [Photo])
getList uid ps mbDates = withReadPerm $
flickTranslate toPhotoList $
flickrCall "flickr.favorites.getList"
(mbArg "user_id" uid $
mbArg "min_fave_date" (dateMinTaken mbDates) $
mbArg "max_fave_date" (dateMaxTaken mbDates) $
lsArg "extras" (map show ps) [])
-- | Returns a list of favorite public photos for the given user.
getPublicList :: UserID
-> [PhotoInfo]
-> DateDetails
-> FM (PhotoContext, [Photo])
getPublicList uid ps mbDates =
flickTranslate toPhotoList $
flickrCall "flickr.favorites.getPublicList"
(mbArg "min_fave_date" (dateMinTaken mbDates) $
mbArg "max_fave_date" (dateMaxTaken mbDates) $
lsArg "extras" (map show ps) $
[("user_id", uid)])