Saltar para a documentação
Ruby

Etiquetas

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

Todos os métodos

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 devolve uma OpenEmail::Page de etiquetas ordenadas por nome, e list_all e iterate percorrem todas as páginas. list_all devolve um único Array, e iterate passa uma etiqueta de cada vez a um bloco, ou devolve um Enumerator sem bloco. Cada etiqueta é um Hash com chaves Symbol que tem a sua cor, threadCount e quando foi criada e alterada pela última vez. list_colors devolve a paleta que a aplicação oferece, catorze sólidas e sete gradientes, como um Array simples de Hashes sem paginação. type é sempre user. O id vem do nome com que a etiqueta foi criada, por isso Invoices é USER_INVOICES, e nunca muda.

Os campos de create e update são argumentos nomeados ou um único Hash, e mantêm os nomes da API, por isso uma cor é color: {backgroundColor: "#3B82F6"}.

Uma etiqueta pertence ao espaço de trabalho, por isso renomeá-la, mudar-lhe a cor ou eliminá-la altera-a para todos os membros e todas as chaves. threads.update põe e tira etiquetas de uma conversa, e client.threads.list(folder: "USER_INVOICES") lista todas as conversas que têm uma. A página Conversas trata de ambos.

Parâmetros: labels.create e labels.update

nameString
O nome visível da etiqueta, aparado antes de ser medido, por isso o limite é de 1 a 225 caracteres depois de aparar. Obrigatório em `create` e opcional em `update`, onde omiti-lo mantém o nome. Só espaços é um 422. Um nome que outra etiqueta já tem, comparado sem distinguir maiúsculas, é um 409 `label_name_taken`, lançado como `OpenEmail::ConflictError`. `create` recusa quando o espaço de trabalho já tem 50 etiquetas, com um 422 `label_limit_reached`, lançado como `OpenEmail::ValidationError`.
colorHash or nil
Opcional em ambas as chamadas. Omiti-lo em `update` mantém a cor guardada, e `color: nil` limpa-a. O corpo é estrito, por isso uma chave quase certa como `colour:` é um 422 e não um no-op silencioso.
color.backgroundColorStringobrigatório
Uma cor hexadecimal (`#RGB`, `#RGBA`, `#RRGGBB` ou `#RRGGBBAA`, guardada em maiúsculas) ou um token de gradiente: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` ou `gradient:midnight`. Uma string vazia significa sem cor, e qualquer outra coisa é um 422 `invalid_parameter`.
color.textColorString
Aceite e ignorado. A tinta é calculada a partir de `backgroundColor`, tal como a app faz.

Resposta: uma etiqueta

Uma etiqueta é um Hash com chaves Symbol, por isso label[:threadCount] lê a contagem, e label.dig(:color, :backgroundColor) lê a cor e dá nil quando a etiqueta não tem nenhuma.

objectString
Sempre a string `label`. `create` e `update` devolvem este mesmo Hash, lido tal como está guardado.
idString
O id da etiqueta, e o que `get`, `update`, `delete` e `threads.update` aceitam. Nunca muda, nem depois de uma mudança de nome.
nameString
O que o utilizador vê.
typeString
Sempre `user`. As etiquetas de sistema nunca são servidas aqui, e um id de sistema em `get` é um 404, lançado como `OpenEmail::NotFoundError`.
colorHash or nil
É nil quando a etiqueta não tem cor.
color.backgroundColorString
A cor guardada: um valor hexadecimal ou um token de gradiente. `list_colors` dá as duas pontas de um gradiente.
color.textColorString
A tinta que a app desenha sobre a cor, `#18181B` ou `#FFFFFF`, calculada no servidor em vez de guardada.
threadCountInteger
Quantas conversas têm a etiqueta neste momento. Para uma chave limitada a certos endereços, só contam as conversas entregues a esses endereços.
createdAtString or nil
Quando a etiqueta foi criada, em ISO 8601, ou nil numa etiqueta criada antes de estas datas serem registadas.
updatedAtString or nil
A última mudança de nome ou de cor, em ISO 8601, ou nil numa etiqueta criada antes de estas datas serem registadas.

Resposta: uma amostra de cor (labels.list_colors)

kindString
Se a amostra é uma só cor ou um gradiente: `solid` ou `gradient`.
nameString
O nome da amostra, como `red` ou `sunset`.
valueString
O que enviar como `color.backgroundColor` para usar esta amostra.
solidString
Um único hexadecimal para os sítios onde não se pode desenhar um gradiente. O mesmo que `value` numa sólida.
fromString or nil
Onde começa um gradiente, desenhado a 135 graus. É nil numa sólida.
toString or nil
Onde acaba um gradiente. É nil numa sólida.
textColorString
A tinta que a app desenha sobre esta amostra.