Support-Integrationen

Tickets abrufen

getTickets()

Dies gibt alle Tickets zurück, sortiert nach dem Datum der letzten Änderung. hostware verwendet diese Information, um zu prüfen, ob für Tickets neue Admin-Antworten vorliegen, die dann mit einer anderen Funktion importiert werden (TODO).

Parameter

Keine.

Antwort

Sammlung von TicketResponse()-Klassen. Jede Klasse enthält die folgenden Attribute:

Typ

Name

Beschreibung

mixed

id

Die ID des Tickets. In der Regel Integer oder UUID.

mixed

number

Die Ticketnummer. Manchmal haben Ticketsysteme eine lesbare Anzeigenummer

mixed

customerId

Die ID des Kunden/Kontakts im Ticketsystem. Kein Mapping notwendig

mixed

customerEmail

Die E-Mail des Kunden/Kontakts im Ticketsystem.

mixed

subject

Der Betreff des Tickets.

mixed

statusId

Der aktuelle Status des Tickets

Carbon

createdAt

Das Erstellungsdatum

Carbon

lastChangeAt

Das Datum der letzten Änderung

Int oder Null

departmentId

Die Abteilungs-ID im Ticketsystem

String oder Null

notes

Optionale Notizen, die dem Ticket angehängt sind

Beispielcode

public function getTickets(): Collection {
	$response = $this->makeRequest("conversations", "GET", [
		"sortField" => "updatedAt",
		"sortOrder" => "desc",
		"pageSize" => 150
	]);
	$tickets = [];

//		dd(count($response->_embedded->conversations));

	foreach ($response->_embedded->conversations as $conversation) {
		if ($conversation->customer === null) {
			continue;
		}

		$tickets[] = new TicketResponse(
			$conversation->id,
			$conversation->number,
			$conversation->customer->id,
			$conversation->customer->email,
			$conversation->subject,
			$conversation->status,
			Carbon::parse($conversation->createdAt, "UTC")->setTimezone("Europe/Berlin"),
			Carbon::parse($conversation->updatedAt, "UTC")->setTimezone("Europe/Berlin"),
			$conversation->mailboxId,
			null
		);
	}

	return collect($tickets);
}

Testen

Du kannst diese Funktion testen, indem Du den folgenden Konsolenbefehl ausführst. Dafür musst Du ein Ticket in der Datenbank haben, bei dem ticket_provider_id gleich Deinem Providernamen ist.

Die Funktion wird synchron aufgerufen, Du kannst dump() und debug verwenden, wie Du möchtest.

php artisan hw:synchronizeTicketProviders
War das hilfreich?