برچسبها
`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 هر بار یک برچسب را به یک بلاک yield میکند، یا بدون بلاک یک Enumerator برمیگرداند. هر برچسب یک Hash با کلیدهای Symbol است که رنگش، threadCount و زمان ساخت و آخرین تغییرش را دارد. list_colors پالتی را که برنامه پیشنهاد میدهد، چهارده رنگ یکدست و هفت گرادیان، بهصورت یک Array سادهٔ Hashها و بدون صفحهبندی برمیگرداند. type همیشه user است. شناسه از نامی میآید که برچسب با آن ساخته شده، پس Invoices میشود USER_INVOICES، و هیچوقت عوض نمیشود.
فیلدهای create و update آرگومانهای کلیدواژهای یا یک Hash هستند و نامهای API را نگه میدارند، پس رنگ به شکل color: {backgroundColor: "#3B82F6"} است.
برچسب به فضای کاری تعلق دارد، پس تغییر نام، تغییر رنگ یا حذف، آن را برای همهٔ اعضا و همهٔ کلیدها تغییر میدهد. threads.update برچسبها را روی یک گفتوگو میگذارد و برمیدارد، و client.threads.list(folder: "USER_INVOICES") هر گفتوگویی را که آن برچسب را دارد فهرست میکند. صفحهٔ «رشتهها» هر دو را پوشش میدهد.
پارامترها: labels.create و labels.update
nameString- نام نمایشی برچسب، که پیش از اندازهگیری فاصلههای دو سرش حذف میشود، پس محدوده پس از این حذف 1 تا 225 نویسه است. در `create` الزامی و در `update` اختیاری است، که ننوشتنش نام را نگه میدارد. فقط فاصله یک 422 است. نامی که برچسب دیگری از پیش دارد، با مقایسهای بیتوجه به بزرگی و کوچکی حروف، یک 409 `label_name_taken` است که بهصورت `OpenEmail::ConflictError` raise میشود. `create` وقتی فضای کاری 50 برچسب دارد رد میکند، با یک 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`. رشتهٔ خالی یعنی بیرنگ، و هر چیز دیگری یک 422 `invalid_parameter` است.
color.textColorString- پذیرفته و نادیده گرفته میشود. جوهر از `backgroundColor` محاسبه میشود، همانطور که برنامه این کار را میکند.
پاسخ: یک برچسب
هر برچسب یک Hash با کلیدهای Symbol است، پس label[:threadCount] تعداد را میخواند، و label.dig(:color, :backgroundColor) رنگ را میخواند و وقتی برچسب رنگی ندارد nil میدهد.
objectString- همیشه String برابر `label`. `create` و `update` همین Hash را برمیگردانند، همانطور که ذخیره شده خواندهشده.
idString- شناسهٔ برچسب، و چیزی که `get`، `update`، `delete` و `threads.update` میگیرند. هیچوقت عوض نمیشود، حتی پس از تغییر نام.
nameString- چیزی که کاربر میبیند.
typeString- همیشه `user`. برچسبهای سیستمی هرگز اینجا ارائه نمیشوند، و شناسهٔ سیستمی در `get` یک 404 است که بهصورت `OpenEmail::NotFoundError` raise میشود.
colorHash or nil- وقتی برچسب رنگی ندارد nil است.
color.backgroundColorString- رنگ ذخیرهشده: یک مقدار hex یا یک توکن گرادیان. `list_colors` دو سر یک گرادیان را میدهد.
color.textColorString- جوهری که برنامه روی رنگ میکشد، `#18181B` یا `#FFFFFF`، که بهجای ذخیرهشدن روی سرور محاسبه میشود.
threadCountInteger- تعداد گفتگوهایی که اکنون برچسب را دارند. برای کلیدی که به نشانیهای خاصی محدود است، فقط گفتگوهای تحویلشده به همان نشانیها شمرده میشوند.
createdAtString or nil- زمان ساخته شدن برچسب، بهصورت ISO 8601، یا nil برای برچسبی که پیش از ثبت این زمانها ساخته شده.
updatedAtString or nil- آخرین تغییر نام یا رنگ، بهصورت ISO 8601، یا nil برای برچسبی که پیش از ثبت این زمانها ساخته شده.
پاسخ: یک نمونهرنگ (labels.list_colors)
kindString- اینکه نمونهرنگ یک رنگ است یا یک گرادیان: `solid` یا `gradient`.
nameString- نام نمونه، مانند `red` یا `sunset`.
valueString- چیزی که باید بهعنوان `color.backgroundColor` فرستاد تا از این نمونه استفاده شود.
solidString- یک hex تنها برای جاهایی که نمیتوان گرادیان کشید. در رنگ یکدست همان `value` است.
fromString or nil- جایی که گرادیان شروع میشود، با زاویهٔ 135 درجه. در رنگ یکدست nil است.
toString or nil- جایی که گرادیان تمام میشود. در رنگ یکدست nil است.
textColorString- جوهری که برنامه روی این نمونه میکشد.