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