packages feed

VKHS 0.0.3 → 0.1.0

raw patch · 5 files changed

+58/−30 lines, 5 filesdep +jsondep ~base

Dependencies added: json

Dependency ranges changed: base

Files

VKHS.cabal view
@@ -1,6 +1,6 @@  name:                VKHS-version:             0.0.3+version:             0.1.0 synopsis:            Provides access to Vkontakte (popular Russian social network) API description:     Provides access to Vkontakte API methods. Library requires no interaction@@ -25,9 +25,11 @@   exposed-modules:   Web.VKHS                      Web.VKHS.Types                      Web.VKHS.Login-                     Web.VKHS.Api+                     Web.VKHS.API+                     Web.VKHS.API.JSON -  build-depends:     base ==4.5.*,+  build-depends:     base >=4.5 && <5,+                     json ==0.5.*,                      containers ==0.4.*,                      tagsoup-parsec ==0.0.*,                      tagsoup ==0.12.*,
src/Web/VKHS.hs view
@@ -1,9 +1,9 @@ module Web.VKHS     ( module Web.VKHS.Login     , module Web.VKHS.Types-    , module Web.VKHS.Api+    , module Web.VKHS.API     ) where  import Web.VKHS.Types import Web.VKHS.Login-import Web.VKHS.Api+import Web.VKHS.API
+ src/Web/VKHS/API.hs view
@@ -0,0 +1,32 @@+module Web.VKHS.API+    ( api+    )  where++import Control.Monad+import Control.Monad.Trans+import Control.Monad.Writer+import Control.Monad.Error++import Data.Label+import qualified Data.ByteString.Char8 as BS++import Network.Curlhs.Core++import Network.Protocol.Http+import Network.Protocol.Uri+import Network.Protocol.Uri.Query++import Text.Printf++import Web.VKHS.Types+import Web.VKHS.Curl++api :: Env -> AccessToken -> String -> Parameters -> IO (Either String String)+api e (at,_,_) mn mp =+    let uri = BS.pack $ showUri $ (\f -> f $ toUri $ printf "https://api.vk.com/method/%s" mn) $+                set query $ bw params (("access_token",at):mp)+    in runErrorT $ do+        r <- ErrorT $ vk_curl e (tell [CURLOPT_URL  uri])+        (_,b) <- ErrorT $ return $ parseResponse r+        return b+
+ src/Web/VKHS/API/JSON.hs view
@@ -0,0 +1,19 @@+module Web.VKHS.API.JSON+    ( api+    )  where++import Control.Monad+import Control.Monad.Trans+import Control.Monad.Writer+import Control.Monad.Error++import Text.JSON as J++import Web.VKHS.Types+import qualified Web.VKHS.API as Base++liftR (Ok a) = return a+liftR (Error s) = fail s++api :: Env -> AccessToken -> String -> [(String,String)] -> IO (Either String JSValue)+api e a mn mp = runErrorT $ ErrorT (Base.api e a mn mp)  >>= liftR . J.decode
− src/Web/VKHS/Api.hs
@@ -1,25 +0,0 @@-module Web.VKHS.Api where--import Control.Monad.Writer--import Data.Label-import qualified Data.ByteString.Char8 as BS--import Network.Curlhs.Core--import Network.Protocol.Http-import Network.Protocol.Uri-import Network.Protocol.Uri.Query--import Text.Printf--import Web.VKHS.Types-import Web.VKHS.Curl--api :: Env -> AccessToken -> String -> Parameters -> IO (Either String String)-api e (at,_,_) mn mp =-    let uri = BS.pack $ showUri $ (\f -> f $ toUri $ printf "https://api.vk.com/method/%s" mn) $-                set query $ bw params (("access_token",at):mp)-    in vk_curl e $ do-        tell [CURLOPT_URL  uri]-