Etiquetas
`labels->list`, `listAll`, `iterate`, `listColors`, `get`, `create`, `update` e `delete`.
Todos os métodos
$page = $client->labels->list(limit: 50);$every = $client->labels->listAll();$colors = $client->labels->listColors();echo count($page), ' ', count($every), ' ', count($colors), PHP_EOL; foreach ($client->labels->iterate() as $row) { echo $row['name'], ' ', $row['threadCount'], PHP_EOL;} $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']);echo $label['name'], ' ', $label['color']['backgroundColor'] ?? 'no colour', PHP_EOL; $client->labels->delete($created['id']);list devolve uma OpenEmail\Result\Page de etiquetas ordenadas por nome, e listAll e iterate percorrem todas as páginas. listAll devolve um único array, e iterate devolve um Generator que entrega uma etiqueta de cada vez. Cada etiqueta é um array com chaves em camelCase que tem a sua cor, threadCount e quando foi criada e alterada pela última vez. listColors devolve a paleta que a aplicação oferece, catorze sólidas e sete gradientes, como uma lista simples de arrays 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 as chaves de um único array com 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 `ConflictException`. `create` recusa quando o espaço de trabalho já tem 50 etiquetas, com um 422 `label_limit_reached`, lançado como `ValidationException`.
colorarray or null- Opcional em ambas as chamadas. Omiti-lo em `update` mantém a cor guardada, e `'color' => null` 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 array com chaves em camelCase, por isso $label['threadCount'] lê a contagem, e $label['color']['backgroundColor'] ?? null lê a cor e dá null quando a etiqueta não tem nenhuma.
objectstring- Sempre a string `label`. `create` e `update` devolvem este mesmo array, 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 `NotFoundException`.
colorarray or null- É null quando a etiqueta não tem cor.
color.backgroundColorstring- A cor guardada: um valor hexadecimal ou um token de gradiente. `listColors` 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.
threadCountint- 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 null- Quando a etiqueta foi criada, em ISO 8601, ou null numa etiqueta criada antes de estas datas serem registadas.
updatedAtstring or null- A última mudança de nome ou de cor, em ISO 8601, ou null numa etiqueta criada antes de estas datas serem registadas.
Resposta: uma amostra de cor (labels->listColors)
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 null- Onde começa um gradiente, desenhado a 135 graus. É null numa sólida.
tostring or null- Onde acaba um gradiente. É null numa sólida.
textColorstring- A tinta que a app desenha sobre esta amostra.