module Aws.Sqs.Commands.DeleteMessage 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
data DeleteMessage = DeleteMessage{
dmReceiptHandle :: M.ReceiptHandle,
dmQueueName :: M.QueueName
}deriving (Show)
data DeleteMessageResponse = DeleteMessageResponse{
} deriving (Show)
instance ResponseConsumer r DeleteMessageResponse where
type ResponseMetadata DeleteMessageResponse = SqsMetadata
responseConsumer _ = sqsXmlResponseConsumer parse
where
parse _ = do return DeleteMessageResponse {}
instance SignQuery DeleteMessage where
type Info DeleteMessage = SqsInfo
signQuery DeleteMessage {..} = sqsSignQuery SqsQuery {
sqsQueueName = Just dmQueueName,
sqsQuery = [("Action", Just "DeleteMessage"),
("ReceiptHandle", Just $ TE.encodeUtf8 $ M.printReceiptHandle dmReceiptHandle )]}
instance Transaction DeleteMessage DeleteMessageResponse