The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prty::Confluence::Client - Confluence-Wiki Client

BASE CLASS

Prty::Hash

DESCRIPTION

Ein Objekt der Klasse repräsentiert einen Client, der über das Confluence REST API mit einem Confluence-Server kommunizieren kann.

Die Implementierung der Klasse stellt die maßgeblichen Mechnismen zur Kommunikation mit dem Server zur Verfügung, realisiert z.Zt. jedoch nur einen kleinen Ausschnitt der Funktionalität des Confluence REST API. Die Implementierung wird nach Bedarf erweitert.

METHODS

Konstruktor

new() - Instantiiere Confluence-Client

Synopsis

    $cli = $class->new(@keyVal);

Description

Instantiiere einen Client für Confluence mit den Eigenschaften @keyval und liefere eine Referenz auf dieses Objekt zurück.

Arguments

url => $url (Default: nichts)

Basis-URL des Confluence Wiki, z.B. "https://<name>.atlassian.net".

user => $user (Default: nichts)

Name des Confluence-Benutzers, z.B. "admin".

password => $password (Default: nichts)

Passwort des Confluence-Benutzers.

verbose => $bool (Default: 0)

Gib Laufzeit-Informationen auf STDERR aus.

Returns

Client-Objekt (Typ Prty::Confluence::Client)

Example

Client für Atlassian Demo-Instanz:

    $cli = Prty::Confluence::Client->new(
        url => 'https://<name>.atlassian.net',
        user => 'admin',
        password => '<password>',
        verbose => 1,
    );

Confluence Operationen

createPage() - Erzeuge Confluence Seite

Synopsis

    $cli->createPage($parentId,$title,$markup,@opts);

Description

Erzeuge eine Confluence-Seite mit Titel $title und Inhalt $markup (= Wiki Code) als Unterseite von der Seite mit der Seiten-Id $parentId. Die erzeugte Seite wird (notwendigerweise) demselben Space wie die übergeordnete Seite zugeordnet.

Arguments

parentId => $pageId

Die Page-Id der übergeordneten Seite.

$title

Der Titel der Seite.

$markup

Seiteninhalt in Confluence Wiki Markup.

Options

-warning => $bool (Default: 0)

Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch generiert wurde.

Returns

nichts

deletePage() - Lösche Confluence Seite

Synopsis

    $pag = $cli->deletePage($pageId);

Description

Lösche die Confluence-Seite mit der Seiten-Id $pageId.

Arguments

$pageId

Seiten-Id

Returns

Nichts

getPage() - Liefere Confluence Seite

Synopsis

    $pag = $cli->getPage($pageId);

Description

Rufe die Confluence-Seite mit der Seiten-Id $pageId ab und liefere ein Seiten-Objekt vom Typ Prty::Confluence::Page zurück.

Arguments

$pageId

Seiten-Id

Returns

Seiten-Objekt (Typ Prty::Confluence::Page)

updatePage() - Aktualisiere Confluence Seite

Synopsis

    $cli->updatePage($pageId,$markup,@opts);

Description

Ersetze den Inhalt der Confluence-Seite $pageId durch den neuen Inhalt $markup. Für die Aktualisierung sind vier Angaben erforderlich:

  • die PageId der Seite

  • der Inhalt der Seite

  • der Titel der Seite

  • die neue Versionsnummer der Seite

Um die neue Versionsnummer der Seite vergeben zu können, wird intern zunächst der aktuelle Stand der Seite abgerufen, der u.a. die bestehende Versionsnummer enthält. Die Versionsnummer ist eine ganze Zahl, die mit jeder Aktualisierung um 1 erhöht werden muss.

Der Titel der Seite wird aus dem aktuellen Stand der Seite übernommen, sofern er nicht mit der Option -title überschrieben wird.

Arguments

$pageId

Seiten-Id

$markup

Seiteninhalt in Confluence Wiki Markup

Options

-warning => $bool (Default: 0)

Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch erzeugt wurde.

-title => $title

Setze den Seitentitel.

Returns

nichts

Hilfsmethoden

Die folgenden Methoden bilden die Grundlage für die Kommunikation mit dem Confluence-Server. Sie werden normalerweise nicht direkt gerufen.

send() - Sende HTTP-Request an Confluence

Synopsis

    $res = $cli->send($method,$path);
    $res = $cli->send($method,$path,$contentType,$content);

Description

Sende einen HTTP-Request vom Typ $method mit dem REST-Pfad $path und dem Body $content vom Typ $contentType an den Confluence-Server und liefere die resultierende HTTP-Anwort zurück. Im Fehlerfall wirft die Methode eine Exception.

Arguments

$method

Die HTTP-Methode, z.B. 'PUT'.

$path

Der REST-Pfad, z.B. 'rest/api/content/32788'.

$contentType

Der Content-Type des HTTP-Body, z.B. 'application/json'.

$content

Der Inhalt des HTTP-Body, z.B. (auf die Toplevel-Attribute umbrochen)

    {"version":{"number":24},
    "body":{"storage":{"representation":"wiki","value":"{cheese}"}},
    "title":"Testseite",
    "type":"page"}

Returns

HTTP-Antwort (Typ HTTP::Response)

url() - Erzeuge Request URL

Synopsis

    $url = $cli->url;
    $url = $cli->url($path);

Description

Erzeuge einen REST-API URL bestehend aus dem beim Konstruktor-Aufruf angegebenen Server-URL und dem Pfad $path und liefere diesen zurück. Ohne Argument wird der Server-URL geliefert.

Arguments

$path

REST-API Pfad ohne führenden Slash, z.B. 'wiki/rest/api/content/32788'.

Returns

URL (String)

Example

Der Code

    $cli = Prty::Confluence::Client->new(
        url => 'https://<name>.atlassian.net',
        ...
    );
    $url = $cli->url('wiki/rest/api/content/32788');

liefert

    https://<name>.atlassian.net/wiki/rest/api/content/32788

VERSION

1.106

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2017 Frank Seitz

LICENSE

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