=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm,v retrieving revision 1.2 retrieving revision 1.4 diff -u -r1.2 -r1.4 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/01/17 23:15:00 1.2 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/01/18 00:30:42 1.4 @@ -1,6 +1,6 @@ package Text::Todo::REST::API; -# $AFresh1$ +# $AFresh1: API.pm,v 1.3 2010/01/17 23:48:06 andrew Exp $ use warnings; use strict; @@ -130,6 +130,8 @@ return 1; } + sub content_type { return }; + sub Dump { my ($self) = @_; return $self->fail( 'Unable to Dump [' . $self->_action . ']' ); @@ -140,17 +142,23 @@ return $self->fail( 'Unable to Load [' . $self->_action . ']' ); } - sub GET { - my ( $self, $params ) = @_; + sub _handle_action { + my ( $self, $method, $params ) = @_; - if ( exists $action_handlers{GET}{ $self->_action } ) { - my $method = $action_handlers{GET}{ $self->_action }; - return $self->$method( $self->_args, $params ); + if ( exists $action_handlers{$method}{ $self->_action } ) { + my $a = $action_handlers{$method}{ $self->_action }; + return $self->$a( $self->_args, $params ); } - return $self->fail( 'Unable to handle GET [' . $self->_action . ']' ); + return $self->fail( + 'Unable to handle ' . $method . ' [' . $self->_action . ']' ); } + sub GET { + my ( $self, @args ) = @_; + return $self->_handle_action( 'GET', @args ); + } + sub get_entry { my ( $self, $key ) = @_; @@ -225,9 +233,20 @@ return $todo_of{$ident}->listtag($tag); } - sub POST { croak "Unsupported [POST]" } - sub PUT { croak "Unsupported [PUT]" } - sub DELETE { croak "Unsupported [DELETE]" } + sub POST { + my ( $self, @args ) = @_; + return $self->_handle_action( 'POST', @args ); + } + + sub PUT { + my ( $self, @args ) = @_; + return $self->_handle_action( 'PUT', @args ); + } + + sub DELETE { + my ( $self, @args ) = @_; + return $self->_handle_action( 'DELETE', @args ); + } sub fail { my ( $self, @message ) = @_;