reddit-0.2.2.2: src/Reddit/Actions/Flair.hs
-- | Contains actions for handling flair on a subreddit-wise basis.
module Reddit.Actions.Flair
( getFlairList
, getFlairList'
, addLinkFlair
, flairCSV ) where
import Reddit.Routes.Flair
import Reddit.Types.Empty
import Reddit.Types.Flair
import Reddit.Types.Options
import Reddit.Types.Reddit
import Reddit.Types.Subreddit
import Reddit.Types.User
import Control.Monad
import Data.Aeson hiding (Options(..))
import Data.Default.Class
import Data.Text (Text)
-- | Get the flair list for a subreddit. Requires moderator privileges on
-- the subreddit.
getFlairList :: Monad m => SubredditName -> RedditT m FlairListing
getFlairList = getFlairList' def
-- | Get the flair list for a subreddit (with 'Options'). Requires moderator
-- privileges on the subreddit.
getFlairList' :: Monad m => Options UserID -> SubredditName -> RedditT m FlairListing
getFlairList' opts r = liftM flistToListing $ runRoute (flairList opts r)
-- | Add link flair to the subreddit-wide template for a subreddit that you moderate.
-- Requires moderator privileges on the subreddit.
addLinkFlair :: Monad m
=> SubredditName -- ^ The subreddit whose template you want to modify
-> Text -- ^ The intended CSS class of the new link flair
-> Text -- ^ The intended text label of the new link flair
-> Bool -- ^ Whether the flair should be editable by users
-> RedditT m ()
addLinkFlair r c l e =
nothing $ runRoute $ addLinkFlairTemplate r c l e
flairCSV :: Monad m => SubredditName -> [(Username, Text, Text)] -> RedditT m Value
flairCSV r sets =
runRoute $ flairCSVRoute r sets