NowAttachmentMetadata structure - iOS
The NowAttachmentMetadata structure provides functions that enable you to encode and manage attachment metadata.
| Name | Type | Description |
|---|---|---|
| averageImageColor | String | Most dominant color in the associated image. |
| chunkSizeInBytes | Integer | Size of
the
chunk. Unit: Bytes |
| compressedSizeInBytes | Integer | Compressed size of the attachment. Unit: Bytes |
| created | Date | Date on which the attachment was created. |
| createdBy | String | Entity that created the attachment. |
| download | URL | URL of the attachment on the ServiceNow instance. |
| fileName | String | Name of the attachment file. |
| hash | String | Expected SHA256 digest for the attachment. A downloaded attachment is validated by comparing its computed digest to this SHA256 digest. |
| imageHeight | Integer | Height of image. Unit: Pixels |
| imageWidth | Integer | Width of image. Unit: Pixels |
| isCompressed | Boolean | Flag that indicates whether the attachment file is compressed. Possible values:
|
| mimeType | String | Attachment MIME type. |
| modificationCount | Integer | Number of times that the attachment was modified. |
| sizeInBytes | Integer | Size of the attachment. Unit: Bytes |
| sourceSysId | String | Sys_id of the attachment file. |
| sourceTableName | String | Name of the source table in which the attachment resides. |
| state | Availability state, such as conditionally, unavailable, available, and pending. | |
| sysId | String | Unique 32-character Globally Unique ID (GUID), that identifies each record in a ServiceNow instance. |
| tags | String | List of tags associated with the attachment. |
| updated | Date | Date on which the attachment was last modified. |
| updatedBy | String | Entity that updated the attachment. |
NowAttachmentMetadata - encode(to encoder: Encoder)
Encodes the current object value into data using the specified encoder.
If the object fails to be encoded into data, the encoder encodes an empty keyed container in its place. This function also throws an error if any values are invalid for the specified encoder's format.
| Name | Type | Description |
|---|---|---|
| to encoder | Encoder | Encoder that defines the structure of the encoded output. |
| Type | Description |
|---|---|
| None |
The following code example shows how to call this function.
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(from decoder: Decoder)
Creates a new NowAttachmentMetadata instance by decoding data into an object from the specified decoder.
This method throws an error if reading from the decoder fails or if the data read is corrupt or otherwise invalid.
| Name | Type | Description |
|---|---|---|
| decoder | Decoder | Decoder to read data from. |
| Type | Description |
|---|---|
| None |
The following code example shows how to call this function.
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)