32 lines
1.3 KiB
Twig
32 lines
1.3 KiB
Twig
import LeadKit
|
|
import RxSwift
|
|
import Alamofire
|
|
|
|
{% set serviceName = concat(networkServiceName, "NetworkService") -%}
|
|
class {{ serviceName }}: NetworkService {
|
|
|
|
static let apiBaseUrl = "{{ apiUrl }}"
|
|
|
|
convenience init() {
|
|
self.init(configuration: NetworkServiceConfiguration(baseUrl: {{ serviceName }}.apiBaseUrl))
|
|
}
|
|
|
|
func apiRequest<T: Decodable>(with parameters: ApiRequestParameters, decoder: JSONDecoder = JSONDecoder()) -> Single<T> {
|
|
return rxRequest(with: parameters, decoder: decoder).map { $0.model }.asSingle()
|
|
}
|
|
|
|
func apiRequestParameters(relativeUrl: String,
|
|
method: HTTPMethod = .get,
|
|
parameters: Parameters? = nil,
|
|
requestEncoding: ParameterEncoding? = nil,
|
|
requestHeaders: HTTPHeaders? = nil) -> ApiRequestParameters {
|
|
return configuration.apiRequestParameters(relativeUrl: relativeUrl,
|
|
method: method,
|
|
parameters: parameters,
|
|
requestEncoding: requestEncoding,
|
|
requestHeaders: requestHeaders)
|
|
}
|
|
|
|
}
|
|
{{ "\n" }}
|