api-generator-templates/Swift/NetworkService.swift.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" }}