Atualizar um rótulo

É possível atualizar um único marcador usando a API Google Drive Labels aplicando um conjunto de solicitações de atualização que resultam em uma nova revisão de rascunho. Por exemplo, você pode atualizar um marcador existente Properties (a descrição básica do marcador) ou adicionar um novo Field ao marcador.

A atualização do marcador funciona como uma atualização em lote, já que o método recebe uma lista de objetos Request de atualização. Ela faz atualizações de acordo com a mesma ordem especificada na solicitação em lote. As atualizações na atualização em lote são aplicadas de forma atômica. Ou seja, se alguma solicitação no lote não for bem-sucedida, toda a atualização falhará e nenhuma das mudanças (possivelmente dependentes) será aplicada. O marcador permanece inalterado.

Se a atualização for bem-sucedida, a revisão de rascunho resultante precisará ser publicada antes que as mudanças possam ser usadas com qualquer item do Google Drive.

Atualizar objetos de marcador

Um marcador inclui muitos outros tipos de objetos que podem ser atualizados, como:

  • Properties do marcador
  • Objetos Field e tipos de campo
  • Choice de seleção e Properties de escolha de seleção

Esses são alguns dos muitos objetos que controlam a aparência e a operação de um marcador.

Categorias de operação

As operações a seguir com suporte do delta método no labels recurso podem ser agrupadas nas seguintes categorias gerais:

Categoria Descrição
CriarAdicionar objetos.
AtualizarAtualizar determinadas propriedades de um objeto.
AtivarAtivar objetos.
DesativarDesativar objetos.
ExcluirRemover objetos.

Essas categorias são usadas na próxima seção para descrever o comportamento de operações específicas.

Solicitações de atualização

O método delta funciona usando um ou mais objetos de solicitação, cada um especificando um único tipo de solicitação a ser realizada. Há muitos tipos diferentes de solicitações. Confira um detalhamento dos tipos de solicitações, agrupadas em diferentes categorias.

Solicitar objeto
Propriedades do marcador
Atualizar UpdateLabelPropertiesRequest
Campo
Criar CreateFieldRequest
Atualizar UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Ativar EnableFieldRequest
Desativar DisableFieldRequest
Excluir DeleteFieldRequest
Escolha de seleção
Criar CreateSelectionChoiceRequest
Atualizar UpdateSelectionChoicePropertiesRequest
Ativar EnableSelectionChoiceRequest
Desativar DisableSelectionChoiceRequest
Excluir DeleteSelectionChoiceRequest

Máscaras de campo

Muitas das solicitações do tipo "Atualizar" e "Desativar" exigem uma FieldMask. Essa é uma lista de campos separados por vírgulas que você quer atualizar, deixando os outros campos inalterados. A máscara é necessária para garantir que apenas os campos que você quer editar sejam atualizados. É preciso especificar pelo menos um campo.

Exemplo

Para atualizar um marcador, use o delta método no labels recurso.

Você também precisa especificar:

  • O parâmetro de consulta useAdminAccess está definido como true para usar as credenciais de administrador do usuário. Antes de permitir o acesso, o servidor verifica se o usuário tem os privilégios de administrador de rótulos de classificação necessários.

  • Uma Request que especifica as atualizações aplicáveis ao marcador.

  • Um title de marcador pelo Properties objeto.

  • Um ou mais Field objetos.

  • Um recurso labels que representa o marcador. Ele contém um name e um id, que é um identificador globalmente exclusivo do marcador.

  • Um objeto LabelView como LABEL_VIEW_FULL para definir uma visualização de recurso que é aplicada às respostas de marcador. LABEL_VIEW_FULL retorna todos os campos possíveis.

O exemplo de código a seguir mostra como usar o id do marcador para atualizar o marcador correto:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Substitua:

  • TITLE: o título do marcador.
  • DISPLAY_NAME: o nome de exibição do campo.
  • ID: o ID do marcador.

O marcador, o campo ou a escolha são atualizados, o ID da revisão do marcador é incrementado e o marcador é armazenado em um banco de dados como um marcador de rascunho. O marcador tem o State de PUBLISHED com hasUnpublishedChanges definido como true o que significa que há mudanças de rascunho, mas elas não estão disponíveis para os usuários. O marcador atualizado precisa ser PUBLISHED antes que as mudanças fiquem visíveis para os usuários. Para mais informações, consulte Ciclo de vida do marcador.