=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- 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/17 23:48:06 1.3 @@ -1,6 +1,6 @@ package Text::Todo::REST::API; -# $AFresh1$ +# $AFresh1: API.pm,v 1.2 2010/01/17 23:15:00 andrew Exp $ use warnings; use strict; @@ -140,17 +140,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 +231,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 ) = @_;