Estrutura NowAttachmentMetadata - iOS

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. 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

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

    Unidade: bytes

    created 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.
    fileName Cadeia de caracteres Nome do arquivo de anexo.
    hash Cadeia de caracteres Resumo 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 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 reside o anexo.
    state Estado de disponibilidade, como condicionalmente, indisponível, disponível e pendente.
    sysId Cadeia de caracteres Identificador exclusivo global (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 em dados, o codificador codificará um contêiner com chave vazio em seu lugar. Esta função também gerará um erro se algum valor for inválido para o formato do codificador especificado.

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

    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 gera 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

    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)