ig 0.4 → 0.5
raw patch · 2 files changed
+63/−55 lines, 2 filesnew-uploaderPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Instagram: getRecent :: (MonadBaseControl IO m, MonadResource m) => UserID -> OAuthToken -> RecentParams -> InstagramT m (Envelope [Media])
+ Instagram: getRecent :: (MonadBaseControl IO m, MonadResource m) => UserID -> Maybe OAuthToken -> RecentParams -> InstagramT m (Envelope [Media])
Files
- ig.cabal +1/−1
- src/Instagram/Users.hs +62/−54
ig.cabal view
@@ -1,5 +1,5 @@ name: ig-version: 0.4+version: 0.5 synopsis: Bindings to Instagram's API. homepage: https://github.com/prowdsponsor/ig license: BSD3
src/Instagram/Users.hs view
@@ -2,15 +2,15 @@ -- | Users end point handling -- <http://instagram.com/developer/endpoints/users/#> module Instagram.Users (- getUser- ,SelfFeedParams(..)- ,getSelfFeed- ,RecentParams(..)- ,getRecent- ,SelfLikedParams(..)- ,getSelfLiked- ,UserSearchParams(..)- ,searchUsers+ getUser+ , SelfFeedParams(..)+ , getSelfFeed+ , RecentParams(..)+ , getRecent+ , SelfLikedParams(..)+ , getSelfLiked+ , UserSearchParams(..)+ , searchUsers ) where import Instagram.Monad@@ -27,10 +27,11 @@ -- | Get basic information about a user.-getUser :: (MonadBaseControl IO m, MonadResource m) => UserID- -> Maybe OAuthToken- -> InstagramT m (Envelope (Maybe User))-getUser uid token =getGetEnvelopeM ["/v1/users/",uid] token ([]::HT.Query)+getUser :: (MonadBaseControl IO m, MonadResource m)+ => UserID+ -> Maybe OAuthToken+ -> InstagramT m (Envelope (Maybe User))+getUser uid token = getGetEnvelopeM ["/v1/users/",uid] token ([]::HT.Query) -- | Parameters for call to self feed data SelfFeedParams = SelfFeedParams {@@ -41,21 +42,22 @@ deriving (Show,Typeable) instance Default SelfFeedParams where- def=SelfFeedParams Nothing Nothing Nothing+ def = SelfFeedParams Nothing Nothing Nothing instance HT.QueryLike SelfFeedParams where- toQuery (SelfFeedParams c maxI minI)=filter (isJust .snd)- ["count" ?+ c- ,"max_id" ?+ maxI- ,"min_id" ?+ minI]+ toQuery (SelfFeedParams c maxI minI) = filter (isJust .snd)+ [ "count" ?+ c+ , "max_id" ?+ maxI+ , "min_id" ?+ minI+ ] -- | See the authenticated user's feed.-getSelfFeed :: (MonadBaseControl IO m, MonadResource m) =>- OAuthToken- -> SelfFeedParams- -> InstagramT m (Envelope [Media])-getSelfFeed =getGetEnvelope ["/v1/users/self/feed/"]+getSelfFeed :: (MonadBaseControl IO m, MonadResource m)+ => OAuthToken+ -> SelfFeedParams+ -> InstagramT m (Envelope [Media])+getSelfFeed = getGetEnvelope ["/v1/users/self/feed/"] -- | Parameters for call to recent media data RecentParams = RecentParams {@@ -68,59 +70,65 @@ deriving (Show,Typeable) instance Default RecentParams where- def=RecentParams Nothing Nothing Nothing Nothing Nothing+ def = RecentParams Nothing Nothing Nothing Nothing Nothing instance HT.QueryLike RecentParams where- toQuery (RecentParams c maxT minT maxI minI)=filter (isJust .snd)- ["count" ?+ c- ,"max_timestamp" ?+ maxT- ,"min_timestamp" ?+ minT- ,"max_id" ?+ maxI- ,"min_id" ?+ minI]+ toQuery (RecentParams c maxT minT maxI minI) = filter (isJust .snd)+ [ "count" ?+ c+ , "max_timestamp" ?+ maxT+ , "min_timestamp" ?+ minT+ , "max_id" ?+ maxI+ , "min_id" ?+ minI+ ] -- | Get the most recent media published by a user.-getRecent :: (MonadBaseControl IO m, MonadResource m) => UserID- -> OAuthToken- -> RecentParams- -> InstagramT m (Envelope [Media])-getRecent uid=getGetEnvelope ["/v1/users/",uid,"/media/recent/"]+getRecent :: (MonadBaseControl IO m, MonadResource m)+ => UserID+ -> Maybe OAuthToken+ -> RecentParams+ -> InstagramT m (Envelope [Media])+getRecent uid = getGetEnvelopeM ["/v1/users/",uid,"/media/recent/"] -- | parameters for self liked call data SelfLikedParams = SelfLikedParams {- slpCount :: Maybe Integer,- slpMaxLikeID :: Maybe T.Text+ slpCount :: Maybe Integer,+ slpMaxLikeID :: Maybe T.Text } deriving (Show,Typeable) instance Default SelfLikedParams where- def=SelfLikedParams Nothing Nothing+ def = SelfLikedParams Nothing Nothing instance HT.QueryLike SelfLikedParams where- toQuery (SelfLikedParams c maxI)=filter (isJust .snd)- ["count" ?+ c- ,"max_like_id" ?+ maxI]+ toQuery (SelfLikedParams c maxI) = filter (isJust .snd)+ [ "count" ?+ c+ , "max_like_id" ?+ maxI+ ] -- | See the authenticated user's list of media they've liked.-getSelfLiked :: (MonadBaseControl IO m, MonadResource m) => OAuthToken- -> SelfLikedParams- -> InstagramT m (Envelope [Media])-getSelfLiked =getGetEnvelope ["/v1/users/self/media/liked"]+getSelfLiked :: (MonadBaseControl IO m, MonadResource m)+ => OAuthToken+ -> SelfLikedParams+ -> InstagramT m (Envelope [Media])+getSelfLiked = getGetEnvelope ["/v1/users/self/media/liked"] -- | parameters for self liked call data UserSearchParams = UserSearchParams {- uspQuery :: T.Text,- uspCount :: Maybe Integer+ uspQuery :: T.Text,+ uspCount :: Maybe Integer } deriving (Show,Typeable) instance HT.QueryLike UserSearchParams where- toQuery (UserSearchParams q c )=filter (isJust .snd)- ["count" ?+ c -- does not seem to be taken into account...- ,"q" ?+ q]+ toQuery (UserSearchParams q c ) = filter (isJust .snd)+ [ "count" ?+ c -- does not seem to be taken into account...+ , "q" ?+ q+ ] -- | Search for a user by name.-searchUsers :: (MonadBaseControl IO m, MonadResource m) => Maybe OAuthToken- -> UserSearchParams- -> InstagramT m (Envelope [User])-searchUsers =getGetEnvelopeM ["/v1/users/search"]+searchUsers :: (MonadBaseControl IO m, MonadResource m)+ => Maybe OAuthToken+ -> UserSearchParams+ -> InstagramT m (Envelope [User])+searchUsers = getGetEnvelopeM ["/v1/users/search"]