File Coverage

blib/lib/WWW/DNSMadeEasy/Domain.pm
Criterion Covered Total %
statement 7 36 19.4
branch n/a
condition n/a
subroutine 3 16 18.7
pod 8 12 66.6
total 18 64 28.1


line stmt bran cond sub pod time code
1             package WWW::DNSMadeEasy::Domain;
2             BEGIN {
3 3     3   118 $WWW::DNSMadeEasy::Domain::AUTHORITY = 'cpan:GETTY';
4             }
5             {
6             $WWW::DNSMadeEasy::Domain::VERSION = '0.001';
7             }
8             # ABSTRACT: A domain in the DNSMadeEasy API
9              
10 3     3   20 use Moo;
  3         28  
  3         29  
11 3     3   3437 use WWW::DNSMadeEasy::Domain::Record;
  3         10  
  3         3021  
12              
13             has name => (
14             # isa => 'Str',
15             is => 'ro',
16             required => 1,
17             );
18              
19             has dme => (
20             # isa => 'WWW::DNSMadeEasy',
21             is => 'ro',
22             required => 1,
23             );
24              
25             sub create {
26 0     0 0   my ( $class, @args ) = @_;
27 0           my $domain = $class->new(@args);
28 0           $domain->put;
29 0           return $domain;
30             }
31              
32             sub path {
33 0     0 0   my ( $self ) = @_;
34 0           $self->dme->path_domains.'/'.$self->name;
35             }
36              
37             sub delete {
38 0     0 1   my ( $self ) = @_;
39 0           $self->dme->request('DELETE',$self->path);
40             }
41              
42             sub put {
43 0     0 1   my ( $self ) = @_;
44 0           $self->dme->request('PUT',$self->path);
45             }
46              
47 0     0 0   sub path_records { shift->path.'/records' }
48              
49 0     0 1   sub name_server { shift->obj->{nameServer} }
50 0     0 1   sub gtd_enabled { shift->obj->{gtdEnabled} }
51 0     0 1   sub vanity_name_servers { shift->obj->{vanityNameServers} }
52 0     0 1   sub vanity_id { shift->obj->{vanityId} }
53              
54             has obj => (
55             is => 'ro',
56             builder => '_build_obj',
57             lazy => 1,
58             );
59              
60             sub _build_obj {
61 0     0     my ( $self ) = @_;
62 0           return $self->dme->request('GET',$self->path);
63             }
64              
65             sub create_record {
66 0     0 1   my ( $self, $obj ) = @_;
67 0           my $post_result = $self->dme->request('POST',$self->path_records,$obj);
68 0           return WWW::DNSMadeEasy::Domain::Record->new({
69             domain => $self,
70             id => $_->{id},
71             obj => $post_result,
72             });
73             }
74              
75             sub post {
76 0     0 0   my ( $self ) = @_;
77 0           $self->dme->request('POST',$self->path);
78             }
79              
80             sub all_records {
81 0     0 1   my ( $self ) = @_;
82 0           my $data = $self->dme->request('GET',$self->path_records);
83 0           my @records;
84 0           for (@{$data}) {
  0            
85 0           push @records, WWW::DNSMadeEasy::Domain::Record->new({
86             domain => $self,
87             id => $_->{id},
88             obj => $_,
89             });
90             }
91 0           return @records;
92             }
93              
94             1;
95              
96              
97             __END__