Libellés
`labels.list`, `list_all`, `iterate`, `list_colors`, `get`, `create`, `update` et `delete`.
Toutes les méthodes
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.