-- | module: Network.Riak.CRDT.Request -- copyright: (c) 2016 Sentenai -- author: Antonio Nikishaev -- license: Apache -- module Network.Riak.CRDT.Request (get, counterUpdate, setUpdate, mapUpdate) where import Data.ByteString.Lazy (ByteString) import Network.Riak.CRDT.Ops import qualified Network.Riak.CRDT.Types as CRDT import qualified Network.Riak.Protocol.DtFetchRequest as DtFetch import qualified Network.Riak.Protocol.DtOp as DtOp import qualified Network.Riak.Protocol.DtUpdateRequest as DtUpdate import Network.Riak.Types counterUpdate :: [CRDT.CounterOp] -> BucketType -> Bucket -> Key -> DtUpdate.DtUpdateRequest counterUpdate ops = update (counterUpdateOp ops) setUpdate :: [CRDT.SetOp] -> BucketType -> Bucket -> Key -> DtUpdate.DtUpdateRequest setUpdate ops = update (setUpdateOp ops) mapUpdate :: [CRDT.MapOp] -> BucketType -> Bucket -> Key -> DtUpdate.DtUpdateRequest mapUpdate ops = update (mapUpdateOp ops) update :: DtOp.DtOp -> BucketType -> Bucket -> Key -> DtUpdate.DtUpdateRequest update op t b k = DtUpdate.DtUpdateRequest { DtUpdate.bucket = b, DtUpdate.key = Just k, DtUpdate.type' = t, DtUpdate.context = Nothing, DtUpdate.op = op, DtUpdate.w = Nothing, DtUpdate.dw = Nothing, DtUpdate.pw = Nothing, DtUpdate.return_body = Nothing, DtUpdate.timeout = Nothing, DtUpdate.sloppy_quorum = Nothing, DtUpdate.n_val = Nothing, DtUpdate.include_context = Nothing } get :: ByteString -> ByteString -> ByteString -> DtFetch.DtFetchRequest get t b k = DtFetch.DtFetchRequest { DtFetch.bucket = b, DtFetch.key = k, DtFetch.type' = t, DtFetch.r = Nothing, DtFetch.pr = Nothing, DtFetch.basic_quorum = Nothing, DtFetch.notfound_ok = Nothing, DtFetch.timeout = Nothing, DtFetch.sloppy_quorum = Nothing, DtFetch.n_val = Nothing, DtFetch.include_context = Nothing }