Skip to content

Instantly share code, notes, and snippets.

@snowden2
Created April 17, 2019 20:29
Show Gist options
  • Save snowden2/cb5cb5f85e4affa87fb16753adf88b9c to your computer and use it in GitHub Desktop.
Save snowden2/cb5cb5f85e4affa87fb16753adf88b9c to your computer and use it in GitHub Desktop.
Zendesk Sample By Geoffrey Fahey
import ZDCChatAPI
/**
Converts ZDCChatEvent to ChatItem for use by the UI
*/
extension ZDCChatEvent {
var chatItem: ChatUIEvent {
let date = Date.init(timeIntervalSince1970: self.timestamp.doubleValue / 1000.0)
let url = self.attachment?.url == nil ? nil : URL(string: self.attachment.url)
let image = self.fileUpload?.image
switch self.type {
case .agentMessage:
return ChatAgentMessageEvent(id: self.eventId,
confirmed: self.verified,
timeStamp: date,
text: self.message,
avatarURL: nil)
case .visitorMessage:
return ChatVisitorMessageEvent(id: self.eventId,
confirmed: self.verified,
timeStamp: date,
text: self.message)
case .visitorUpload:
let confirmed = self.fileUpload.status == .complete
return ChatVisitorImageEvent(id: self.eventId,
confirmed: confirmed,
timeStamp: date,
image: image,
imageURL: url)
case .agentUpload:
return ChatAgentImageEvent(id: self.eventId,
confirmed: true,
timeStamp: date,
image: image,
imageURL: url,
avatarURL: nil)
default:
assert(false, "Type not supported")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment