view release on metacpan or search on metacpan
CONTRIBUTING.md view on Meta::CPAN
continuing:
```
$ cpanm Dist::Zilla
```
To install the required prequisite packages, run the following set of
commands:
```
$ dzil authordeps --missing | cpanm
$ dzil listdeps --author --missing | cpanm
```
The distribution can be tested like so:
```
$ dzil test
```
To run the full set of tests (including author and release-process tests),
add the `--author` and `--release` options:
```
$ dzil test --author --release
```
lib/API/MailboxOrg/API/Spamprotect.pm
lib/API/MailboxOrg/API/Test.pm
lib/API/MailboxOrg/API/Utils.pm
lib/API/MailboxOrg/API/Validate.pm
lib/API/MailboxOrg/API/Videochat.pm
lib/API/MailboxOrg/APIBase.pm
lib/API/MailboxOrg/Types.pm
perlcritic.rc
t/001_base.t
t/002_hello-world.t
t/author-critic.t
t/author-no-bom.t
t/author-no-tabs.t
t/author-pod-coverage.t
t/author-pod-syntax.t
t/types/001_hashref_restricted.t
t/types/002_boolean.t
{
"abstract" : "Perl library to work with the API for the Mailbox.org API",
"author" : [
"Renee Baecker <reneeb@cpan.org>"
],
"dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010",
"license" : [
"artistic_2"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : 2
---
abstract: 'Perl library to work with the API for the Mailbox.org API'
author:
- 'Renee Baecker <reneeb@cpan.org>'
build_requires:
Pod::Coverage::TrustPod: '0'
Test::Exception: '0'
Test::More: '0'
Test::RequiresInternet: '0'
Test::Spec: '0'
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
(optional) A Mojo::UserAgent compatible user agent. By default a new
object of Mojo::UserAgent is created.
* host
(optional) This is the URL to Mailbox.org API. Defaults to
https://api.mailbox.org
* token
After authenticating, this will be the auth id.
METHODS
* account
* backup
* base
* blacklist
name = API-MailboxOrg
author = Renee Baecker <reneeb@cpan.org>
license = Artistic_2_0
copyright_holder = Renee Baecker
copyright_year = 2022
version = 1.0.2
; in dist.ini
[@PERLSRVDE]
; we are using an internal git repository
repository_type = github
repository_path = perlservices/API-MailboxOrg
lib/API/MailboxOrg.pm view on Meta::CPAN
I<(optional)> A C<Mojo::UserAgent> compatible user agent. By default a new object of C<Mojo::UserAgent>
is created.
=item * host
I<(optional)> This is the URL to Mailbox.org API. Defaults to C<https://api.mailbox.org>
=item * token
After authenticating, this will be the auth id.
=back
=head1 METHODS
=over 4
=item * account
=item * backup
lib/API/MailboxOrg/API/Account.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.del', \%params, \%opt );
}
sub get ($self, %params) {
my $validator = $validators{'get'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.get', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.list', \%params, \%opt );
}
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Backup.pm view on Meta::CPAN
},
),
);
sub backup_import ($self, %params) {
my $validator = $validators{'backup_import'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.backup.import', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.backup.list', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Base.pm view on Meta::CPAN
extends 'API::MailboxOrg::APIBase';
with 'MooX::Singleton';
use feature 'signatures';
no warnings 'experimental::signatures';
our $VERSION = '1.0.2'; # VERSION
my %validators = (
'auth' => validation_for(
params => {
user => { type => Str, optional => 0 },
pass => { type => Str, optional => 0 },
},
),
'search' => validation_for(
params => {
query => { type => Str, optional => 0 },
},
),
);
sub auth ($self, %params) {
my $validator = $validators{'auth'};
%params = $validator->(%params) if $validator;
my %opt = ();
return $self->_request( 'auth', \%params, \%opt );
}
sub deauth ($self, %params) {
my $validator = $validators{'deauth'};
%params = $validator->(%params) if $validator;
my %opt = ();
return $self->_request( 'deauth', \%params, \%opt );
}
sub search ($self, %params) {
my $validator = $validators{'search'};
%params = $validator->(%params) if $validator;
my %opt = ();
return $self->_request( 'search', \%params, \%opt );
}
lib/API/MailboxOrg/API/Base.pm view on Meta::CPAN
my $user = '1234abc';
my $password = '1234abc';
my $api = API::MailboxOrg->new(
user => $user,
password => $password,
);
=head1 METHODS
=head2 auth
Performs a login (Authentication)
Parameters:
=over 4
=item * user
=item * pass
=back
returns: array
$api->base->auth(%params);
=head2 deauth
Performs a logout
returns: boolean
$api->base->deauth(%params);
=head2 search
Searches in accounts, domains and e-mails
Parameters:
=over 4
=item * query
lib/API/MailboxOrg/API/Blacklist.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.blacklist.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.blacklist.del', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.blacklist.list', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Capabilities.pm view on Meta::CPAN
},
),
);
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.capabilities.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Context.pm view on Meta::CPAN
},
),
);
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'context.list', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Domain.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.del', \%params, \%opt );
}
sub get ($self, %params) {
my $validator = $validators{'get'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.get', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.list', \%params, \%opt );
}
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Hello.pm view on Meta::CPAN
my %validators = (
);
sub innerworld ($self, %params) {
my $validator = $validators{'innerworld'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'hello.innerworld', \%params, \%opt );
}
sub world ($self, %params) {
my $validator = $validators{'world'};
%params = $validator->(%params) if $validator;
my %opt = ();
lib/API/MailboxOrg/API/Invoice.pm view on Meta::CPAN
my %opt = ();
return $self->_request( 'account.invoice.get', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'account.invoice.list', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Mail.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.del', \%params, \%opt );
}
sub get ($self, %params) {
my $validator = $validators{'get'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.get', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.list', \%params, \%opt );
}
sub register ($self, %params) {
my $validator = $validators{'register'};
%params = $validator->(%params) if $validator;
my %opt = ();
return $self->_request( 'mail.register', \%params, \%opt );
}
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Mailinglist.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mailinglist.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mailinglist.del', \%params, \%opt );
}
sub get ($self, %params) {
my $validator = $validators{'get'};
%params = $validator->(%params) if $validator;
my %opt = ();
return $self->_request( 'mailinglist.get', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mailinglist.list', \%params, \%opt );
}
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mailinglist.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Spamprotect.pm view on Meta::CPAN
},
),
);
sub get ($self, %params) {
my $validator = $validators{'get'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.spamprotect.get', \%params, \%opt );
}
sub set ($self, %params) {
my $validator = $validators{'set'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.spamprotect.set', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Validate.pm view on Meta::CPAN
},
),
);
sub spf ($self, %params) {
my $validator = $validators{'spf'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'domain.validate.spf', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/API/Videochat.pm view on Meta::CPAN
},
),
);
sub add ($self, %params) {
my $validator = $validators{'add'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.videochat.add', \%params, \%opt );
}
sub del ($self, %params) {
my $validator = $validators{'del'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.videochat.del', \%params, \%opt );
}
sub list ($self, %params) {
my $validator = $validators{'list'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.videochat.list', \%params, \%opt );
}
sub update ($self, %params) {
my $validator = $validators{'update'};
%params = $validator->(%params) if $validator;
my %opt = (needs_auth => 1);
return $self->_request( 'mail.videochat.update', \%params, \%opt );
}
1;
__END__
=pod
lib/API/MailboxOrg/APIBase.pm view on Meta::CPAN
my $rpc_data = {
jsonrpc => $self->json_rpc,
id => $request_id++,
method => $method,
};
$rpc_data->{params} = $params->%* ? $params : "";
my $api = $self->api;
if ( $opts->{needs_auth} && !$api->token ) {
my $auth_result = $api->base->auth(
user => $api->user,
pass => $api->password,
);
my $token = ref $auth_result ?
$auth_result->{session} :
croak 'Could not login: ' . $auth_result;
$api->_set_token( $token );
}
my %header = ( 'Content-Type' => 'application/json' );
$header{'HPLS-AUTH'} = $api->token if $api->token;
my $uri = join '/',
$api->host,
$api->base_uri;
lib/API/MailboxOrg/APIBase.pm view on Meta::CPAN
=item * api
I<mandatory> An L<API::MailboxOrg> object.
=back
=head1 METHODS
=head2 request
This method builds the API request. If a method is called that needs authentification
and there's no session, then the C<auth> method is called.
=head1 AUTHOR
Renee Baecker <reneeb@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2022 by Renee Baecker.
This is free software, licensed under:
t/001_base.t view on Meta::CPAN
use Types::Standard;
diag( "Types::Standard: " . Types::Standard->VERSION);
my $base = "API::MailboxOrg";
my $methods = {
$base => [qw/user password client token host base_uri/],
$base . '::APIBase' => [qw/_request/],
$base . '::API::Account' => [qw/add del get set list/],
$base . '::API::Backup' => [qw/backup_import list/],
$base . '::API::Base' => [qw/auth deauth search/],
$base . '::API::Blacklist' => [qw/add del list/],
$base . '::API::Capabilities' => [qw/set/],
$base . '::API::Context' => [qw/list/],
$base . '::API::Domain' => [qw/add del get list set/],
$base . '::API::Hello' => [qw/innerworld world/],
$base . '::API::Invoice' => [qw/get list/],
$base . '::API::Mailinglist' => [qw/add del get list set/],
$base . '::API::Mail' => [qw/add del get list register set/],
$base . '::API::Passwordreset' => [qw/listmethods sendsms setpassword/],
$base . '::API::Spamprotect' => [qw/get set/],
t/author-critic.t view on Meta::CPAN
#!perl
BEGIN {
unless ($ENV{AUTHOR_TESTING}) {
print qq{1..0 # SKIP these tests are for testing by the author\n};
exit
}
}
use strict;
use warnings;
use Test::Perl::Critic (-profile => "perlcritic.rc") x!! -e "perlcritic.rc";
all_critic_ok();
t/author-no-bom.t view on Meta::CPAN
BEGIN {
unless ($ENV{AUTHOR_TESTING}) {
print qq{1..0 # SKIP these tests are for testing by the author\n};
exit
}
}
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::NoBOM 0.002
use Test::More 0.88;
t/author-no-tabs.t view on Meta::CPAN
BEGIN {
unless ($ENV{AUTHOR_TESTING}) {
print qq{1..0 # SKIP these tests are for testing by the author\n};
exit
}
}
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15
use Test::More 0.88;
t/author-pod-coverage.t view on Meta::CPAN
#!perl
BEGIN {
unless ($ENV{AUTHOR_TESTING}) {
print qq{1..0 # SKIP these tests are for testing by the author\n};
exit
}
}
# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
use Test::Pod::Coverage 1.08;
use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
t/author-pod-syntax.t view on Meta::CPAN
#!perl
BEGIN {
unless ($ENV{AUTHOR_TESTING}) {
print qq{1..0 # SKIP these tests are for testing by the author\n};
exit
}
}
# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use strict; use warnings;
use Test::More;
use Test::Pod 1.41;
all_pod_files_ok();