Метки
`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 передаёт ярлыки по одному в блок или без блока возвращает 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`. `create` отказывает, когда в рабочем пространстве уже 50 ярлыков, с 422 `label_limit_reached`, выбрасываемым как `OpenEmail::ValidationError`.
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- Всегда строка `label`. `create` и `update` возвращают этот же Hash, прочитанный обратно в сохранённом виде.
idString- Идентификатор ярлыка, который принимают `get`, `update`, `delete` и `threads.update`. Никогда не меняется, даже после переименования.
nameString- То, что видит пользователь.
typeString- Всегда `user`. Системные ярлыки здесь никогда не отдаются, а системный идентификатор в `get` даёт 404, выбрасываемый как `OpenEmail::NotFoundError`.
colorHash or nil- nil, если у ярлыка нет цвета.
color.backgroundColorString- Сохранённый цвет: шестнадцатеричное значение или токен градиента. `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- Цвет текста, который приложение рисует на этом образце.