datana-gmbh/datapool-api

API for Datapool

Maintainers

👁 OskarStark

Package info

github.com/datana-gmbh/datapool-api

pkg:composer/datana-gmbh/datapool-api

Statistics

Installs: 288 609

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 2

3.18.0 2023-12-02 21:52 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 643c602c70eae3ce098a4643f6cf9fc0ba46f35e

  • Oskar Stark <oskarstark.woop@googlemail.com>

README

Branch PHP Code Coverage
master 👁 PHP
👁 Code Coverage

Usage

Installation

composer require datana-gmbh/datapool-api

Setup

use Datana\Datapool\Api\DatapoolClient;

$client = new DatapoolClient(
 baseUri: 'https://api.datapool...',
 username: 'my-username',
 password: '******',
 timeout: 10 // optional
);

// you can now request any endpoint which needs authentication
$client->request('GET', '/api/something', $options);

Akten

In your code you should type-hint to Datana\Datapool\Api\AktenApiInterface

Search by string (string)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);
$response = $aktenApi->search('MySearchTerm');

Get by Aktenzeichen (string)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);
$response = $aktenApi->getByAktenzeichen('1abcde-1234-5678-Mustermann');

/*
 * to get the DatapoolId transform the response to array
 * and use the 'id' key.
 */
$akten = $response->toArray();
$datapoolId = DatapoolId::fromInt($akte['id']);

Get by Fahrzeug-Identifikationsnummer (string)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);
$response = $aktenApi->getByFahrzeugIdentifikationsnummer('ABC1234ABCD123456');

/*
 * to get the DatapoolId transform the response to array
 * and use the 'id' key.
 */
$akten = $response->toArray();
$datapoolId = DatapoolId::fromInt($akte['id']);

Get one by Aktenzeichen (string) or get an exception

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

// is an instance of AktenResponse
$result = $aktenApi->getOneByAktenzeichen('1abcde-1234-5678-Mustermann');
/*
 * $response->toArray():
 * [
 * 'id' => 123,
 * ...
 * ]
 *
 * or use the dedicated getter methods like
 * - getId(): DatapoolId
 * etc.
 */

Get by ID (Datana\Datapool\Api\Domain\Value\DatapoolId)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

$id = DatapoolId::fromInt(123);

$aktenApi->getById($id);

Get KT Akten Info (Datana\Datapool\Api\Domain\Value\DatapoolId)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

$id = DatapoolId::fromInt(123);

// is an instance of KtAktenInfoResponse
$result = $aktenApi->getKtAktenInfo($id);
/*
 * $response->toArray():
 * [
 * 'id' => 123,
 * 'url' => 'https://projects.knowledgetools.de/rema/?tab=akten&akte=4528',
 * 'instance' => 'rema',
 * 'group' => 'GARA',
 * ]
 *
 * or use the dedicated getter methods like
 * - getId()
 * - getUrl()
 * - getInstance()
 * - getGroup()
 * etc.
 */

Get E-Termin Info (Datana\Datapool\Api\Domain\Value\DatapoolId)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

$id = DatapoolId::fromInt(123);

/* @var $response Datana\Datapool\Api\Domain\Response\EterminInfoResponse */
$response = $aktenApi->getETerminInfo($id);
/*
 * $response->toArray():
 * [
 * 'service_id' => 123,
 * 'service_url' => 'https://www.etermin.net/Gansel-Rechtsanwaelte/serviceid/123',
 * ]
 *
 * or use the dedicated getter methods like
 * - getServiceId()
 * - getServiceUrl()
 * etc.
 */

Get SimplyBook Info (Datana\Datapool\Api\Domain\Value\DatapoolId)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

$id = DatapoolId::fromInt(123);

/* @var $response Datana\Datapool\Api\Domain\Response\SimplyBookInfoResponse */
$response = $aktenApi->getETerminInfo($id);
/*
 * $response->toArray():
 * [
 * 'service_id' => 12,
 * 'service_url' => 'https://ganselrechtsanwaelteag.simplybook.it/v2/#book/service/12/count/1/provider/any/',
 * ]
 *
 * or use the dedicated getter methods like
 * - getServiceId()
 * - getServiceUrl()
 * etc.
 */

