module Instagram.Likes (
getLikes
,getLikesMaxId
,like
,unlike
)where
import Instagram.Monad
import Instagram.Types
import Data.String
import qualified Data.Text as T
import qualified Network.HTTP.Types as HT
getLikes :: (MonadBaseControl IO m, MonadResource m) => MediaID
-> Maybe OAuthToken
-> InstagramT m (Envelope [User])
getLikes mid token =getGetEnvelopeM ["/v1/media/",mid,"/likes"] token ([]::HT.Query)
getLikesMaxId :: (MonadBaseControl IO m, MonadResource m) => MediaID
-> Maybe UserID
-> Maybe OAuthToken
-> InstagramT m (Envelope [User])
getLikesMaxId mid Nothing token =getGetEnvelopeM ["/v1/media/",mid,"/likes"] token ([]::HT.Query)
getLikesMaxId mid (Just maxUserId) token =
let maxid = (T.unpack maxUserId) :: String
in getGetEnvelopeM ["/v1/media/",mid,"/likes"] token ([("MAX_ID", Just $ fromString $ maxid)]::HT.Query)
like :: (MonadBaseControl IO m, MonadResource m) => MediaID
-> OAuthToken
-> InstagramT m (Envelope NoResult)
like mid token =getPostEnvelope ["/v1/media/",mid,"/likes"] token ([]::HT.Query)
unlike :: (MonadBaseControl IO m, MonadResource m) => MediaID
-> OAuthToken
-> InstagramT m (Envelope NoResult)
unlike mid token =getDeleteEnvelope ["/v1/media/",mid,"/likes"] token ([]::HT.Query)