=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/01/24 04:38:21 1.11 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/01/26 03:51:49 1.12 @@ -1,6 +1,6 @@ package Text::Todo::REST::API; -# $AFresh1: API.pm,v 1.10 2010/01/24 04:17:39 andrew Exp $ +# $AFresh1: API.pm,v 1.11 2010/01/24 04:38:21 andrew Exp $ use warnings; use strict; @@ -98,7 +98,7 @@ if ( $options{action} eq 'entry' && @{ $options{args} } ) { $options{entry} = shift @{ $options{args} }; if ( @{ $options{args} } ) { - $options{action} = lc shift @{ $options{args} }; + $options{action} .= q{_} . lc shift @{ $options{args} }; } } @@ -190,6 +190,13 @@ return $self->_handle_action( 'GET', @args ); } + sub get_entry_done { + my ( $self, $todo, $key ) = @_; + my $entry = $self->get_entry( $todo, $key ); + + return $todo->list->[ $entry->{line} - 1 ]->done; + } + sub get_entry { my ( $self, $todo, $key ) = @_; @@ -197,11 +204,7 @@ return $self->fail("get_entry requires arguments"); } elsif ( ref $key eq 'ARRAY' ) { - my @entries; - foreach ( @{$key} ) { - push @entries, $self->get_entry($_); - } - return @entries; + return self->get_entry( $_->[0] ); } elsif ( ref $key eq 'HASH' ) { if ( exists $key->{entry} ) { @@ -214,26 +217,20 @@ my $list = $self->get_list($todo); - my $entry; if ( $key =~ /^[[:xdigit:]]{32}$/xms ) { my $search = lc $key; - ENTRY: foreach my $e ( @{$list} ) { + foreach my $e ( @{$list} ) { if ( $search eq $e->{md5} ) { - $entry = $e; - last ENTRY; + return $e; } } } elsif ( $key =~ /^\d+$/xms ) { - $entry = $list->[ $key - 1 ]; + return $list->[ $key - 1 ]; } - if ( !$entry ) { - return $self->fail("Unable to find entry!"); - } - - return $entry; + return $self->fail("Unable to find entry!"); } sub get_list {