X-Git-Url: https://git.decadent.org.uk/gitweb/?p=maypole.git;a=blobdiff_plain;f=lib%2FMaypole%2FManual%2FRequest.pod;h=0aa333a6c22be22cf3ea03f2a54bff9336b574b2;hp=f9788bd4dd90e4aa9d0c40f8336bc0cdeaeaf0f5;hb=d2c49720907258b149801f7f741a74a3bc3f7327;hpb=6b6a76768957656f96141337635149f5eb7f5aa4 diff --git a/lib/Maypole/Manual/Request.pod b/lib/Maypole/Manual/Request.pod index f9788bd..0aa333a 100644 --- a/lib/Maypole/Manual/Request.pod +++ b/lib/Maypole/Manual/Request.pod @@ -602,16 +602,21 @@ to the original C routine. For instance, in this method, we use a L object to fill in some fields of a database row based on an ISBN: + use Net::Amazon; + my $amazon = Net::Amazon->new(token => 'YOUR_AMZN_TOKEN'); + + ... + sub create_from_isbn :Exported { my ($self, $r) = @_; - my $response = $ua->search(asin => $r->params->{isbn}); - my ($prop) = $response->properties; + my $book_info = $amazon->search(asin => $r->params->{isbn})->properties; + # Rewrite the CGI parameters with the ones from Amazon - @{$r->params->{qw(title publisher author year)} = - ($prop->title, - $prop->publisher, - (join "/", $prop->authors()), - $prop->year()); + $r->params->{title} = $book_info->title; + $r->params->{publisher} = $book_info->publisher; + $r->params->{year} = $book_info->year; + $r->params->{author} = join('and', $book_info->authors()); + # And jump to the usual edit/create routine $self->do_edit($r); }