1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/rackspace/requests/queues/delete_message.rb
Paul Thornthwaite 6716f37c5f Replace deprecated Hash methods
Done with `rubocop --auto-correct --only DeprecatedHashMethods`
2014-05-26 16:22:08 +01:00

62 lines
2.2 KiB
Ruby

module Fog
module Rackspace
class Queues
class Real
# This operation immediately deletes the specified message.
# @note If you do not specify claim_id, but the message is claimed, the operation fails. You can only delete claimed messages by providing an appropriate claim_id.
#
# @param [String] queue_name Specifies the name of the queue.
# @param [String] message_id Specifies the message ID.
# @param [Hash] options
# @option options [Integer] :claim_id - Identifies the claim.
# @return [Excon::Response] response
# @raise [Fog::Rackspace::Queues::NotFound] - HTTP 404
# @raise [Fog::Rackspace::Queues::BadRequest] - HTTP 400
# @raise [Fog::Rackspace::Queues::InternalServerError] - HTTP 500
# @raise [Fog::Rackspace::Queues::ServiceError]
# @see http://docs.rackspace.com/queues/api/v1.0/cq-devguide/content/DELETE_deleteMessage__version__queues__queue_name__messages__messageId__message-operations-dle001.html
def delete_message(queue_name, message_id, options = {})
query = {}
query[:claim_id] = options[:claim_id] if options.key? :claim_id
request(
:expects => 204,
:method => 'DELETE',
:path => "queues/#{queue_name}/messages/#{message_id}",
:query => query
)
end
end
class Mock
def delete_message(queue_name, message_id, options = {})
queue = mock_queue!(queue_name)
claim_id = options[:claim_id]
message = queue.messages.find { |m| m.id == message_id }
perform_delete = true
if message && message.claimed?
unless message.claim.id == claim_id
# Currently returns a 204 without deleting!
perform_delete = false
end
else
if claim_id
# Currently returns a 204 without deleting!
perform_delete = false
end
end
if perform_delete
queue.messages.reject! { |m| m.id == message_id }
end
response = Excon::Response.new
response.status = 204
response
end
end
end
end
end