Cloudflare-API

 view release on metacpan or  search on metacpan

lib/Cloudflare/API/Queues.pm  view on Meta::CPAN

#
1;


#============================================================================


sub list_queues {

    my ($self, %query)=@_;
    return $self->collect_list($self->list_queues_page(%query));

}


sub list_queues_page {

    my ($self, %query)=@_;
    return $self->list_pagination($self->api()->account_path('queues'),
        { mode => 'single' }, \%query);

}


sub list_queues_page_response {

    my ($self, %query)=@_;
    return $self->list_response($self->api()->account_path('queues'), \%query);

}


sub get_queue {

    my ($self, $id, %opt)=@_;
    return $self->api()->request('GET', $self->api()->account_path('queues', $id),
        %opt);

}


sub create_queue {

    my ($self, $body_hr, %opt)=@_;
    die "queue body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
    return $self->api()->request('POST', $self->api()->account_path('queues'),
        json => $body_hr, %opt);

}


sub delete_queue {

    my ($self, $id, %opt)=@_;
    return $self->api()->request('DELETE', $self->api()->account_path('queues', $id),
        %opt);

}


sub update_queue {

    my ($self, $id, $body_hr, %opt)=@_;
    die "queue body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
    return $self->api()->request('PATCH', $self->api()->account_path('queues', $id),
        json => $body_hr, %opt);

}


sub list_consumers {


    #  Consumer listing is scoped to a queue, not directly to the account
    #
    my ($self, $queue_id, %query)=@_;
    return $self->collect_list($self->list_consumers_page($queue_id, %query));

}


sub list_consumers_page {

    my ($self, $queue_id, %query)=@_;
    return $self->list_pagination(
        $self->api()->account_path('queues', $queue_id, 'consumers'),
        { mode => 'single' }, \%query);

}


sub list_consumers_page_response {

    my ($self, $queue_id, %query)=@_;
    return $self->list_response(
        $self->api()->account_path('queues', $queue_id, 'consumers'), \%query);

}


sub create_consumer {

    my ($self, $queue_id, $body_hr, %opt)=@_;
    die "consumer body must be a hash reference\n" unless ref($body_hr) eq 'HASH';
    return $self->api()->request('POST', $self->api()->account_path('queues', $queue_id, 'consumers'),
        json => $body_hr, %opt);

}


sub delete_consumer {

    my ($self, $queue_id, $consumer_id, %opt)=@_;
    return $self->api()->request('DELETE',
        $self->api()->account_path('queues', $queue_id, 'consumers', $consumer_id), %opt);

}
__END__

=encoding utf8



( run in 0.769 second using v1.01-cache-2.11-cpan-145b269f2f3 )