diff --git a/Swift/NetworkService.swift.twig b/Swift/NetworkService.swift.twig index 42fd3b7..224b757 100644 --- a/Swift/NetworkService.swift.twig +++ b/Swift/NetworkService.swift.twig @@ -4,13 +4,27 @@ import RxSwift {% set serviceName = concat(networkServiceName, "NetworkService") -%} class {{ serviceName }}: NetworkService { + static let apiBaseUrl = "{{ apiUrl }}" + convenience init() { - self.init(configuration: NetworkServiceConfiguration(baseUrl: "{{ apiUrl }}")) + self.init(configuration: NetworkServiceConfiguration(baseUrl: {{ serviceName }}.apiBaseUrl)) } func apiRequest(with parameters: ApiRequestParameters) -> Single { 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" }} \ No newline at end of file diff --git a/Swift/blocks/method/method-func.twig b/Swift/blocks/method/method-func.twig index b0f33cc..f839050 100644 --- a/Swift/blocks/method/method-func.twig +++ b/Swift/blocks/method/method-func.twig @@ -12,19 +12,19 @@ /// {{ method.description }} {{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ "\n " }}{%- endif -%} - encoding: ParameterEncoding? = nil, + requestEncoding: ParameterEncoding? = nil, requestHeaders: HTTPHeaders? = nil) -> Single<{{ method.responseType.type.typeName }}> { {% if isStatic -%} return shared.{{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyParamName }},{{ "\n " }}{%- endif -%} - encoding: encoding, + requestEncoding: requestEncoding, requestHeaders: requestHeaders) - {%- else %} - let parameters = ApiRequestParameters(url: configuration.baseUrl + "{{ method.url }}", - method: .{{ methodType }}, - parameters: {% if hasBody -%}{{ bodyParamName }}.toJSON(){%- else -%}nil{%- endif -%}, - encoding: encoding ?? configuration.encoding, - headers: requestHeaders) + {%- else -%} + let parameters = apiRequestParameters(relativeUrl: "{{ method.url }}", + method: .{{ methodType }}, + parameters: {% if hasBody -%}{{ bodyParamName }}.toJSON(){%- else -%}nil{%- endif -%}, + requestEncoding: requestEncoding, + requestHeaders: requestHeaders) return apiRequest(with: parameters) {%- endif %}