optigov/optigov-api-php

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (v3.0.8) of this package.

The optiGov API PHP Client Library for V1 version of the API

v3.0.8 2022-07-12 21:46 UTC

This package is auto-updated.

Last update: 2023-08-12 23:59:01 UTC


README

Für weitere Informationen, siehe optiGov-Dokumentation.

Installation

composer require optigov/optigov-api-php

Schnellstart

Instanziierung

Ein optiGov-Client kann über die Client-Klasse intantiiert werden. Dabei werden die Urls des API-Endpunkts, des OAuth2.0-Auth-Endpunkts und des OAuth2.0-Token-Endpunkts benötigt.

$optiGov = new \OptiGov\Client(API_ENDPUNKT, OAUTH_AUTH_ENDPUNKT, OAUTH_TOKEN_ENDPUNKT);

Abfragen

Die Abfragen innerhalb der Bibliothek teilen sich in sogenannte Responsibilities auf. Diese enthalten verschiedene Verantwortlichekeiten - so ist z.B. die GlobalResponsibility für alle allgemeinen, von einer Verwaltung losgelösten Anfragen zuständig. Die VerwaltungResponsibility handelt alle Abfragen bzgl. aller Einträge einer Verwaltung ab - und die BuergerResponsibility übernimmt alle Funktionen, welche eine Bürgerauthorisierung benötigen.

Die GlobalResponsibility

Eine Dienstleistung, oder nur ihren Namen abfragen:

$optiGov->dienstleistung($id);
$optiGov->dienstleistungName($id);

Eine Einrichtung, oder nur ihren Namen abfragen:

$optiGov->einrichtung($id);
$optiGov->einrichtungName($id);

Einen Mitarbeiter, oder nur seinen / ihren Namen abfragen:

$optiGov->mitarbeiter($id);
$optiGov->mitarbeiterName($id);

Um einen Bürger einzuloggen verwendet diese Bibliothek den von optiGov bereitgestellten OAuth2.0 Authorization-Flow mit PKCE. Dieser wird in zwei Schritten durchgeführt. Als Erstes wird eine URL zur Authorisierung für die Weiterleitung erzeugt:

// get data needed for OAuth2.0 authorization
$oauthInformation = $optiGov->oauthAuthorize(
    OPTIGOV_OAUTH_CLIENT_ID,
    OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL,
);

// get state and code verifier and authorization url
$state = $oauthInformation["state"];
$codeVerifier = $oauthInformation["code_verifier"];
$url = $oauthInformation["url"];

Nachdem nun der Bürger eingeloggt ist und an die OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL der Authorization-Code gesendet wurde, kann darüber das Access- und Refresh-Token wie folgt abgefragt werden:

// get tokens form oauth token endpoint
$tokens = $optiGov->oauthGetTokens(
    $codeVerifier, // code verifier from step one
    $_GET["code"], // code from the get parameters
    OPTIGOV_OAUTH_CLIENT_ID,
    OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL,
);

Die VerwaltungResponsibility

Alle Dienstleistungen abfragen:

$optiGov->verwaltung($id)->alleDienstleistungen();

Alle Themenfelder abfragen:

$optiGov->verwaltung($id)->alleThemenfelder();

Alle Einrichtungen abfragen:

$optiGov->verwaltung($id)->alleEinrichtungen();

Alle Mitarbeiter abfragen:

$optiGov->verwaltung($id)->alleMitarbeiter();

Die BuergerResponsibility

Alle Anträge eines Bürgers abfragen:

$optiGov->buerger(REFRESH_TOKEN)->alleAntraege();

Alle Termine eines Bürgers abfragen:

$optiGov->buerger(REFRESH_TOKEN)->alleTermine();

Alle Chats eines Bürgers abfragen:

$optiGov->buerger(REFRESH_TOKEN)->alleChats();

Einen Chat eines Bürgers abfragen:

$optiGov->buerger(REFRESH_TOKEN)->chat($id);

Alle Daten eines Bürgers abfragen:

$optiGov->buerger(REFRESH_TOKEN)->daten();

Einen Antrag mit vorbefüllten Daten stellen:

$optiGov->buerger(REFRESH_TOKEN)->stelleAntrag(
    FORMULAR_ID,
    SUCCESS_REDIRECT_URL,
    [
        "AS.Daten.Parkzone" => "Zone F",
        "cancelUrl" => CANCEL_REDIRECT_URL,
    ]
);

Eine Datei hochladen:

$optiGov->buerger(REFRESH_TOKEN)->dateiHochladen($pfad, $name, $bezeichner);

Alle Daten eines Bürgers löschen:

$optiGov->buerger(REFRESH_TOKEN)->loescheBuerger();

Einen neuen Chat erstellen:

$optiGov->buerger(REFRESH_TOKEN)->erstelleChat($name, $mitarbeiterId);

Eine neue Nachricht senden:

$optiGov->buerger(REFRESH_TOKEN)->sendeNachricht($inhalt, $chatId, dateien: []);

Tests und Beteiligung

Unit-Tests

Hinweis: Die Unit-Tests benötigen die Datei tests/bootstrap.php, welche notwenige (folgende) Konstanten definiert:

const BACKEND_URL = "https://..."; // API-Endpunkt
const REFRESH_TOKEN = "..."; // Refresh-Token eines Bürgers
const TEST_CHAT_ID = -1; // ID eines Chats, welcher dem Bürger gehört
const TEST_ANTRAG_FORMULAR_ID = -1; // ID eines Antrags, welcher im Namen des Bürgers gestellt wird
const TEST_ANTRAG_WEITERLEITUNG_URL = "https://..."; // Ziel-URL für erfolgreiche Weiterleitung nach Antragdurchführung
const TEST_ANTRAG_PARAMETER = []; // Parameter, welche dem Antrag übergeben werden

Ausführen aller Tests:

composer run-script test

Beteiligung

Für Beteiligung an der Entwicklung der Bibliothek wenden Sie sich bitte an hallo@optigov.de.