packages feed

hsparql 0.3.9 → 0.4.0

raw patch · 2 files changed

+14/−9 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Database.HSparql.QueryGenerator: class (TermLike a) => ObjectTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => ObjectTermLike a
- Database.HSparql.QueryGenerator: class (TermLike a) => PredicateTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => PredicateTermLike a
- Database.HSparql.QueryGenerator: class (TermLike a) => SubjectTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => SubjectTermLike a

Files

Database/HSparql/Connection.hs view
@@ -17,8 +17,9 @@     askQueryRaw,     updateQueryRaw,     describeQueryRaw,+     -- * parse query results-    structureContent+    structureContent,   ) where @@ -32,11 +33,13 @@ import qualified Data.Text as T import qualified Data.Text.Encoding as E import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy.Encoding as EL import Database.HSparql.QueryGenerator import Network.Connection (TLSSettings (..)) import Network.HTTP import Network.HTTP.Conduit import Network.HTTP.Types.Header+import qualified Network.HTTP.Types.URI as URI import Text.RDF.RDF4H.TurtleParser import Text.XML.Light import Text.XML.Light.Lexer (XmlSource)@@ -58,7 +61,7 @@  -- | Transform the 'String' result from the HTTP request into a two-dimensional --   table storing the bindings for each variable in each row.-structureContent :: XmlSource a => a -> Maybe [[BindingValue]]+structureContent :: (XmlSource a) => a -> Maybe [[BindingValue]] structureContent s =   do     e <- doc@@ -135,19 +138,21 @@  selectQueryRaw :: Database.HSparql.Connection.EndPoint -> String -> IO (Maybe [[BindingValue]]) selectQueryRaw ep q = do-  let uri = ep ++ "?" ++ urlEncodeVars [("query", q)]+  let contentParams = [("query", Just (T.encodeUtf8 (T.pack q)))]       h1 = (hAccept, "application/sparql-results+xml")       h2 = (hUserAgent, "hsparql-client")-  request' <- parseRequest uri+      h3 = (hContentType, "application/x-www-form-urlencoded")+  let request' = parseRequest_ ep   let request =         request'-          { method = "GET",-            requestHeaders = [h1, h2]+          { method = "POST",+            requestHeaders = [h1, h2, h3],+            requestBody = RequestBodyBS (URI.renderQuery False contentParams)           }   let settings = mkManagerSettings (TLSSettingsSimple True False False def) Nothing   manager <- liftIO $ newManager settings   resp <- httpLbs request manager-  return $ structureContent (LB.unpack (responseBody resp))+  return $ structureContent (EL.decodeUtf8 (responseBody resp))  askQueryRaw :: Database.HSparql.Connection.EndPoint -> String -> IO Bool askQueryRaw ep q = do@@ -204,7 +209,7 @@  -- | Takes a generated uri and makes simple HTTP request, --  asking for RDF N3 serialization. Returns either 'ParseFailure' or 'RDF'-httpCallForRdf :: RDF.Rdf a => String -> IO (Either RDF.ParseFailure (RDF.RDF a))+httpCallForRdf :: (RDF.Rdf a) => String -> IO (Either RDF.ParseFailure (RDF.RDF a)) httpCallForRdf uri = do   let h1 = (hUserAgent, "hsparql-client")       h2 = (hAccept, "text/turtle")
hsparql.cabal view
@@ -1,5 +1,5 @@ Name:          hsparql-Version:       0.3.9+Version:       0.4.0 Synopsis:      A SPARQL query generator and DSL, and a client to query a SPARQL server. Category:      Database Description: