Refactor _find_and_delete_message_connection as _find_message_connection:

Not all commands need the delete part, touch_msg for example

Signed-off-by: Pedro Melo <melo@simplicidade.org>
This commit is contained in:
Pedro Melo
2015-01-02 12:46:23 +00:00
parent 681939809d
commit f56271c965

View File

@@ -71,16 +71,16 @@ sub _identified {
sub mark_as_done_msg { sub mark_as_done_msg {
my ($self, $msg) = @_; my ($self, $msg) = @_;
my $conn = $self->_find_and_delete_message_connection($msg); my $conn = $self->_find_message_connection($msg, {delete => 1});
$conn->mark_as_done_msg($msg); $conn->mark_as_done_msg($msg);
return 1; return 1;
} }
sub requeue_msg { sub requeue_msg {
my ($self, $msg, $delay) = @_; my ($self, $msg, $delay) = @_;
my $conn = $self->_find_and_delete_message_connection($msg); my $conn = $self->_find_message_connection($msg, {delete => 1});
$conn->requeue_msg($msg, $delay); $conn->requeue_msg($msg, $delay);
return 1; return 1;
@@ -89,23 +89,23 @@ sub requeue_msg {
sub touch_msg { sub touch_msg {
my ($self, $msg) = @_; my ($self, $msg) = @_;
my $conn = $self->_find_and_delete_message_connection($msg); my $conn = $self->_find_message_connection($msg);
$conn->touch_msg($msg); $conn->touch_msg($msg);
return 1; return 1;
} }
*touch_message = \&touch_msg; *touch_message = \&touch_msg;
sub _find_and_delete_message_connection { sub _find_message_connection {
my ($self, $msg) = @_; my ($self, $msg, $opts) = @_;
$opts = {} unless ref $opts;
my $id = ref($msg) ? $msg->{message_id} : $msg; my $id = ref($msg) ? $msg->{message_id} : $msg;
my $conn = delete($self->{routing}->{$id}); my $conn = $self->{routing}{$id};
delete($self->{routing}{$id}) if $opts->{delete};
if ( !$conn ) {
croak "WARN: Could not find the connection to route msg $id"; croak "WARN: Could not find the connection to route msg $id" unless $conn;
}
return $conn; return $conn;
} }