Set value "Nutzer Mandantencockpit" (bool)

use Datana\Datapool\Api\AktenApi;
use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\Domain\Value\DatapoolId;

$client = new DatapoolClient(/* ... */);

$aktenApi = new AktenApi($client);

$id = DatapoolId::fromInt(123);

$aktenApi->setValueNutzerMandantencockpit($id, true); // or false

Aktenzeichen

In your code you should type-hint to Datana\Datapool\Api\AktenzeichenApiInterface

Get a new one

use Datana\Datapool\Api\AktenzeichenApi;
use Datana\Datapool\Api\DatapoolClient;

$client = new DatapoolClient(/* ... */);

$aktenzeichenApi = new AktenzeichenApi($client);
$aktenzeichenApi->new(); // returns sth like "6GU5DCB"

AktenEventLog

In your code you should type-hint to Datana\Datapool\Api\AktenEventLogApiInterface

Create a new log

use Datana\Datapool\Api\AktenEventLogApi;
use Datana\Datapool\Api\DatapoolClient;

$client = new DatapoolClient(/* ... */);

$aktenEventLog = new AktenEventLogApi($client);
$aktenEventLog->log(
 key: 'email.sent',
 aktenzeichen: '1234/12',
 info: 'E-Mail versendet',
 timestamp: new \DateTimeImmutable(), // Zeitpunkt des Events
 creator: 'Mein Service', // Ersteller des Events
);

SystemEventLog

In your code you should type-hint to Datana\Datapool\Api\SystemEventLogApiInterface

Create a new log

use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\SystemEventLogApi;

$client = new DatapoolClient(/* ... */);

$systemEventLog = new SystemEventLogApi($client);
$systemEventLog->log(
 key: 'received.webhook',
 info: 'Webhook received on /api/cockpit/DAT-changed', // Info-Text
 timestamp: new \DateTimeImmutable(), // Zeitpunkt des Events
 creator: 'Mein Service', // Ersteller des Events
 context: ['foo' => 'bar'], // Kontext (optional)
 ttl: '+2 months', // Gültigkeitsdauer im strtotime Format (optional)
);

The API internally converts the "+2 months" to a datetime object. If this datetime is reached, Datapool will delete the log entry. Pass null to keep the log entry forever.

ChatProtocol

In your code you should type-hint to Datana\Datapool\Api\ChatProtocolApiInterface

Save a new chat protocol

use Datana\Datapool\Api\ChatProtocolApi;
use Datana\Datapool\Api\DatapoolClient;

$client = new DatapoolClient(/* ... */);

$chatProtocol = new ChatProtocolApi($client);
$chatProtocol->log(
 '1234/12', // Aktenzeichen
 '123456', // Conversation ID
 array(/*...*/), // Das JSON der Intercom conversation
 new \DateTimeImmutable(), // Startzeitpunkt der Conversation
);

KnowledgeTools

In your code you should type-hint to Datana\Datapool\Api\KnowledgeToolsApiInterface

Get Fieldvalue by Instance and OID

use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\KnowledgeToolsApi;

$client = new DatapoolClient(/* ... */);

$api = new KnowledgeToolsApi($client);
$api->getFieldvalueByInstanceAndOid(
 instance: 'my-instance',
 oid: 123456,
 fieldhash: 'abcdefghi',
);

Get Fieldvalue by Aktenzeichen

use Datana\Datapool\Api\DatapoolClient;
use Datana\Datapool\Api\KnowledgeToolsApi;

$client = new DatapoolClient(/* ... */);

$api = new KnowledgeToolsApi($client);
$api->getFieldvalueByAktenzeichen(
 oid: '1abcde-1234-5678-Mustermann',
 fieldhash: 'abcdefghi',
);