Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# LANGUAGE DeriveGeneric #-}
- {-# LANGUAGE OverloadedStrings #-}
- module Wiki (getArticles) where
- import Network.HTTP.Conduit (simpleHttp, parseRequest, httpLbs, newManager, tlsManagerSettings, responseBody, method)
- import Network.HTTP.Simple (setRequestHeader, getResponseBody, getResponseStatus, setRequestBodyJSON)
- import qualified Data.ByteString.Lazy.UTF8 as UBS
- import qualified Data.ByteString.Lazy as LBS
- import qualified Data.ByteString.Char8 as CBS
- import qualified Data.ByteString as BS
- import qualified Data.Text.Lazy.Encoding as DTLE
- import qualified Data.Text.Lazy
- import qualified Data.Text
- import qualified System.Environment
- import Network.HTTP.Types.Header (hAuthorization)
- import Network.HTTP.Types.Method ( StdMethod( POST ) )
- import Control.Monad.Trans.Resource (runResourceT)
- graphqlApiUrl :: String
- graphqlApiUrl = "secret ;)"
- testUrl = "https://enudsbs2ojtp.x.pipedream.net"
- hAuthorizationValue :: String -> BS.ByteString
- hAuthorizationValue token = CBS.pack ("Bearer " ++ token)
- requestBody :: String
- requestBody = "{\"operationName\":null,\"variables\":{},\"query\":\"{\n pages {\n list {\n title\n }\n }\n}\n\"}"
- getArticles :: IO ()
- getArticles = do
- {- https://hackage.haskell.org/package/http-conduit-2.3.8/docs/Network-HTTP-Conduit.html#v:httpLbs -}
- token <- System.Environment.getEnv "WIKI_TOKEN"
- initReq <- parseRequest testUrl
- let req = initReq
- { method = "POST"
- }
- let finalReq = setRequestBodyJSON requestBody req
- manager <- newManager tlsManagerSettings
- res <- httpLbs (setRequestHeader hAuthorization [hAuthorizationValue token] finalReq) manager
- print (getResponseBody res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement