package WebService::Mandrill; use 5.010; use Any::Moose; with 'Web::API'; =head1 NAME WebService::Mandrill - an interface to mandrillapp.com's RESTful Web API using Web::API =head1 VERSION Version 0.1.1 =cut our $VERSION = '0.1'; has 'commands' => ( is => 'rw', default => sub { { ping => { path => 'users/ping' }, ping2 => { path => 'users/ping2' }, user_info => { path => 'users/info' }, user_senders => { path => 'users/senders' }, send => { path => 'messages/send', mandatory => [ 'subject', 'from_email', 'to' ], wrapper_key => 'message', }, send_raw => { path => 'messages/send-raw', mandatory => ['raw_message'], wrapper_key => 'message', }, parse => { path => 'messages/parse', mandatory => ['raw_message'], }, search => { path => 'messages/search' }, tags => { path => 'tags/list' }, tag => { path => 'tags/info', mandatory => ['tag'], }, delete_tag => { path => 'tags/delete', mandatory => ['tag'], }, tag_history => { path => 'tags/time-series', mandatory => ['tag'], }, all_tag_history => { path => 'tags/all-time-series', mandatory => ['tag'], }, rejects => { path => 'rejects/list' }, delete_reject => { path => 'rejects/delete', mandatory => ['email'] }, senders => { path => 'senders/list' }, sender_domains => { path => 'senders/domains' }, sender => { path => 'senders/info', mandatory => ['address'], }, sender_history => { path => 'senders/time-series', mandatory => ['address'], }, urls => { path => 'urls/list' }, search_urls => { path => 'urls/search', mandatory => ['q'], }, url_history => { path => 'urls/time-series', mandatory => ['url'], }, webhooks => { path => 'webhooks/list' }, webhook => { path => 'webhooks/info', mandatory => ['id'], }, add_webhook => { path => 'webhooks/add', mandatory => ['url'], }, update_webhook => { path => 'webhooks/update', mandatory => [ 'id', 'url' ], }, delete_webhook => { path => 'webhooks/delete', mandatory => ['id'], }, inbound_domains => { path => 'inbound/domains' }, inbound_routes => { path => 'inbound/routes', mandatory => ['domain'], }, inbound_raw => { path => 'inbound/send-raw', mandatory => ['raw_message'], }, }; }, ); =head1 SYNOPSIS Please refer to the API documentation at L use WebService::Mandrill; my $mandrill = WebService::Mandrill->new( debug => 1, api_key => '12345678-9abc-def0-1234-56789abcdef0', ); my $response = $mandrill->send( subject => "h4x0r", from_email => "mail@example.com", text => "what zee fug", track_opens => 1, track_clicks => 1, to => [ { email => 'mail@example.com' } ], ); =head1 SUBROUTINES/METHODS =head2 ping =head2 ping2 =head2 user_info =head2 user_senders =head2 send =head2 send_raw =head2 parse =head2 search =head2 tags =head2 tag =head2 delete_tag =head2 tag_history =head2 all_tag_history =head2 rejects =head2 delete_reject =head2 senders =head2 sender =head2 sender_domains =head2 sender_history =head2 urls =head2 search_urls =head2 url_history =head2 webhooks =head2 webhook =head2 add_webhook =head2 update_webhook =head2 delete_webhook =head2 inbound_domains =head2 inbound_routes =head2 inbound_raw =head1 INTERNALS =cut sub commands { my ($self) = @_; return $self->commands; } =head2 BUILD basic configuration for the client API happens usually in the BUILD method when using Web::API =cut sub BUILD { my ($self) = @_; $self->user_agent(__PACKAGE__ . ' ' . $VERSION); $self->content_type('application/json'); $self->default_method('POST'); $self->extension('json'); $self->base_url('https://mandrillapp.com/api/1.0'); $self->auth_type('hash_key'); return $self; } =head1 AUTHOR Tobias Kirschstein, C<< >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc WebService::Mandrill You can also look for information at: =over 4 =item * RT: CPAN's request tracker (report bugs here) L =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * Search CPAN L =back =head1 LICENSE AND COPYRIGHT Copyright 2013 Tobias Kirschstein. This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. =cut 1; # End of WebService::Mandrill