{-# LANGUAGE FlexibleContexts #-} -- | geographies handling -- 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