api-generator-templates/Swift/NetworkService.swift.twig

31 lines
1.2 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: ImmutableMappable>(with parameters: ApiRequestParameters) -> Single<T> {
return rxRequest(with: parameters).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" }}