Google-RestApi
view release on metacpan or search on metacpan
lib/Google/RestApi/CalendarApi3/Event.pm view on Meta::CPAN
],
);
return bless $check->(@_), $class;
}
sub _uri_base { 'events' }
sub _parent_accessor { 'calendar' }
sub create {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
summary => Str,
start => HashRef,
end => HashRef,
description => Str, { optional => 1 },
location => Str, { optional => 1 },
attendees => ArrayRef[HashRef], { optional => 1 },
_extra_ => slurpy HashRef,
],
);
my $p = named_extra($check->(@_));
my %content = (
summary => delete $p->{summary},
start => delete $p->{start},
end => delete $p->{end},
);
$content{description} = delete $p->{description} if defined $p->{description};
$content{location} = delete $p->{location} if defined $p->{location};
$content{attendees} = delete $p->{attendees} if defined $p->{attendees};
DEBUG(sprintf("Creating event '%s' on calendar '%s'", $content{summary}, $self->calendar()->calendar_id()));
my $result = $self->calendar()->api(
uri => 'events',
method => 'post',
content => \%content,
);
return ref($self)->new(calendar => $self->calendar(), id => $result->{id});
}
sub get {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
fields => Str, { optional => 1 },
],
);
my $p = $check->(@_);
$self->require_id('get');
my %params;
$params{fields} = $p->{fields} if defined $p->{fields};
return $self->api(params => \%params);
}
sub update {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
summary => Str, { optional => 1 },
description => Str, { optional => 1 },
location => Str, { optional => 1 },
start => HashRef, { optional => 1 },
end => HashRef, { optional => 1 },
attendees => ArrayRef[HashRef], { optional => 1 },
_extra_ => slurpy HashRef,
],
);
my $p = named_extra($check->(@_));
$self->require_id('update');
my %content;
$content{summary} = delete $p->{summary} if defined $p->{summary};
$content{description} = delete $p->{description} if defined $p->{description};
$content{location} = delete $p->{location} if defined $p->{location};
$content{start} = delete $p->{start} if defined $p->{start};
$content{end} = delete $p->{end} if defined $p->{end};
$content{attendees} = delete $p->{attendees} if defined $p->{attendees};
DEBUG(sprintf("Updating event '%s'", $self->{id}));
return $self->api(
method => 'patch',
content => \%content,
);
}
sub delete {
my $self = shift;
$self->require_id('delete');
DEBUG(sprintf("Deleting event '%s'", $self->{id}));
return $self->api(method => 'delete');
}
sub quick_add {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
text => Str,
],
);
my $p = $check->(@_);
DEBUG(sprintf("Quick adding event on calendar '%s': %s", $self->calendar()->calendar_id(), $p->{text}));
my $result = $self->calendar()->api(
uri => 'events/quickAdd',
method => 'post',
params => { text => $p->{text} },
);
return ref($self)->new(calendar => $self->calendar(), id => $result->{id});
}
( run in 0.831 second using v1.01-cache-2.11-cpan-97f6503c9c8 )