लेबल
`labels.list`, `list_all`, `iterate`, `list_colors`, `get`, `create`, `update` और `delete`।
हर मेथड
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 नाम से क्रमित लेबलों का एक OpenEmail::Page लौटाता है, और list_all तथा iterate हर पेज पर चलते हैं। list_all एक Array लौटाता है, और iterate एक बार में एक लेबल block में yield करता है, या block के बिना एक Enumerator लौटाता है। हर लेबल Symbol कुंजियों वाला Hash है जिसमें उसका रंग, threadCount और वह कब बना तथा आख़िरी बार कब बदला, ये होते हैं। list_colors ऐप द्वारा दिया जाने वाला पैलेट, चौदह ठोस रंग और सात gradient, बिना पेजिंग के Hashes की एक सादी Array के रूप में लौटाता है। type हमेशा user होता है। id उस नाम से आती है जिससे लेबल बनाया गया था, इसलिए Invoices की id USER_INVOICES है, और यह कभी नहीं बदलती।
create और update के फ़ील्ड keyword arguments या एक Hash होते हैं, और API के नाम बनाए रखते हैं, इसलिए रंग color: {backgroundColor: "#3B82F6"} है।
लेबल वर्कस्पेस का होता है, इसलिए नाम बदलना, रंग बदलना या हटाना उसे हर सदस्य और हर कुंजी के लिए बदल देता है। threads.update किसी बातचीत पर लेबल लगाता और हटाता है, और client.threads.list(folder: "USER_INVOICES") उस लेबल वाली हर बातचीत सूचीबद्ध करता है। “थ्रेड” पेज दोनों को कवर करता है।
पैरामीटर: labels.create और labels.update
nameString- लेबल का display name, नापने से पहले trim किया जाता है, इसलिए trim के बाद सीमा 1 से 225 वर्ण है। `create` पर ज़रूरी और `update` पर वैकल्पिक, जहाँ इसे छोड़ने से नाम बना रहता है। सिर्फ़ ख़ाली जगह 422 है। जो नाम किसी दूसरे लेबल का पहले से है, case की परवाह किए बिना तुलना करके, वह 409 `label_name_taken` है, जो `OpenEmail::ConflictError` के रूप में raise होता है। जब वर्कस्पेस में 50 लेबल हो जाते हैं तो `create` 422 `label_limit_reached` के साथ अस्वीकार करता है, जो `OpenEmail::ValidationError` के रूप में raise होता है।
colorHash or nil- दोनों कॉल पर वैकल्पिक। `update` पर इसे छोड़ने से सहेजा गया रंग बना रहता है, और `color: nil` उसे साफ़ कर देता है। बॉडी सख़्त है, इसलिए `colour:` जैसी लगभग सही कुंजी चुपचाप कुछ न करने के बजाय 422 है।
color.backgroundColorStringआवश्यक- एक hex रंग (`#RGB`, `#RGBA`, `#RRGGBB` या `#RRGGBBAA`, बड़े अक्षरों में सहेजा जाता है) या एक ग्रेडिएंट टोकन: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` या `gradient:midnight`। खाली string का मतलब है कोई रंग नहीं, और बाकी कुछ भी 422 `invalid_parameter` देता है।
color.textColorString- लिया जाता है और अनदेखा किया जाता है। स्याही `backgroundColor` से निकाली जाती है, ठीक वैसे ही जैसे app करता है।
जवाब: एक लेबल
लेबल Symbol कुंजियों वाला एक Hash है, इसलिए label[:threadCount] गिनती पढ़ता है, और label.dig(:color, :backgroundColor) रंग पढ़ता है और लेबल का कोई रंग न हो तो nil देता है।
objectString- हमेशा स्ट्रिंग `label`। `create` और `update` यही Hash लौटाते हैं, जैसा सहेजा गया वैसा पढ़कर।
idString- लेबल की id, और वही जो `get`, `update`, `delete` और `threads.update` लेते हैं। यह कभी नहीं बदलती, नाम बदलने के बाद भी नहीं।
nameString- जो उपयोगकर्ता देखता है।
typeString- हमेशा `user`। सिस्टम लेबल यहाँ कभी नहीं दिए जाते, और `get` पर सिस्टम id 404 है, जो `OpenEmail::NotFoundError` के रूप में raise होता है।
colorHash or nil- जब लेबल का कोई रंग न हो तो यह nil है।
color.backgroundColorString- सहेजा गया रंग: एक hex मान या gradient टोकन। `list_colors` gradient के दोनों सिरे देता है।
color.textColorString- वह स्याही जो app रंग पर खींचता है, `#18181B` या `#FFFFFF`, जो सहेजी नहीं जाती बल्कि सर्वर पर निकाली जाती है।
threadCountInteger- अभी कितनी बातचीतों पर यह लेबल है। कुछ पतों तक सीमित key के लिए केवल उन्हीं पतों पर पहुँची बातचीतें गिनी जाती हैं।
createdAtString or nil- लेबल कब बना, ISO 8601 के रूप में, या उस लेबल के लिए nil जो इन समयों के दर्ज होने से पहले बना।
updatedAtString or nil- आख़िरी बार नाम या रंग कब बदला, ISO 8601 के रूप में, या उस लेबल के लिए nil जो इन समयों के दर्ज होने से पहले बना।
जवाब: एक रंग नमूना (labels.list_colors)
kindString- नमूना एक रंग है या gradient: `solid` या `gradient`।
nameString- स्वॉच का नाम, जैसे `red` या `sunset`।
valueString- इस स्वॉच को इस्तेमाल करने के लिए `color.backgroundColor` के रूप में क्या भेजें।
solidString- उन जगहों के लिए एक अकेला hex जहाँ ग्रेडिएंट नहीं खींचा जा सकता। ठोस रंग में `value` के बराबर।
fromString or nil- gradient कहाँ से शुरू होता है, 135 डिग्री पर खींचा गया। ठोस रंग पर nil।
toString or nil- gradient कहाँ ख़त्म होता है। ठोस रंग पर nil।
textColorString- वह स्याही जो app इस स्वॉच पर खींचता है।