Etiketler
`labels.list`, `list_all`, `iterate`, `list_colors`, `get`, `create`, `update` ve `delete`.
Her yöntem
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.