version 1.10, 2010/01/24 04:17:39 |
version 1.11, 2010/01/24 04:38:21 |
|
|
package Text::Todo::REST::API; |
package Text::Todo::REST::API; |
|
|
# $AFresh1: API.pm,v 1.9 2010/01/23 07:15:40 andrew Exp $ |
# $AFresh1: API.pm,v 1.10 2010/01/24 04:17:39 andrew Exp $ |
|
|
use warnings; |
use warnings; |
use strict; |
use strict; |
|
|
|
|
foreach my $class ($self) { |
foreach my $class ($self) { |
if ( $class->can($method) ) { |
if ( $class->can($method) ) { |
my @data = $class->$method( $todo, \%options ); |
return Text::Todo::REST::API::Response->new( |
|
{ type => $options{action}, |
return Text::Todo::REST::API::Response->new({ |
format => $self->_format, |
type => $options{action}, |
data => $class->$method( $todo, \%options ), |
format => $self->_format, |
} |
data => \@data, |
); |
}); |
|
} |
} |
} |
} |
|
|
|
|
} |
} |
} |
} |
|
|
my @list = $self->get_list($todo); |
my $list = $self->get_list($todo); |
|
|
my $entry; |
my $entry; |
if ( $key =~ /^[[:xdigit:]]{32}$/xms ) { |
if ( $key =~ /^[[:xdigit:]]{32}$/xms ) { |
my $search = lc $key; |
my $search = lc $key; |
|
|
ENTRY: foreach my $e (@list) { |
ENTRY: foreach my $e ( @{$list} ) { |
if ( $search eq $e->{md5} ) { |
if ( $search eq $e->{md5} ) { |
$entry = $e; |
$entry = $e; |
last ENTRY; |
last ENTRY; |
|
|
} |
} |
} |
} |
elsif ( $key =~ /^\d+$/xms ) { |
elsif ( $key =~ /^\d+$/xms ) { |
$entry = $list[ $key - 1 ]; |
$entry = $list->[ $key - 1 ]; |
} |
} |
|
|
if ( !$entry ) { |
if ( !$entry ) { |
|
|
my ( $self, $todo ) = @_; |
my ( $self, $todo ) = @_; |
|
|
my $line = 1; |
my $line = 1; |
return map ( { |
my @list = map ( { |
line => $line++, |
line => $line++, |
md5 => md5_hex( $_->text ), |
md5 => md5_hex( $_->text ), |
text => $_->text, |
text => $_->text, |
}, |
}, |
$todo->list ); |
$todo->list ); |
|
return \@list; |
} |
} |
|
|
sub get_files { |
sub get_files { |
|
|
my @files = grep {m/$file_regex/xms} readdir $dh; |
my @files = grep {m/$file_regex/xms} readdir $dh; |
closedir $dh; |
closedir $dh; |
|
|
return @files; |
return \@files; |
} |
} |
|
|
sub get_tags { |
sub get_tags { |
my ( $self, $todo, $tag ) = @_; |
my ( $self, $todo, $tag ) = @_; |
return $todo->listtag($tag); |
return [ $todo->listtag($tag) ]; |
} |
} |
|
|
sub POST { |
sub POST { |