module Reddit.Login
( login ) where
import Reddit.Types.Reddit
import Data.Text (Text)
import Network.API.Builder hiding (runRoute)
loginRoute :: Text -> Text -> Route
loginRoute :: Text -> Text -> Route
loginRoute Text
user Text
pass = [Text] -> [URLParam] -> Method -> Route
Route [ Text
"api", Text
"login" ]
[ Text
"rem" Text -> Bool -> URLParam
forall a. ToQuery a => Text -> a -> URLParam
=. Bool
True
, Text
"user" Text -> Text -> URLParam
forall a. ToQuery a => Text -> a -> URLParam
=. Text
user
, Text
"passwd" Text -> Text -> URLParam
forall a. ToQuery a => Text -> a -> URLParam
=. Text
pass ]
Method
"POST"
getLoginDetails :: Monad m => Text -> Text -> ClientParams -> RedditT m LoginDetails
getLoginDetails :: Text -> Text -> ClientParams -> RedditT m LoginDetails
getLoginDetails Text
user Text
pass ClientParams
cp = ([Header] -> [Header])
-> RedditT m LoginDetails -> RedditT m LoginDetails
forall (m :: * -> *) a.
Monad m =>
([Header] -> [Header]) -> RedditT m a -> RedditT m a
withHeaders (ClientParams -> Header
mkClientParamsHeader ClientParams
cp Header -> [Header] -> [Header]
forall a. a -> [a] -> [a]
:) (RedditT m LoginDetails -> RedditT m LoginDetails)
-> RedditT m LoginDetails -> RedditT m LoginDetails
forall a b. (a -> b) -> a -> b
$ Route -> RedditT m LoginDetails
forall a (m :: * -> *).
(Receivable a, Monad m) =>
Route -> RedditT m a
receiveRoute (Route -> RedditT m LoginDetails)
-> Route -> RedditT m LoginDetails
forall a b. (a -> b) -> a -> b
$ Text -> Text -> Route
loginRoute Text
user Text
pass
login :: Monad m
=> Text
-> Text
-> ClientParams
-> RedditT m LoginDetails
login :: Text -> Text -> ClientParams -> RedditT m LoginDetails
login = Text -> Text -> ClientParams -> RedditT m LoginDetails
forall (m :: * -> *).
Monad m =>
Text -> Text -> ClientParams -> RedditT m LoginDetails
getLoginDetails