Google-RestApi
view release on metacpan or search on metacpan
lib/Google/RestApi/TasksApi1/TaskList.pm view on Meta::CPAN
package Google::RestApi::TasksApi1::TaskList;
our $VERSION = '2.2.3';
use Google::RestApi::Setup;
use parent 'Google::RestApi::SubResource';
use aliased 'Google::RestApi::TasksApi1::Task';
sub new {
my $class = shift;
state $check = signature(
bless => !!0,
named => [
tasks_api => HasApi,
id => Str, { optional => 1 },
],
);
return bless $check->(@_), $class;
}
sub _uri_base { 'users/@me/lists' }
sub _parent_accessor { 'tasks_api' }
sub get {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
fields => Str, { optional => 1 },
params => HashRef, { default => {} },
],
);
my $p = $check->(@_);
$self->require_id('get');
my $params = $p->{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 => [
title => Str, { optional => 1 },
_extra_ => slurpy HashRef,
],
);
my $p = named_extra($check->(@_));
$self->require_id('update');
my %content;
$content{title} = delete $p->{title} if defined $p->{title};
DEBUG(sprintf("Updating task list '%s'", $self->{id}));
return $self->api(
method => 'patch',
content => \%content,
);
}
sub delete {
my $self = shift;
$self->require_id('delete');
DEBUG(sprintf("Deleting task list '%s'", $self->{id}));
return $self->api(method => 'delete');
}
sub task {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
id => Str, { optional => 1 },
],
);
my $p = $check->(@_);
return Task->new(task_list => $self, %$p);
}
sub tasks {
my $self = shift;
state $check = signature(
bless => !!0,
named => [
max_pages => Int, { default => 1 },
page_callback => CodeRef, { optional => 1 },
params => HashRef, { default => {} },
],
);
my $p = $check->(@_);
$self->require_id('tasks');
return paginated_list(
api => $self->tasks_api(),
uri => "lists/$self->{id}/tasks",
( run in 1.619 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )