Etiquetas
`labels.list`, `list_all`, `iterate`, `list_colors`, `get`, `create`, `update` e `delete`.
Todos os métodos
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.