module Aws.Sqs.Commands.ChangeMessageVisibility where
import Aws.Response
import Aws.Sqs.Info
import Aws.Sqs.Metadata
import qualified Aws.Sqs.Model as M
import Aws.Sqs.Query
import Aws.Sqs.Response
import Aws.Signature
import Aws.Transaction
import qualified Data.Text.Encoding as TE
import qualified Data.ByteString.Char8 as B
data ChangeMessageVisibility = ChangeMessageVisibility {
cmvReceiptHandle :: M.ReceiptHandle,
cmvVisibilityTimeout :: Int,
cmvQueueName :: M.QueueName
}deriving (Show)
data ChangeMessageVisibilityResponse = ChangeMessageVisibilityResponse{
} deriving (Show)
instance ResponseConsumer r ChangeMessageVisibilityResponse where
type ResponseMetadata ChangeMessageVisibilityResponse = SqsMetadata
responseConsumer _ = sqsXmlResponseConsumer parse
where
parse _ = do return ChangeMessageVisibilityResponse{}
instance SignQuery ChangeMessageVisibility where
type Info ChangeMessageVisibility = SqsInfo
signQuery ChangeMessageVisibility {..} = sqsSignQuery SqsQuery {
sqsQueueName = Just cmvQueueName,
sqsQuery = [("Action", Just "ChangeMessageVisibility"),
("ReceiptHandle", Just $ TE.encodeUtf8 $ M.printReceiptHandle cmvReceiptHandle),
("VisibilityTimeout", Just $ B.pack $ show cmvVisibilityTimeout)]}
instance Transaction ChangeMessageVisibility ChangeMessageVisibilityResponse