Aller à la documentation
Ruby

Libellés

`labels.list`, `list_all`, `iterate`, `list_colors`, `get`, `create`, `update` et `delete`.

Toutes les méthodes

labels.rb
page = client.labels.list(limit: 50)every = client.labels.list_allcolors = client.labels.list_colorsputs page.items.size, every.size, colors.size client.labels.iterate do |row|  puts "#{row[:name]} #{row[:threadCount]}"end 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])puts label[:name], label.dig(:color, :backgroundColor) client.labels.delete(created[:id])

list renvoie une OpenEmail::Page de libellés triés par nom, et list_all et iterate parcourent toutes les pages. list_all renvoie un seul Array, et iterate passe les libellés un par un à un bloc, ou renvoie un Enumerator sans bloc. Chaque libellé est un Hash à clés Symbol qui porte sa couleur, threadCount et la date de sa création et de sa dernière modification. list_colors renvoie la palette de l'application, quatorze couleurs unies et sept dégradés, sous forme de simple Array de Hashes, 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 des arguments nommés ou un seul Hash, et gardent les 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 forme d'`OpenEmail::ConflictError`. `create` refuse dès que l'espace de travail compte 50 libellés, avec un 422 `label_limit_reached`, levé sous forme d'`OpenEmail::ValidationError`.
colorHash or nil
Optionnel sur les deux appels. L'omettre sur `update` garde la couleur stockée, et `color: nil` 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 Hash à clés Symbol : label[:threadCount] lit donc le nombre, et label.dig(:color, :backgroundColor) lit la couleur et donne nil quand le libellé n'en a pas.

objectString
Toujours la chaîne `label`. `create` et `update` renvoient ce même Hash, 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 forme d'`OpenEmail::NotFoundError`.
colorHash or nil
nil quand le libellé n'a pas de couleur.
color.backgroundColorString
La couleur stockée : une valeur hexadécimale ou un jeton de dégradé. `list_colors` 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.
threadCountInteger
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 nil
La date de création du libellé, en ISO 8601, ou nil pour un libellé créé avant que ces dates ne soient enregistrées.
updatedAtString or nil
Le dernier renommage ou changement de couleur, en ISO 8601, ou nil pour un libellé créé avant que ces dates ne soient enregistrées.

Réponse : un échantillon de couleur (labels.list_colors)

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 nil
Le point de départ d'un dégradé, dessiné à 135 degrés. nil pour une couleur unie.
toString or nil
Le point d'arrivée d'un dégradé. nil pour une couleur unie.
textColorString
L'encre que l'app dessine sur cet échantillon.