Belgelere geç
Ruby

Etiketler

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

Her yöntem

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 ada göre sıralanmış etiketlerden oluşan bir OpenEmail::Page döndürür; list_all ve iterate her sayfayı dolaşır. list_all tek bir Array döndürür, iterate ise etiketleri birer birer bir bloğa verir ya da blok olmadan bir Enumerator döndürür. Her etiket, rengini, threadCount değerini ve ne zaman oluşturulup en son ne zaman değiştirildiğini taşıyan Symbol anahtarlı bir Hash'tir. list_colors, uygulamanın sunduğu paleti (on dört düz renk ve yedi gradyan) sayfalama olmadan, Hash'lerden oluşan düz bir Array olarak döndürür. type her zaman user'dır. Kimlik, etiketin oluşturulduğu addan gelir; bu yüzden Invoices etiketinin kimliği USER_INVOICES olur ve asla değişmez.

create ve update alanları anahtar kelime argümanları ya da tek bir Hash olarak verilir ve API'nin adlarını korur; bu yüzden bir renk color: {backgroundColor: "#3B82F6"} biçimindedir.

Bir etiket çalışma alanına aittir; bu yüzden yeniden adlandırma, renk değiştirme ya da silme onu her üye ve her anahtar için değiştirir. threads.update bir yazışmaya etiket ekler ve kaldırır; client.threads.list(folder: "USER_INVOICES") ise bu etiketi taşıyan her yazışmayı listeler. Konuşma dizileri sayfası ikisini de anlatır.

Parametreler: labels.create ve labels.update

nameString
Etiketin görünen adı; ölçülmeden önce baştaki ve sondaki boşluklar kırpılır, bu yüzden sınır kırpmadan sonra 1 ile 225 karakter arasıdır. `create` üzerinde zorunlu, `update` üzerinde isteğe bağlıdır; orada belirtilmezse ad korunur. Yalnızca boşluk 422 verir. Büyük/küçük harf gözetmeksizin karşılaştırıldığında başka bir etikette zaten bulunan bir ad, `OpenEmail::ConflictError` olarak fırlatılan 409 `label_name_taken` verir. Çalışma alanında 50 etiket olduğunda `create`, `OpenEmail::ValidationError` olarak fırlatılan 422 `label_limit_reached` ile reddeder.
colorHash or nil
Her iki çağrıda da isteğe bağlıdır. `update` üzerinde belirtilmezse saklanan renk korunur, `color: nil` ise onu temizler. Gövde katıdır; bu yüzden `colour:` gibi neredeyse doğru bir anahtar sessizce hiçbir şey yapmamak yerine 422 verir.
color.backgroundColorStringzorunlu
Bir hex rengi (`#RGB`, `#RGBA`, `#RRGGBB` ya da `#RRGGBBAA`, büyük harfle saklanır) ya da bir geçiş belirteci: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` ya da `gradient:midnight`. Boş bir dize renk olmadığı anlamına gelir; başka her şey 422 `invalid_parameter` döndürür.
color.textColorString
Kabul edilir ve yok sayılır. Yazı rengi, uygulamada olduğu gibi `backgroundColor` değerinden hesaplanır.

Yanıt: bir etiket

Bir etiket Symbol anahtarlı bir Hash'tir; bu yüzden label[:threadCount] sayıyı okur, label.dig(:color, :backgroundColor) ise rengi okur ve etiketin rengi yoksa nil verir.

objectString
Her zaman `label` dizesi. `create` ve `update`, saklandığı hâliyle geri okunan bu aynı Hash'i döndürür.
idString
Etiketin kimliği; `get`, `update`, `delete` ve `threads.update` bunu alır. Yeniden adlandırmadan sonra bile asla değişmez.
nameString
Kullanıcının gördüğü.
typeString
Her zaman `user`. Sistem etiketleri burada asla sunulmaz; `get` üzerinde bir sistem kimliği `OpenEmail::NotFoundError` olarak fırlatılan bir 404 verir.
colorHash or nil
Etiketin rengi yoksa nil'dir.
color.backgroundColorString
Saklanan renk: bir hex değeri ya da bir gradyan belirteci. `list_colors` bir gradyanın iki ucunu verir.
color.textColorString
Uygulamanın rengin üzerine çizdiği yazı rengi, `#18181B` ya da `#FFFFFF`; saklanmaz, sunucuda hesaplanır.
threadCountInteger
Etiketin şu anda kaç konuşmada bulunduğu. Belirli adreslerle sınırlı bir anahtar için yalnızca bu adreslere teslim edilen konuşmalar sayılır.
createdAtString or nil
Etiketin oluşturulduğu an, ISO 8601 olarak; bu zamanlar kaydedilmeye başlanmadan önce oluşturulmuş bir etiket için nil.
updatedAtString or nil
Son yeniden adlandırma ya da renk değişikliği, ISO 8601 olarak; bu zamanlar kaydedilmeye başlanmadan önce oluşturulmuş bir etiket için nil.

Yanıt: bir renk örneği (labels.list_colors)

kindString
Örneğin tek bir renk mi yoksa bir gradyan mı olduğu: `solid` ya da `gradient`.
nameString
Örneğin adı, `red` ya da `sunset` gibi.
valueString
Bu örneği kullanmak için `color.backgroundColor` olarak gönderilecek değer.
solidString
Geçiş çizilemeyen yerler için tek bir hex değeri. Düz renkte `value` ile aynıdır.
fromString or nil
135 derecelik açıyla çizilen bir gradyanın başladığı renk. Düz bir renkte nil'dir.
toString or nil
Bir gradyanın bittiği renk. Düz bir renkte nil'dir.
textColorString
Uygulamanın bu örneğin üzerine çizdiği yazı rengi.