=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Actions/GET.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Actions/GET.pm 2010/02/13 21:48:28 1.3 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Actions/GET.pm 2010/02/14 06:14:57 1.4 @@ -1,6 +1,6 @@ package Text::Todo::REST::API::Actions::GET; -# $AFresh1: GET.pm,v 1.2 2010/01/31 03:10:39 andrew Exp $ +# $AFresh1: GET.pm,v 1.3 2010/02/13 21:48:28 andrew Exp $ use warnings; use strict; @@ -31,8 +31,8 @@ } sub get_entry { - my ( $self, $todo, $options) = @_; - my $entry = $self->_which_key($options, 'entry'); + my ( $self, $todo, $options ) = @_; + my $entry = $self->_which_key( $options, 'entry' ); my $list = $self->get_list($todo); @@ -83,18 +83,22 @@ } sub get_tags { - my ( $self, $todo, $options) = @_; - my $tag = $self->_which_key($options, 'tags'); - return [ $todo->listtag($tag) ]; + my ( $self, $todo, $options ) = @_; + my $tag = $self->_which_key( $options, 'tags' ); + if ($tag) { + return [ $todo->listtag($tag) ]; + } + else { + return $todo->known_tags; + } } sub _which_key { - my ($self, $key, $type) = @_; + my ( $self, $key, $type ) = @_; - if ( !defined $key ) { - return $self->_fail(caller() . ' requires arguments'); - } - elsif ( ref $key eq 'ARRAY' ) { + return if !defined $key; + + if ( ref $key eq 'ARRAY' ) { $key = $key->[0]; } elsif ( ref $key eq 'HASH' ) { @@ -102,7 +106,8 @@ $key = $key->{$type}; } else { - return $self->_fail(caller() . ' requires key [' . $type . ']'); + return $self->_fail( + caller() . ' requires key [' . $type . ']' ); } }