Labels
`labels->list`, `listAll`, `iterate`, `listColors`, `get`, `create`, `update` und `delete`.
Jede Methode
$page = $client->labels->list(limit: 50);$every = $client->labels->listAll();$colors = $client->labels->listColors();echo count($page), ' ', count($every), ' ', count($colors), PHP_EOL; foreach ($client->labels->iterate() as $row) { echo $row['name'], ' ', $row['threadCount'], PHP_EOL;} $created = $client->labels->create([ 'name' => 'Invoices', 'color' => ['backgroundColor' => 'gradient:sunset'],]); $client->labels->update($created['id'], ['name' => 'Invoices 2027']);$client->labels->update($created['id'], ['color' => ['backgroundColor' => '#3B82F6']]); $label = $client->labels->get($created['id']);echo $label['name'], ' ', $label['color']['backgroundColor'] ?? 'no colour', PHP_EOL; $client->labels->delete($created['id']);list gibt eine OpenEmail\Result\Page mit nach Namen sortierten Labels zurück, und listAll und iterate durchlaufen jede Seite. listAll gibt ein einziges Array zurück, und iterate gibt einen Generator zurück, der ein Label nach dem anderen liefert. Jedes Label ist ein Array mit camelCase-Schlüsseln, das seine Farbe, threadCount und die Zeitpunkte trägt, zu denen es angelegt und zuletzt geändert wurde. listColors gibt die Palette der App zurück, vierzehn Volltonfarben und sieben Verläufe, als einfache Liste von Arrays ohne Seiten. type ist immer user. Die id stammt aus dem Namen, unter dem das Label angelegt wurde, Invoices ist also USER_INVOICES, und sie ändert sich nie.
Die Felder von create und update sind die Schlüssel eines Arrays mit den Namen der API, eine Farbe ist also 'color' => ['backgroundColor' => '#3B82F6'].
Ein Label gehört zum Workspace, eine Umbenennung, Umfärbung oder Löschung ändert es also für jedes Mitglied und jeden Schlüssel. threads->update setzt Labels auf eine Unterhaltung und nimmt sie wieder ab, und $client->threads->list(folder: 'USER_INVOICES') listet jede Unterhaltung, die eines trägt. Die Seite Threads behandelt beides.
Parameter: labels->create und labels->update
namestring- Der Anzeigename des Labels, vor dem Messen um Leerraum gekürzt, das Limit liegt also bei 1 bis 225 Zeichen nach dem Kürzen. Bei `create` erforderlich und bei `update` optional, wo Weglassen den Namen behält. Nur Leerraum ergibt einen 422. Ein Name, den schon ein anderes Label hat, ohne Beachtung der Groß- und Kleinschreibung verglichen, ergibt einen 409 `label_name_taken`, geworfen als `ConflictException`. `create` lehnt ab, sobald der Workspace 50 Labels hat, mit einem 422 `label_limit_reached`, geworfen als `ValidationException`.
colorarray or null- Bei beiden Aufrufen optional. Weglassen bei `update` behält die gespeicherte Farbe, und `'color' => null` löscht sie. Der Body ist strikt, ein knapp danebenliegender Schlüssel wie `colour` ergibt daher einen 422 und kein stilles Nichtstun.
color.backgroundColorstringerforderlich- Eine Hex-Farbe (`#RGB`, `#RGBA`, `#RRGGBB` oder `#RRGGBBAA`, in Großbuchstaben gespeichert) oder ein Verlaufs-Token: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` oder `gradient:midnight`. Ein leerer String bedeutet keine Farbe, alles andere ergibt 422 `invalid_parameter`.
color.textColorstring- Wird angenommen und ignoriert. Die Schriftfarbe wird aus `backgroundColor` berechnet, genauso wie in der App.
Antwort: ein Label
Ein Label ist ein Array mit camelCase-Schlüsseln, $label['threadCount'] liest also die Anzahl, und $label['color']['backgroundColor'] ?? null liest die Farbe und ergibt null, wenn das Label keine hat.
objectstring- Immer der String `label`. `create` und `update` geben dasselbe Array zurück, so gelesen, wie es gespeichert ist.
idstring- Die id des Labels und das, was `get`, `update`, `delete` und `threads->update` nehmen. Sie ändert sich nie, auch nicht nach einer Umbenennung.
namestring- Was der Nutzer sieht.
typestring- Immer `user`. System-Labels werden hier nie ausgeliefert, und eine System-id bei `get` ergibt einen 404, geworfen als `NotFoundException`.
colorarray or null- null, wenn das Label keine Farbe hat.
color.backgroundColorstring- Die gespeicherte Farbe: ein Hex-Wert oder ein Verlaufs-Token. `listColors` liefert die beiden Enden eines Verlaufs.
color.textColorstring- Die Schriftfarbe, die die App auf die Farbe zeichnet, `#18181B` oder `#FFFFFF`, auf dem Server berechnet statt gespeichert.
threadCountint- Wie viele Unterhaltungen das Label gerade tragen. Für einen auf bestimmte Adressen beschränkten Key zählen nur Unterhaltungen, die an diese zugestellt wurden.
createdAtstring or null- Wann das Label angelegt wurde, als ISO 8601, oder null bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.
updatedAtstring or null- Die letzte Umbenennung oder Umfärbung, als ISO 8601, oder null bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.
Antwort: ein Farbfeld (labels->listColors)
kindstring- Ob das Farbfeld eine Farbe oder ein Verlauf ist: `solid` oder `gradient`.
namestring- Der Name des Farbfelds, etwa `red` oder `sunset`.
valuestring- Was als `color.backgroundColor` zu senden ist, um dieses Farbfeld zu verwenden.
solidstring- Ein einzelner Hex-Wert für Stellen, an denen kein Verlauf gezeichnet werden kann. Bei einer Volltonfarbe dasselbe wie `value`.
fromstring or null- Wo ein Verlauf beginnt, im Winkel von 135 Grad gezeichnet. null bei einer Volltonfarbe.
tostring or null- Wo ein Verlauf endet. null bei einer Volltonfarbe.
textColorstring- Die Schriftfarbe, die die App auf dieses Farbfeld zeichnet.