NAME

Footprintless::Plugin::Atlassian::Confluence::Client - A REST client for Atlassian Confluence

VERSION

version 1.03

SYNOPSIS

use Footprintless;
use Footprintless::Util qw(
    dumper
    factory
);
use Log::Any;

my $logger = Log::Any->get_logger();

# Obtain a client from footprintless as a plugin:
my $client = $footprintless->confluence_client('proj.env.confluence');

# Or create one as a standalone:
my $client = Footprintless::Plugin::Atlassian::Confluence::Client
    ->new(
        factory({
            foo => {
                prod => {
                    confluence => {
                        automation => {
                            password => 'pa$$w0rd',
                            username => 'automation',
                        },
                        web => {
                            https => 1,
                            hostname => 'wiki.pastdev.com',
                            context_path => 'confluence',
                        }
                    }
                }
            }
        }), 
        'foo.prod.confluence');

# Now make a request:
my $response = $client->request('get_content',
    [spaceKey => 'FPAC', title => 'API']);
die($logger->errorf('couldn\'t find page API: %s', dumper($response)))
    unless ($response->{success});
my $api_page_id = $response->{content}{results}[0]{id};

DESCRIPTION

This module provides a client for the Atlassian Confluence REST API in the form of a Footprintless plugin.

CONSTRUCTORS

new(%options)

Constructs a new confluence client. The availble options are:

agent

An LWP::UserAgent instance. Defaults to a new agent returned by $footprintless-agent()|Footprintless/agent(%options)>.

request_builder_module

A module that implements request building methods. Defaults to Fooptrintless::Plugin::Atlassian::Confluence::RequestBuilder.

response_parser_module

A module that implements response parsing methods. Defaults to Fooptrintless::Plugin::Atlassian::Confluence::ResponseParser.

METHODS

request($endpoint, \@args, %response_options)

Generates a request by calling a method named $endpoint on the request builder, supplying it with @args. The request is sent using the agent, and the response is parsed by calling a method named $endpoint on the response parser, supplying it with %response_options.

request_all($endpoint, \@args, %response_options)

Same as "request($endpoint, \@args, %response_options)" in request except that it will loop through all pages until all results have been returned. This method assumes that the last argument to request builder will be an options hash that will be used as query parameters.

AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

SEE ALSO

Please see those modules/websites for more information related to this module.