ig-0.2.1: src/Instagram/Geographies.hs
{-# LANGUAGE FlexibleContexts #-}
-- | geographies handling
-- <http://instagram.com/developer/endpoints/geographies/#>
module Instagram.Geographies (
GeographyMediaParams(..)
,getGeographyRecentMedia
)where
import Instagram.Monad
import Instagram.Types
import qualified Network.HTTP.Types as HT
import qualified Data.Text as T (Text)
import Data.Default
import Data.Typeable
import Data.Maybe (isJust)
-- | Parameters for call to recent media in geography search
data GeographyMediaParams = GeographyMediaParams {
gmpCount :: Maybe Integer
,gmpMinId :: Maybe T.Text
}
deriving (Show,Typeable)
instance Default GeographyMediaParams where
def=GeographyMediaParams Nothing Nothing
instance HT.QueryLike GeographyMediaParams where
toQuery (GeographyMediaParams cnt minI)=filter (isJust .snd)
["count" ?+ cnt
,"min_id" ?+ minI ]
-- | Get very recent media from a geography subscription that you created
getGeographyRecentMedia :: (MonadBaseControl IO m, MonadResource m) =>
GeographyID
-> GeographyMediaParams
->InstagramT m (Envelope [Media])
getGeographyRecentMedia gid = getGetEnvelopeM ["/v1/geographies/", gid,"/media/recent"] Nothing