| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Apertur::SDK; |
|
2
|
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
146490
|
use strict; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
38
|
|
|
4
|
1
|
|
|
1
|
|
4
|
use warnings; |
|
|
1
|
|
|
|
|
6
|
|
|
|
1
|
|
|
|
|
110
|
|
|
5
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
our $VERSION = '0.01'; |
|
7
|
|
|
|
|
|
|
|
|
8
|
1
|
|
|
1
|
|
548
|
use Apertur::SDK::HTTPClient; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
33
|
|
|
9
|
1
|
|
|
1
|
|
580
|
use Apertur::SDK::Resource::Sessions; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
44
|
|
|
10
|
1
|
|
|
1
|
|
645
|
use Apertur::SDK::Resource::Upload; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
49
|
|
|
11
|
1
|
|
|
1
|
|
679
|
use Apertur::SDK::Resource::Uploads; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
43
|
|
|
12
|
1
|
|
|
1
|
|
683
|
use Apertur::SDK::Resource::Polling; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
47
|
|
|
13
|
1
|
|
|
1
|
|
703
|
use Apertur::SDK::Resource::Destinations; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
51
|
|
|
14
|
1
|
|
|
1
|
|
732
|
use Apertur::SDK::Resource::Keys; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
49
|
|
|
15
|
1
|
|
|
1
|
|
662
|
use Apertur::SDK::Resource::Webhooks; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
47
|
|
|
16
|
1
|
|
|
1
|
|
694
|
use Apertur::SDK::Resource::Encryption; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
48
|
|
|
17
|
1
|
|
|
1
|
|
633
|
use Apertur::SDK::Resource::Stats; |
|
|
1
|
|
|
|
|
4
|
|
|
|
1
|
|
|
|
|
46
|
|
|
18
|
|
|
|
|
|
|
|
|
19
|
1
|
|
|
1
|
|
7
|
use constant DEFAULT_BASE_URL => 'https://api.aptr.ca'; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
119
|
|
|
20
|
1
|
|
|
1
|
|
6
|
use constant SANDBOX_BASE_URL => 'https://sandbox.api.aptr.ca'; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
700
|
|
|
21
|
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
sub new { |
|
23
|
4
|
|
|
4
|
1
|
12733
|
my ($class, %args) = @_; |
|
24
|
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
die "Either api_key or oauth_token must be provided\n" |
|
26
|
4
|
100
|
100
|
|
|
26
|
unless $args{api_key} || $args{oauth_token}; |
|
27
|
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
# Resolve environment from key prefix or explicit config |
|
29
|
3
|
|
66
|
|
|
14
|
my $token = $args{api_key} // $args{oauth_token} // ''; |
|
|
|
|
50
|
|
|
|
|
|
30
|
3
|
100
|
|
|
|
12
|
my $detected_env = ($token =~ /^aptr_test_/) ? 'test' : 'live'; |
|
31
|
3
|
|
33
|
|
|
14
|
my $env = $args{env} // $detected_env; |
|
32
|
|
|
|
|
|
|
|
|
33
|
|
|
|
|
|
|
# Auto-select sandbox URL for test keys unless base_url is explicitly set |
|
34
|
3
|
100
|
|
|
|
9
|
my $default_url = $env eq 'test' ? SANDBOX_BASE_URL : DEFAULT_BASE_URL; |
|
35
|
3
|
|
33
|
|
|
9
|
my $base_url = $args{base_url} // $default_url; |
|
36
|
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
my $http = Apertur::SDK::HTTPClient->new( |
|
38
|
|
|
|
|
|
|
base_url => $base_url, |
|
39
|
|
|
|
|
|
|
api_key => $args{api_key}, |
|
40
|
|
|
|
|
|
|
oauth_token => $args{oauth_token}, |
|
41
|
3
|
|
|
|
|
17
|
); |
|
42
|
|
|
|
|
|
|
|
|
43
|
3
|
|
|
|
|
20
|
return bless { |
|
44
|
|
|
|
|
|
|
env => $env, |
|
45
|
|
|
|
|
|
|
_http => $http, |
|
46
|
|
|
|
|
|
|
sessions => Apertur::SDK::Resource::Sessions->new(http => $http), |
|
47
|
|
|
|
|
|
|
upload => Apertur::SDK::Resource::Upload->new(http => $http), |
|
48
|
|
|
|
|
|
|
uploads => Apertur::SDK::Resource::Uploads->new(http => $http), |
|
49
|
|
|
|
|
|
|
polling => Apertur::SDK::Resource::Polling->new(http => $http), |
|
50
|
|
|
|
|
|
|
destinations => Apertur::SDK::Resource::Destinations->new(http => $http), |
|
51
|
|
|
|
|
|
|
keys => Apertur::SDK::Resource::Keys->new(http => $http), |
|
52
|
|
|
|
|
|
|
webhooks => Apertur::SDK::Resource::Webhooks->new(http => $http), |
|
53
|
|
|
|
|
|
|
encryption => Apertur::SDK::Resource::Encryption->new(http => $http), |
|
54
|
|
|
|
|
|
|
stats => Apertur::SDK::Resource::Stats->new(http => $http), |
|
55
|
|
|
|
|
|
|
}, $class; |
|
56
|
|
|
|
|
|
|
} |
|
57
|
|
|
|
|
|
|
|
|
58
|
3
|
|
|
3
|
0
|
714
|
sub env { return $_[0]->{env} } |
|
59
|
1
|
|
|
1
|
1
|
6
|
sub sessions { return $_[0]->{sessions} } |
|
60
|
1
|
|
|
1
|
1
|
5
|
sub upload { return $_[0]->{upload} } |
|
61
|
1
|
|
|
1
|
1
|
4
|
sub uploads { return $_[0]->{uploads} } |
|
62
|
1
|
|
|
1
|
1
|
12
|
sub polling { return $_[0]->{polling} } |
|
63
|
1
|
|
|
1
|
1
|
3
|
sub destinations { return $_[0]->{destinations} } |
|
64
|
1
|
|
|
1
|
1
|
12
|
sub keys { return $_[0]->{keys} } |
|
65
|
1
|
|
|
1
|
1
|
6
|
sub webhooks { return $_[0]->{webhooks} } |
|
66
|
1
|
|
|
1
|
1
|
5
|
sub encryption { return $_[0]->{encryption} } |
|
67
|
1
|
|
|
1
|
1
|
6
|
sub stats { return $_[0]->{stats} } |
|
68
|
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
1; |
|
70
|
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
__END__ |