bolt-0.3.2.0: lib/Database/Bolt/Protocol/Ver1.hs
{-# LANGUAGE OverloadedStrings #-}
module Database.Bolt.Protocol.Ver1 (
init,
exec,
AuthToken (..),
open,
Transaction,
runTransaction,
cypher,
object,
(#=),
(#:),
(#:?),
) where
import Control.Monad
import Prelude hiding (init)
import Database.Bolt.Exception
import Database.Bolt.Protocol.Ver1.Message (AuthToken (..))
import Database.Bolt.Protocol.Ver1.Request (exec, init)
import Database.Bolt.Protocol.Ver1.Transaction (Transaction, cypher, runTransaction)
import Database.Bolt.Protocol.Ver1.Types
import Database.Bolt.Transport
useragent :: UserAgent
useragent = "haskell-bolt/0.0"
open :: (Transport t) => (a -> IO t) -> a -> AuthToken -> IO t
open c a auth = do
conn <- c a
agreed <- handshake conn (OfferProtocols 1 noProto noProto noProto)
unless (agreed == 1) $
protocolErr "Can't negotiate protocol version"
init conn useragent auth
return conn