Cloudflare-API
view release on metacpan or search on metacpan
lib/Cloudflare/API/D1.pm view on Meta::CPAN
#
1;
#============================================================================
sub list_databases {
my ($self, %query)=@_;
return $self->collect_list($self->list_databases_page(%query));
}
sub list_databases_page {
my ($self, %query)=@_;
return $self->list_pagination($self->api()->account_path('d1', 'database'),
{ mode => 'page' }, \%query);
}
sub list_databases_page_response {
my ($self, %query)=@_;
return $self->list_response($self->api()->account_path('d1', 'database'), \%query);
}
sub get_database {
my ($self, $id, %opt)=@_;
return $self->api()->request('GET', $self->api()->account_path('d1', 'database', $id),
%opt);
}
sub create_database {
my ($self, $body_hr, %opt)=@_;
die "database body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
return $self->api()->request('POST', $self->api()->account_path('d1', 'database'),
json => $body_hr, %opt);
}
sub delete_database {
my ($self, $id, %opt)=@_;
return $self->api()->request('DELETE', $self->api()->account_path('d1', 'database', $id),
%opt);
}
sub update_database {
my ($self, $id, $body_hr, %opt)=@_;
die "database body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
return $self->api()->request('PATCH', $self->api()->account_path('d1', 'database', $id),
json => $body_hr, %opt);
}
sub query_database {
# Pass SQL and its parameters in the caller's supplied request body
#
my ($self, $id, $body_hr, %opt)=@_;
die "query body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
return $self->api()->request('POST', $self->api()->account_path('d1', 'database', $id, 'query'),
json => $body_hr, %opt);
}
sub query_sql {
# Keep bound values separate from SQL text
#
my ($self, $id, $sql, @arg)=@_;
my $params_ar=@arg % 2 ? shift(@arg) : undef;
my %opt=@arg;
die "sql must be a non-empty scalar\n" unless defined($sql)&&!ref($sql)&&length($sql);
die "params must be an array reference\n"
if defined($params_ar)&&ref($params_ar) ne 'ARRAY';
my %body=(sql => $sql);
$body{'params'}=$params_ar if defined($params_ar);
return $self->query_database($id, \%body, %opt);
}
__END__
=encoding utf8
=begin markdown
# Cloudflare::API::D1 #
# NAME #
Cloudflare::API::D1 - manage D1 databases and run REST SQL queries
# SYNOPSIS #
```perl
my $d1=$api->d1();
my $databases=$d1->list_databases();
my $rows=$d1->query_sql($database_id,
'SELECT * FROM items WHERE id = ?', [$item_id]);
```
# DESCRIPTION #
( run in 1.072 second using v1.01-cache-2.11-cpan-145b269f2f3 )