Zur Dokumentation springen
Ruby

Labels

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

Jede Methode

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 gibt eine OpenEmail::Page mit nach Namen sortierten Labels zurück, und list_all und iterate durchlaufen jede Seite. list_all gibt ein einziges Array zurück, und iterate übergibt ein Label nach dem anderen an einen Block oder gibt ohne Block einen Enumerator zurück. Jedes Label ist ein Hash mit Symbol-Schlüsseln, der seine Farbe, threadCount und die Zeitpunkte trägt, zu denen es angelegt und zuletzt geändert wurde. list_colors gibt die Palette der App zurück, vierzehn Volltonfarben und sieben Verläufe, als einfaches Array von Hashes 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 Keyword-Argumente oder ein einzelner Hash und behalten die 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`, ausgelöst als `OpenEmail::ConflictError`. `create` lehnt ab, sobald der Workspace 50 Labels hat, mit einem 422 `label_limit_reached`, ausgelöst als `OpenEmail::ValidationError`.
colorHash or nil
Bei beiden Aufrufen optional. Weglassen bei `update` behält die gespeicherte Farbe, und `color: nil` 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 Hash mit Symbol-Schlüsseln, label[:threadCount] liest also die Anzahl, und label.dig(:color, :backgroundColor) liest die Farbe und ergibt nil, wenn das Label keine hat.

objectString
Immer der String `label`. `create` und `update` geben denselben Hash zurück, so gelesen, wie er 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, ausgelöst als `OpenEmail::NotFoundError`.
colorHash or nil
nil, wenn das Label keine Farbe hat.
color.backgroundColorString
Die gespeicherte Farbe: ein Hex-Wert oder ein Verlaufs-Token. `list_colors` 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.
threadCountInteger
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 nil
Wann das Label angelegt wurde, als ISO 8601, oder nil bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.
updatedAtString or nil
Die letzte Umbenennung oder Umfärbung, als ISO 8601, oder nil bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.

Antwort: ein Farbfeld (labels.list_colors)

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 nil
Wo ein Verlauf beginnt, im Winkel von 135 Grad gezeichnet. nil bei einer Volltonfarbe.
toString or nil
Wo ein Verlauf endet. nil bei einer Volltonfarbe.
textColorString
Die Schriftfarbe, die die App auf dieses Farbfeld zeichnet.