=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Actions/GET.pm,v retrieving revision 1.3 retrieving revision 1.5 diff -u -r1.3 -r1.5 --- 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/16 04:09:53 1.5 @@ -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.4 2010/02/14 06:14:57 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,27 +83,26 @@ } 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' ) { - if ( exists $key->{$type} ) { - $key = $key->{$type}; - } - else { - return $self->_fail(caller() . ' requires key [' . $type . ']'); - } + $key = $key->{$type}; } return $key;