Estrutura NowAttachmentMetadata - iOS

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • A estrutura NowAttachmentMetadata fornece funções que permitem codificar e gerenciar metadados de anexo.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    averageImageColor Cadeia de caracteres Cor mais dominante na imagem associada.
    blocoSizeInBytes Números inteiros Tamanho do bloco.

    Unidade: bytes

    Tamanho​in​Bytes​compactado Números inteiros Tamanho compactado do anexo.

    Unidade: bytes

    criado Data Data em que o anexo foi criado.
    createdBy Cadeia de caracteres Entidade que criou o anexo.
    download URL URL do anexo na instância ServiceNow.
    nomeArquivo Cadeia de caracteres Nome do arquivo de anexo.
    hash Cadeia de caracteres Resumo de SHA256 esperado para o anexo.

    Um anexo baixado é validado comparando seu resumo calculado com este resumo SHA256.

    imageHeight Números inteiros Altura da imagem.

    Unidade: pixels

    largura da imagem Números inteiros Largura da imagem.

    Unidade: pixels

    estáCompactado Booliano Sinalizador que indica se o arquivo de anexo está compactado.
    Valores possíveis:
    • verdadeiro: o anexo está compactado.
    • falso: anexo em não compactado.
    mimeType Cadeia de caracteres Tipo de MIME de anexo.
    modificaçãoContagem Números inteiros Número de vezes que o anexo foi modificado.
    sizeInBytes Números inteiros Tamanho do anexo.

    Unidade: bytes

    sourceSysId Cadeia de caracteres Sys_id do arquivo de anexo.
    sourceTableName Cadeia de caracteres Nome da tabela de origem na qual o anexo reside.
    estado Estado de disponibilidade, como condicionalmente, indisponível, disponível e pendente.
    sysId Cadeia de caracteres Identificador Exclusivo Globalmente (GUID) de 32 caracteres, que identifica cada registro em uma instância ServiceNow.
    marcadores Cadeia de caracteres Lista de marcadores associados ao anexo.
    atualizado Data Data em que o anexo foi modificado pela última vez.
    updatedBy Cadeia de caracteres Entidade que atualizou o anexo.

    NowAttachmentMetadata - encode (para codificar: codificador)

    Codifica o valor do objeto atual em dados usando o codificador especificado.

    Se o objeto não for codificado nos dados, o codificador codificará um contêiner de chave vazio em seu lugar. Esta função também emitirá um erro se algum valor for inválido para o formato do codificador especificado.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    para codificador Codificador Codificador que define a estrutura da saída codificada.
    Tabela 3. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar essa função.

    let query = "active=true^short_descriptionLIKEbroken"
    let filter = Filter(query: query)
    metadataPublisher(filter: filter, limit: 1)
    private func metadataPublisher(filter: Filter?, limit: Int?) {
      let publisher = attachmentService.attachmentMetadata(filter: filter, limit: limit)
      publisher
      .receive(on: DispatchQueue.main)
      .encode(encoder: JSONEncoder())
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // attachment published failed, return NowDataError
        }
      } receiveValue: { [weak self] (data) in
        // Attachment published successful, return data
      }
      .store(in: &subscriptions)
    }

    NowAttachmentMetadata - init (do decodificador: decodificador)

    Cria uma nova instância NowAttachmentMetadata decodificando dados em um objeto do decodificador especificado.

    Este método gerará um erro se a leitura do decodificador falhar ou se os dados lidos estiverem corrompidos ou inválidos.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    decodificador Decodificador Decodificador para ler dados.
    Tabela 5. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

    guard 
      let metadataHeader = response.httpResponse?.value(forHTTPHeaderField: NowAttachment.attachmentMetadataHeaderKey),
      let metadataHeaderData = metadataHeader.data(using: .utf8) else {
        throw NowDataError.missingAttachmentMetadata
      }
                
    let metadata = try coder.decode(NowAttachmentMetadata.self, from: metadataHeaderData)
    let attachment = NowAttachment(metadata: metadata, data: response.data)