packages feed

VKHS 0.5.0 → 0.5.1

raw patch · 2 files changed

+48/−2 lines, 2 files

Files

VKHS.cabal view
@@ -1,6 +1,6 @@  name:                VKHS-version:             0.5.0+version:             0.5.1 synopsis:            Provides access to Vkontakte social network via public API description:     Provides access to Vkontakte API methods. Library requires no interaction@@ -50,7 +50,7 @@   library-  --extra-libraries: curl+  extra-libraries: curl   build-tools:     hsc2hs   ghc-options:     -Wall -fwarn-tabs   hs-source-dirs:    src@@ -86,6 +86,7 @@   exposed-modules:   Web.VKHS                      Web.VKHS.API                      Web.VKHS.API.Aeson+                     Web.VKHS.API.Base                      Web.VKHS.API.Types                      Web.VKHS.API.Monad                      Web.VKHS.Curl
+ src/Web/VKHS/API/Base.hs view
@@ -0,0 +1,45 @@+module Web.VKHS.API.Base+    ( api+    , envcall+    )  where++import Control.Monad ()+import Control.Monad.Error ()+import Control.Monad.Writer+import Control.Monad.Trans ()++import Data.Label+import qualified Data.ByteString.UTF8 as U+import qualified Data.ByteString 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++envcall :: String -> Env CallEnv+envcall at = mkEnv (CallEnv at)++-- | Invoke the request. Return answer (normally, string representation of+-- JSON data). See documentation:+--+-- <http://vk.com/developers.php?oid=-1&p=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_API>+api :: Env CallEnv+    -- ^ the VKHS environment+    -> String+    -- ^ API method name+    -> [(String, String)]+    -- ^ API method parameters (name-value pairs)+    -> IO (Either String BS.ByteString)+api e mn mp =+  let uri = showUri $ (\f -> f $ toUri $ printf "https://api.vk.com/method/%s" mn) $+              set query $ bw params (("access_token",(access_token . sub) e):mp)+  in vk_curl_payload e (tell [CURLOPT_URL $ U.fromString uri])++