File Coverage

blib/lib/Mslm.pm
Criterion Covered Total %
statement 17 58 29.3
branch n/a
condition 0 14 0.0
subroutine 6 13 46.1
pod 7 7 100.0
total 30 92 32.6


line stmt bran cond sub pod time code
1             package Mslm;
2              
3 1     1   136590 use 5.006;
  1         4  
4 1     1   7 use strict;
  1         2  
  1         50  
5 1     1   6 use warnings;
  1         11  
  1         73  
6 1     1   717 use Mslm::Common qw($default_base_url $default_user_agent $default_api_key DEFAULT_TIMEOUT);
  1         5  
  1         167  
7 1     1   588 use Mslm::EmailVerify;
  1         3  
  1         95  
8 1     1   601 use Mslm::OTP;
  1         3  
  1         704  
9              
10             our $VERSION = '1.0';
11              
12             sub new {
13 0     0 1   my ( $class, $api_key, %opts ) = @_;
14 0           my $self = {};
15 0   0       my $timeout = $opts{timeout} || DEFAULT_TIMEOUT;
16 0   0       my $user_agent = $opts{user_agent} || $default_user_agent;
17 0   0       my $base_url = $opts{base_url} || $default_base_url;
18 0   0       my $access_key = $api_key || $default_api_key;
19 0           $self->{base_url} = URI->new($base_url);
20 0           $self->{api_key} = $access_key;
21 0           $self->{user_agent} = $user_agent;
22 0           $self->{timeout} = $timeout;
23 0           my $default_http_client = LWP::UserAgent->new;
24 0           $default_http_client->ssl_opts( 'verify_hostname' => 0 );
25 0           $default_http_client->default_headers(
26             HTTP::Headers->new(
27             Accept => 'application/json'
28             )
29             );
30 0           $default_http_client->agent($user_agent);
31 0           $default_http_client->timeout($timeout);
32 0   0       $self->{http_client} = $opts{http_client} || $default_http_client;
33              
34             $self->{email_verify} = Mslm::EmailVerify->new(
35             $self->{api_key},
36             http_client => $self->{http_client},
37             base_url => $self->{base_url},
38             user_agent => $self->{user_agent},
39             timeout => $self->{timeout}
40 0           );
41             $self->{otp} = Mslm::OTP->new(
42             $self->{api_key},
43             http_client => $self->{http_client},
44             base_url => $self->{base_url},
45             user_agent => $self->{user_agent},
46             timeout => $self->{timeout}
47 0           );
48              
49 0           bless $self, $class;
50 0           return $self;
51             }
52              
53             sub email_verify {
54 0     0 1   my ($self) = @_;
55 0           return $self->{email_verify};
56             }
57              
58             sub otp {
59 0     0 1   my ($self) = @_;
60 0           return $self->{otp};
61             }
62              
63             sub set_base_url {
64 0     0 1   my ( $self, $base_url_str ) = @_;
65 0           my $base_url = URI->new($base_url_str);
66 0           $self->{base_url} = $base_url;
67 0           $self->{email_verify}->set_base_url($base_url);
68 0           $self->{otp}->set_base_url($base_url);
69             }
70              
71             sub set_http_client {
72 0     0 1   my ( $self, $http_client ) = @_;
73 0           $self->{http_client} = $http_client;
74 0           $self->{email_verify}->set_http_client($http_client);
75 0           $self->{otp}->set_http_client($http_client);
76             }
77              
78             sub set_user_agent {
79 0     0 1   my ( $self, $user_agent ) = @_;
80 0           $self->{user_agent} = $user_agent;
81 0           $self->{email_verify}->set_user_agent($user_agent);
82 0           $self->{otp}->set_user_agent($user_agent);
83             }
84              
85             sub set_api_key {
86 0     0 1   my ( $self, $api_key ) = @_;
87 0           $self->{api_key} = $api_key;
88 0           $self->{email_verify}->set_api_key($api_key);
89 0           $self->{otp}->set_api_key($api_key);
90             }
91              
92              
93             1;
94             __END__