Skip to content

Instantly share code, notes, and snippets.

@stevencurtis
Created June 12, 2020 09:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevencurtis/488911fbc14fc5a6b1305ef9bed55799 to your computer and use it in GitHub Desktop.
Save stevencurtis/488911fbc14fc5a6b1305ef9bed55799 to your computer and use it in GitHub Desktop.
UserListDecodeOperation
class UserListDecodeOperation: Operation {
var dataFetched: Data?
var error: Error?
var decodedURL: URL?
typealias CompletionHandler = (_ result: ListUsersModel?) -> Void
var completionHandler: (CompletionHandler)?
override func main() {
guard let dataFetched = dataFetched else { return }
let decoder = JSONDecoder()
do {
let content = try decoder.decode(ListUsersModel.self, from: dataFetched)
if let id = content.data.first?.id {
self.decodedURL = URL(string: Constants.baseURL + "/" + String(id) )
completionHandler?(content)
} else {
self.error = OQError.runtimeError("Unexpected Data")
completionHandler?(nil)
}
} catch {
self.error = error
completionHandler?(nil)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment