Estrutura NowAttachmentMetadata - iOS

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 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 Inteiro Tamanho do bloco.

    Unidade: bytes

    Tamanho​in​Bytes​compactado Inteiro Tamanho compactado do anexo.

    Unidade: bytes

    criado Data Data em que o anexo foi criado.
    createdBy Cadeia de caracteres Entidade que criou o anexo.
    baixar URL URL do anexo na instância ServiceNow.
    NomeDoArquivo 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 Inteiro Altura da imagem.

    Unidade: pixels

    largura da imagem Inteiro 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 Inteiro Número de vezes que o anexo foi modificado.
    sizeInBytes Inteiro 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. Retorna
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta 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. Retorna
    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)