Skip to content

Instantly share code, notes, and snippets.

@IsaAliev
Created February 23, 2018 19:11
Show Gist options
  • Save IsaAliev/f0f81d321f84d4c5366f01d00dbe304a to your computer and use it in GitHub Desktop.
Save IsaAliev/f0f81d321f84d4c5366f01d00dbe304a to your computer and use it in GitHub Desktop.
import Foundation
class GitHubAPIBuilder<T: Decodable>: APIBuilder {
typealias ResultType = T
func buildAPI(for request: HTTPRequestRepresentable,
decodingProcessor: ModelDecodingProcessor<T>? = nil,
nestedModelGetter: NestedModelGetter? = nil) -> BaseService<T> {
let service = BaseService<T>()
service.request = request
let responseHandler = HTTPResponseHandler<T>()
responseHandler.nestedModelGetter = nestedModelGetter
if let decodingProcessor = decodingProcessor {
responseHandler.decodingProcessor = decodingProcessor
}
service.responseHandler = responseHandler
return service
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment