Changeset 56

Show
Ignore:
Timestamp:
02/18/06 11:00:06 (3 years ago)
Author:
miya
Message:

patch from Brian Cassidy. Thanks, Brian!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • atom_client/trunk/lib/AtomClient.pm

    r55 r56  
    1818    my ( $self, $c ) = @_; 
    1919 
    20     my %method_map = ( 
    21                   GET    => 'getFeed', 
    22                   POST   => 'createEntry', 
    23                   PUT    => 'updateEntry', 
    24                   DELETE => 'deleteEntry', 
    25               ); 
    26  
    27     my $method = $method_map{$c->req->param('request_method')}; 
     20    my $method = $c->req->param('request_method'); 
    2821 
    2922    my $api = My::XML::Atom::Client->new; 
    30     $api->username($c->req->param('username')); 
    31     $api->password($c->req->param('password')); 
    3223 
    33     my $entry = XML::Atom::Feed->new(\$c->req->param('request_content')); 
     24    my( $username, $password ) = map { $c->req->param( $_ ) } qw( username password ); 
     25 
     26    if( $username and $password ) { 
     27            $api->username( $username ); 
     28            $api->password( $password ); 
     29    } 
     30 
     31    my $content = $c->req->param('request_content'); 
     32    my $entry   = $content ? XML::Atom::Entry->new( \$content ) : undef; 
    3433    my ($feed, $request, $response) = $api->$method( $c->req->param('resource_uri'), $entry ); 
    3534 
  • atom_client/trunk/lib/My/XML/Atom/Client.pm

    r55 r56  
    1818 
    1919    return ($feed, $req, $res); 
     20 
     21} 
     22 
     23sub getEntry { 
     24    my $client = shift; 
     25    my($uri) = @_; 
     26    return $client->error("Must pass a URI before retrieving entry") 
     27        unless $uri; 
     28    my $req = HTTP::Request->new(GET => $uri); 
     29    my $res = $client->make_request($req); 
     30    #return $client->error("Error on GET $uri: " . $res->status_line) 
     31    #    unless $res->code == 200; 
     32    my $entry = XML::Atom::Entry->new(Stream => \$res->content) 
     33        or return $client->error(XML::Atom::Entry->errstr); 
     34 
     35    return ($entry, $req, $res); 
    2036 
    2137} 
  • atom_client/trunk/root/default.tt

    r53 r56  
    2727<label>Request Method: </label> 
    2828<select name="request_method"> 
    29 <option>GET</option> 
    30 <option>POST</option> 
    31 <option>PUT</option> 
    32 <option>DELETE</option> 
     29<option value="getFeed">GET(getFeed)</option> 
     30<option value="getEntry">GET(getEntry)</option> 
     31<option value="createEntry">POST(createEntry)</option> 
     32<option value="updateEntry">PUT(updateEntry)</option> 
     33<option value="deleteEntry">DELETE(deleteEntry)</option> 
    3334</select> 
    3435<br />