module Network.Riak.Request
(
PingRequest
, ping
, GetClientIDRequest
, getClientID
, GetServerInfoRequest
, getServerInfo
, Get.GetRequest
, get
, Put.PutRequest
, put
, Del.DeleteRequest
, delete
, Link.Link
, link
, ListBucketsRequest
, listBuckets
, Keys.ListKeysRequest
, listKeys
, GetBucket.GetBucketRequest
, getBucket
, SetBucket.SetBucketRequest
, setBucket
, MapReduceRequest
, mapReduce
) where
import Control.Applicative ((<$>))
import Network.Riak.Protocol.BucketProps
import Network.Riak.Protocol.Content
import Network.Riak.Protocol.GetClientIDRequest
import Network.Riak.Protocol.GetServerInfoRequest
import Network.Riak.Protocol.ListBucketsRequest
import Network.Riak.Protocol.MapReduceRequest
import Network.Riak.Protocol.PingRequest
import Network.Riak.Types.Internal hiding (MessageTag(..))
import Network.Riak.Escape (escape)
import qualified Network.Riak.Protocol.DeleteRequest as Del
import qualified Network.Riak.Protocol.Link as Link
import qualified Network.Riak.Protocol.GetBucketRequest as GetBucket
import qualified Network.Riak.Protocol.GetRequest as Get
import qualified Network.Riak.Protocol.ListKeysRequest as Keys
import qualified Network.Riak.Protocol.PutRequest as Put
import qualified Network.Riak.Protocol.SetBucketRequest as SetBucket
ping :: PingRequest
ping = PingRequest
getClientID :: GetClientIDRequest
getClientID = GetClientIDRequest
getServerInfo :: GetServerInfoRequest
getServerInfo = GetServerInfoRequest
get :: Bucket -> Key -> R -> Get.GetRequest
get bucket key r = Get.GetRequest { Get.bucket = escape bucket
, Get.key = escape key
, Get.r = fromQuorum r
, Get.pr = Nothing
, Get.basic_quorum = Nothing
, Get.notfound_ok = Nothing
, Get.if_modified = Nothing
, Get.head = Nothing
, Get.deletedvclock = Nothing
}
put :: Bucket -> Key -> Maybe VClock -> Content -> W -> DW -> Bool
-> Put.PutRequest
put bucket key mvclock cont mw mdw returnBody =
Put.PutRequest (escape bucket) (Just $ escape key) (fromVClock <$> mvclock)
cont (fromQuorum mw) (fromQuorum mdw) (Just returnBody)
Nothing Nothing Nothing Nothing
link :: Bucket -> Key -> Tag -> Link.Link
link bucket key = Link.Link (Just (escape bucket)) (Just (escape key)) . Just
delete :: Bucket -> Key -> RW -> Del.DeleteRequest
delete bucket key rw = Del.DeleteRequest (escape bucket) (escape key)
(fromQuorum rw) Nothing Nothing Nothing
Nothing Nothing Nothing
listBuckets :: ListBucketsRequest
listBuckets = ListBucketsRequest
listKeys :: Bucket -> Keys.ListKeysRequest
listKeys = Keys.ListKeysRequest . escape
getBucket :: Bucket -> GetBucket.GetBucketRequest
getBucket = GetBucket.GetBucketRequest . escape
setBucket :: Bucket -> BucketProps -> SetBucket.SetBucketRequest
setBucket = SetBucket.SetBucketRequest . escape
mapReduce :: Job -> MapReduceRequest
mapReduce (JSON bs) = MapReduceRequest bs "application/json"
mapReduce (Erlang bs) = MapReduceRequest bs "application/x-erlang-binary"