Libellés
`labels->list`, `listAll`, `iterate`, `listColors`, `get`, `create`, `update` et `delete`.
Toutes les méthodes
$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 renvoie une OpenEmail\Result\Page de libellés triés par nom, et listAll et iterate parcourent toutes les pages. listAll renvoie un seul tableau, et iterate renvoie un Generator qui fournit les libellés un par un. Chaque libellé est un tableau à clés en camelCase qui porte sa couleur, threadCount et la date de sa création et de sa dernière modification. listColors renvoie la palette de l'application, quatorze couleurs unies et sept dégradés, sous forme de simple liste de tableaux, sans pagination. type vaut toujours user. L'id est tiré du nom sous lequel le libellé a été créé : Invoices donne donc USER_INVOICES, et il ne change jamais.
Les champs de create et update sont les clés d'un tableau aux noms de l'API : une couleur s'écrit donc 'color' => ['backgroundColor' => '#3B82F6'].
Un libellé appartient à l'espace de travail : un renommage, un changement de couleur ou une suppression le change pour chaque membre et chaque clé. threads->update pose et retire des libellés sur une conversation, et $client->threads->list(folder: 'USER_INVOICES') liste toutes les conversations qui en portent un. La page Fils couvre les deux.
Paramètres : labels->create et labels->update
namestring- Le nom affiché du libellé, rogné avant d'être mesuré : la limite est donc de 1 à 225 caractères après rognage. Obligatoire sur `create` et optionnel sur `update`, où l'omettre garde le nom. Des espaces seuls donnent un 422. Un nom qu'un autre libellé porte déjà, comparé sans tenir compte de la casse, donne un 409 `label_name_taken`, levé sous la forme d'une `ConflictException`. `create` refuse dès que l'espace de travail compte 50 libellés, avec un 422 `label_limit_reached`, levé sous la forme d'une `ValidationException`.
colorarray or null- Optionnel sur les deux appels. L'omettre sur `update` garde la couleur stockée, et `'color' => null` l'efface. Le corps est strict : une clé approchante comme `colour` donne un 422 plutôt qu'une opération sans effet silencieuse.
color.backgroundColorstringobligatoire- Une couleur hexadécimale (`#RGB`, `#RGBA`, `#RRGGBB` ou `#RRGGBBAA`, stockée en majuscules) ou un jeton de dégradé : `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` ou `gradient:midnight`. Une chaîne vide signifie aucune couleur, et tout le reste donne un 422 `invalid_parameter`.
color.textColorstring- Accepté et ignoré. L'encre est calculée à partir de `backgroundColor`, comme le fait l'app.
Réponse : un libellé
Un libellé est un tableau à clés en camelCase : $label['threadCount'] lit donc le nombre, et $label['color']['backgroundColor'] ?? null lit la couleur et donne null quand le libellé n'en a pas.
objectstring- Toujours la chaîne `label`. `create` et `update` renvoient ce même tableau, relu tel qu'il est stocké.
idstring- L'id du libellé, et ce que prennent `get`, `update`, `delete` et `threads->update`. Il ne change jamais, même après un renommage.
namestring- Ce que voit l'utilisateur.
typestring- Toujours `user`. Les libellés système ne sont jamais servis ici, et un id système sur `get` donne un 404, levé sous la forme d'une `NotFoundException`.
colorarray or null- null quand le libellé n'a pas de couleur.
color.backgroundColorstring- La couleur stockée : une valeur hexadécimale ou un jeton de dégradé. `listColors` donne les deux extrémités d'un dégradé.
color.textColorstring- L'encre que l'app dessine sur la couleur, `#18181B` ou `#FFFFFF`, calculée sur le serveur plutôt que stockée.
threadCountint- Le nombre de conversations qui portent le libellé en ce moment. Pour une clé limitée à certaines adresses, seules comptent les conversations livrées à ces adresses.
createdAtstring or null- La date de création du libellé, en ISO 8601, ou null pour un libellé créé avant que ces dates ne soient enregistrées.
updatedAtstring or null- Le dernier renommage ou changement de couleur, en ISO 8601, ou null pour un libellé créé avant que ces dates ne soient enregistrées.
Réponse : un échantillon de couleur (labels->listColors)
kindstring- Si l'échantillon est une couleur unie ou un dégradé : `solid` ou `gradient`.
namestring- Le nom de l'échantillon, comme `red` ou `sunset`.
valuestring- Ce qu'il faut envoyer comme `color.backgroundColor` pour utiliser cet échantillon.
solidstring- Un unique hexadécimal pour les endroits où un dégradé ne peut pas être dessiné. Identique à `value` pour une couleur unie.
fromstring or null- Le point de départ d'un dégradé, dessiné à 135 degrés. null pour une couleur unie.
tostring or null- Le point d'arrivée d'un dégradé. null pour une couleur unie.
textColorstring- L'encre que l'app dessine sur cet échantillon.