View on
MetaCPAN
Frank Seitz > Prty-1.124 > Prty::Confluence::Client

Download:
Prty-1.124.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  2
View/Report Bugs
Module Version: 1.124   Source  

NAME ^

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

BASE CLASS ^

Prty::Hash

DESCRIPTION ^

Ein Objekt der Klasse repräsentiert einen Client, der über die 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 der Confluence REST API. Die Implementierung wird nach Bedarf erweitert.

METHODS ^

Konstruktor

new() - Instantiiere Confluence-Client

Synopsis

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

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)

Description

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

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

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

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

Description

Erzeuge eine Confluence-Seite mit Titel $title und Inhalt $markup (= Wiki Code) als Unterseite von der Seite mit der Seiten-Id $parentId und liefere das Seiten-Objekt der der erzeugten Seite zurück.

Die erzeugte Seite ist (notwendigerweise) demselben Space wie die übergeordnete Seite zugeordnet.

deletePage() - Lösche Confluence Seite

Synopsis

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

Arguments

$pageId

Seiten-Id

Returns

Nichts

Description

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

getPage() - Liefere Confluence Seite

Synopsis

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

Arguments

$pageId

Seiten-Id

Returns

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

Description

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

updatePage() - Aktualisiere Confluence Seite

Synopsis

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

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

Description

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

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.

createAttachment() - Füge Attachment zu Confluence-Seite hinzu

Synopsis

    $pag = $cli->createAttachment($parentId,$file);

Arguments

parentId => $pageId

Die Page-Id der übergeordneten Seite.

$file

Pfad zur Attchment-Datei.

Returns

nichts

Description

Füge Datei $file als Attachment zur Confluence-Seite mit der Seiten-Id $pageId hinzu.

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);

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)

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.

url() - Erzeuge Request URL

Synopsis

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

Arguments

$path

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

Returns

URL (String)

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.

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.124

AUTHOR ^

Frank Seitz, http://fseitz.de/

COPYRIGHT ^

Copyright (C) 2018 Frank Seitz

LICENSE ^

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

syntax highlighting: